
公開鍵暗号化方式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” と検索し右クリックから管理者起動できます
システム環境変数が編集できるようになります

システム環境変数のPathを編集いたします

新規 → ディレクトリ入力 → OK
※32ビットの場合は C:\Program Files\OpenSSL-Win32\bin

環境変数の登録確認
コマンドプロンプトを起動し
openssl version
と入力実行してください
※Win + Rで開いたボックスへ “cmd” と3文字入力して起動できます
エラーにならず、バージョンが表示されれば登録成功です

秘密鍵を作成いたします
openssl genrsa > private.key 2048
と入力実行してください

カレントディレクトリに private.key ができました
エディタで開くとこんな感じ

秘密鍵をもとに公開鍵を作成いたします
openssl rsa < private.key > public.key
と入力実行してください

カレントディレクトリに public.key ができました
カレントディレクトリに暗号化するファイルを用意してください
※当方が用意したファイル:機密情報.txt
公開鍵で暗号化いたします
openssl rsautl -encrypt -inkey public.key < 機密情報.txt > 機密情報_暗号化.txt
と入力実行してください

カレントディレクトリに 機密情報_暗号化.txt ができました
暗号化できているかはファイルを開いて確認してみてください
秘密鍵で復号化いたします
openssl rsautl -decrypt -inkey private.key < 機密情報_暗号化.txt > 機密情報_復号化.txt
と入力実行してください

カレントディレクトリに 機密情報_複合化.txt ができました
復号化できているかはファイルを開いて確認してみてください
※平文になっていれば成功です
公開鍵と秘密鍵はセットですので、当たり前ですが他の秘密鍵では復号化できません
秘密鍵は共通鍵暗号方式で暗号化しましょう
暗号化した秘密鍵の作り方
openssl genrsa > private.key -des3 2048
と入力実行してください
パスフレーズ入力を2回もとめられます
カレントディレクトリに暗号化された private.key ができました
暗号化された秘密鍵は、公開鍵を作成する時や、復号時にパスフレーズをもとめるようになります
以上です、お疲れ様でした
