PromleeBlog

posting thumbnail
公開鍵暗号の概要

📅

公開鍵暗号とは? (What is Public Key Cryptography?) 🔗

暗号化に使う鍵と、復号に使う鍵が異なる方式です。
RSA、ElGamal、NTRUなどがあります。
長所:鍵を共有しやすく、必要な鍵の数が少なくなります。
短所:共通鍵暗号より低速です。

公開鍵暗号の定義 (Definition of Public Key Cryptography) 🔗

定義:公開鍵暗号PKEは、次のアルゴリズムで構成されます。
正当性
セキュリティパラメーターλとすべての平文Mについて、次が成立するとき、公開鍵暗号PKEは正しいといいます。
👨‍💻
Dec(sk,Enc(pk,M))=MDec(sk, Enc(pk, M)) = M
ここで、(pk, sk)はKeyGen(λ)の出力です。

公開鍵暗号の安全性モデル (Security Model for Public Key Cryptography) 🔗

チャレンジャーCと攻撃者Aの間のゲームを考えます。
Aの目標は公開鍵暗号を破ること、つまり暗号文から平文Mを見つけることです。
  1. Setup:チャレンジャーCは、セキュリティパラメーターλを入力し、(pk, sk)を出力します。
    そのうち公開鍵pkをAへ渡します。
  2. Phase1:AはCへ復号クエリを送ります。
    つまり、Aは任意の暗号文CiC_iをCへ送り、CはDec(sk,Ci)=MiDec(sk, C_i) = M_iを返します。
  3. Challenge:Aは二つの平文M0,M1M_0, M_1を選び、Cはその一方を選択して(b∈{1,2}b \in \{1, 2\})、Enc(pk,Mb)=CbEnc(pk, M_b) = C_bを返します。
    Aは、どちらの平文に対応する暗号文かを表すbbを推測します。
  4. Phase2:AはCへ復号クエリを送ります。
    つまり、Aは任意の暗号文CiC_iをCへ送り、CはDec(sk,Ci)=MiDec(sk, C_i) = M_iを返します。
AdvPKE(λ)=Pr[b=b′]−12Adv_{PKE}(\lambda) = Pr[b = b'] - \frac{1}{2}
👍
攻撃者がセキュリティパラメーターに対して無視できない優位性を得られないとき、その公開鍵暗号方式はIND-XXX安全です。
XXXは、攻撃者に許される復号オラクルによって決まります。
    公開鍵暗号の概要 | PromleeBlog