公開鍵暗号化方式RSAをコマンドプロンプトで実行したい
今回は公開鍵暗号化方式RSAを使ったファイル暗号化を、外部ツールを使用せずに、自力で行います
Windowsのコマンドプロンプトで実行する手順を記載いたします
今回のテストPC環境
OS:Windows 10 Pro
バージョン:21H1
ビルド:19043.1645
ビット:64
まずはコマンドプロンプトにてRSA関数を使用可能にするため、OpenSSLをインストールいたします
OpenSSLインストーラのダウンロードリンク
基本的にWindowsはMSIファイル、他OSはEXEファイルで良いのですが、MSIファイルを実行しようとするとWindows Defender SmartScreenがブロックしてしまう場合がございます
その場合はEXEファイルをダウンロードして、実行インストールしてください
当方は「Win64 OpenSSL v3.0.3 Light」のEXEファイルをダウンロードしております
インストーラを実行しインストールいたします
インストールしたOpenSSLを環境変数に登録いたします
検索ボックスで “環境変数を編集” と検索して環境変数ウインドウを表示させます
ユーザーアカウント制御(UAC)が有効だと、システム環境変数の編集ボタンがグレーアウトしており編集できない場合がございます
その場合は Windows PowerShell を管理者権限で起動し
Start C:\Windows\system32\rundll32.exe sysdm.cpl, EditEnvironmentVariables
と入力実行してください
※検索ボックスで “Windows PowerShell” と検索し右クリックから管理者起動できます
Start C:\Windows\system32\rundll32.exe sysdm.cpl, EditEnvironmentVariables
システム環境変数が編集できるようになります
システム環境変数のPathを編集いたします
新規 → ディレクトリ入力 → OK
※32ビットの場合は C:\Program Files\OpenSSL-Win32\bin
C:\Program Files\OpenSSL-Win64\bin
環境変数の登録確認
コマンドプロンプトを起動し
openssl version
と入力実行してください
※Win + Rで開いたボックスへ “cmd” と3文字入力してコマンドプロンプト起動できます
openssl version
エラーにならず、バージョンが表示されれば登録成功です
秘密鍵を作成いたします
※作業フォルダを作り、エクスプローラのアドレスバーへ “cmd” と入力すると、作業フォルダがカレントディレクトリになった状態でコマンドプロンプトが起動するのでおすすめです
openssl genrsa > private.key -aes256
と入力実行してください
openssl genrsa > private.key -aes256
秘密鍵を生成するとともに、秘密鍵自体を共通鍵暗号方式の暗号化方式「AES256」で保護します
※Advanced Encryption Standard
秘密鍵保護のパスフレーズを尋ねられますので、2回同じものを入力し設定してください
カレントディレクトリに private.key ができました
エディタで開くとこんな感じ
秘密鍵をもとに公開鍵を作成いたします
openssl rsa -RSAPublicKey_out < private.key > public.key
と入力実行してください
openssl rsa -RSAPublicKey_out < private.key > public.key
パスフレーズの入力を求められるので、先ほど設定した秘密鍵保護パスフレーズを入力してください
カレントディレクトリに public.key ができました
エディタで開くとこんな感じ
カレントディレクトリに暗号化するファイルを用意してください
※当方が用意したファイル:機密情報.txt (平文テキスト “hello” )
公開鍵で暗号化いたします
openssl rsautl -encrypt -pubin -inkey public.key < 機密情報.txt > 機密情報_暗号化.txt
と入力実行してください
openssl rsautl -encrypt -pubin -inkey public.key < 機密情報.txt > 機密情報_暗号化.txt
カレントディレクトリに 機密情報_暗号化.txt ができました
エディタで開くとこんな感じ
秘密鍵で復号化いたします
openssl rsautl -decrypt -inkey private.key < 機密情報_暗号化.txt > 機密情報_復号化.txt
と入力実行してください
openssl rsautl -decrypt -inkey private.key < 機密情報_暗号化.txt > 機密情報_復号化.txt
パスフレーズの入力を求められるので、秘密鍵保護パスフレーズを入力してください
カレントディレクトリに 機密情報_複合化.txt ができました
エディタで開くとこんな感じ
公開鍵と秘密鍵はセットですので、当たり前ですが他の秘密鍵では復号化できません
以上です、お疲れ様でした