👾nanani | 掲示板・QAサイトリリース👾

公開鍵暗号化方式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 ができました

暗号化された秘密鍵は、公開鍵を作成する時や、復号時にパスフレーズをもとめるようになります

以上です、お疲れ様でした

この記事が気に入ったら
フォローしてね!

  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

BOOGALOO BOOGALOO ブガルー代表

掲示板サイトの nanini を
全力で開発いたしております👾
どうしてもみんなの憩いの場が作りたい

目次
閉じる