【Linux】 OpenSSLを用いてファイルを公開鍵暗号方式で暗号化および復号する方法

下記の記事で,AES(共通鍵暗号方式)を用いた暗号化と復号を記載しました.

この記事では,RSA(公開鍵暗号方式)で暗号化と復号を行う手順について記載します.

目次

OpenSSLのインストール

暗号化および復号にはOpenSSLを使用します.

まずは,OpenSSLがインストールされているかを確認します.


openssl version 
OpenSSL 1.1.1n  15 Mar 2022

OpenSSLがインストールされていない場合,下記コマンドでインストールします.


apt install openssl

dnf install openssl

公開鍵暗号方式でファイルの暗号化と復号

手順

公開鍵暗号方式でファイルの暗号化と復号の手順は下記の通りです.

  1. 秘密鍵の作成
  2. 秘密鍵を用いて公開鍵の作成
  3. 公開鍵を用いて暗号化
  4. 秘密鍵を用いて復号

1. 秘密鍵の作成

秘密鍵にはパスフレーズを付与することが可能です.パスフレーズを付けることにより,秘密鍵を使用する際にパスフレーズが求められることになります.

・パスフレーズなし秘密鍵の作成


openssl genrsa -out <private_key_filename>

・パスフレーズ付き秘密鍵の作成


openssl genrsa -out <private_key_filename> -aes256

2. 秘密鍵を用いて公開鍵を作成

秘密鍵を用いて公開鍵を作成します.パスフレーズ付きの場合はパスフレーズを入力する必要があります.


openssl rsa -in <private_key_filename> -pubout -out <public_key_filename>

3. 公開鍵を用いて暗号化

次に公開鍵を用いて,ファイルを暗号化します.


openssl rsautl -encrypt -pubin -inkey <public_key_filename> -in <encrypt_target_filename> -out <encrypted_filename>

4. 復号

暗号化されたファイルを,秘密鍵を用いて復号します.


openssl rsautl -decrypt -inkey <private_key_filename> -in <encrypted_filename> -out <decrpted_filename>

暗号化に関する良書

まとめ

この記事では,RSA暗号方式を用いてファイルの暗号化と復号に関して記載しました.

OpenSSLは多くの暗号方式をサポートしていますが,使いこなすにはやはりある程度の暗号化技術の知識が要求されます.RSA関連のコマンドの詳細は公式マニュアルに記載されています.

よかったらシェアしてね!
目次