公開鍵暗号方式
公開鍵暗号(Public Key Encryption: PKE)
非対称鍵暗号(asymmetric-key cryptography)と呼ぶこともある。
暗号化と復号時に違う鍵を使う方式
鍵は公開鍵(public key)と秘密鍵(private key)のペア
業務で実装する場合は何かしらの暗号ライブラリを使用することが多いと思う 例:
公開鍵暗号方式
なんとなく公開鍵暗号の疑似コード
Aさん(送信者)、Bさん(受信者)がいる
Aさんの公開鍵、秘密鍵、Bさんの公開鍵、秘密鍵
code:memo
公開鍵アルゴリズム = (何かしらの公開鍵暗号アルゴリズム)
// 送信する平文データ
data = ...
// 秘密鍵(Aさん)
sec_key_A = get_sec_key(Aさん)
// 公開鍵(Bさん)
pub_key_B = get_pub_key(Bさん)
// 暗号化
msg = encrypt(公開鍵暗号アルゴリズム, data, sec_key_A, pub_key_B)
// データの送信
send(msg)
code:memo
公開鍵暗号アルゴリズム = (何かしらの公開鍵暗号アルゴリズム)
// 受信データ
recieve_msg = receive()
// 秘密鍵(Bさん)
sec_key_B = get_sec_key(Bさん)
// 公開鍵(Aさん)
pub_key_A = get_pub_key(Aさん)
// 復号
data = decrypt(公開鍵暗号アルゴリズム, recieve_msg, sec_key_B, pub_key_A)
初期化ベクトルとかもドメインパラメータに含まれそう
実装する場合JCMVPというところが以下のPDFを公開しているので参考になる。 確認用
Q. 公開鍵暗号方式
Q. 送信者が暗号化をする場合どの鍵を使うか
Q. 受信者が復号をする場合どの鍵を使うか
参考
逆計算が困難な数学上の問題に基づく暗号方式8
ペアをなす次の2種類の鍵を用いてそれぞれ別々の(非対称な)操作を行う
公開鍵 … 広く一般に公開する。
秘密鍵 … 個人や特定の機器のみで保持する。
関連
メモ