下記の記事で,AES(共通鍵暗号方式)を用いた暗号化と復号を記載しました.
【Linux】 OpenSSLでファイルの暗号と復号する方法
この記事では,OpenSSLを用いてファイルを暗号化および復号する手順を記載します. コマンド 細かい説明は省いたコピペ用のコマンドを示します. 暗号化 openssl enc -e…
この記事では,RSA(公開鍵暗号方式)で暗号化と復号を行う手順について記載します.
目次
OpenSSLのインストール
暗号化および復号にはOpenSSLを使用します.
まずは,OpenSSLがインストールされているかを確認します.
openssl version
OpenSSL 1.1.1n 15 Mar 2022
OpenSSLがインストールされていない場合,下記コマンドでインストールします.
apt install openssl
dnf install openssl
公開鍵暗号方式でファイルの暗号化と復号
手順
公開鍵暗号方式でファイルの暗号化と復号の手順は下記の通りです.
- 秘密鍵の作成
- 秘密鍵を用いて公開鍵の作成
- 公開鍵を用いて暗号化
- 秘密鍵を用いて復号
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関連のコマンドの詳細は公式マニュアルに記載されています.