FPQ暗号公式ブログ

FPQ暗号公式ブログ

FPQ暗号について新しいことをお伝えします。

Amebaでブログを始めよう!
#説明中に僕が作った記号が示されます。
[$a.apn]
 a=素数
[$b@c.Lpn]
 cよりも大きい素数のb
[$d&@e.Lpn]
 dとeは2つの素数であり、dはeより大きい。

#説明_FPQ暗号基本(FPQCB)
1.アリスは$x.apn+1であるFを作る。
2.$Q+F.apnとなる$Q.apnを選ぶ。
3.$PQ+F.apnとなる$P@Q.Lpnを選ぶ。
4.使うバージョンに対応するeとdを求める式:
  [@A] e(d+F) mod (P-1){(Q+F)-1}=1
  [@B] e(d+F) mod {(F-1)-1}{(PQ+F)-1}=1
 でeとdを求める。
  [鍵共有Ver.]@A
   公開鍵(PK)=(e,P) 秘密鍵(SK)=(d,F,Q)
  [ノーマルワンVer.]@B
   PK=(e,PQ+F) SK=(d,F,P,Q)
  [ノーマルツーVer.]@A
   PK=(e,Q+F) SK=(d,F,P,Q)
  [ノーマルスリーVer.]@A
   PK=(d+F,P) SK=(e,Q)
5.アリスは使うバージョンのPKを公開する。
6.ボブは$P'&@Q'.Lpnを作り、次の方法でA'~F'を求める。
 A'={(P'^2)-(Q'^2)} mod P'
 B'={(P'^2)-(Q'^2)-A'} / P'
 C'=P'-B'={A+(Q'^2} / P'
 D'=B'C'
 E'=(P'^2) mod Q'
 F'=A'+(Q'^2*E')
7.アリスに伝えたいメッセージMをA'とD'、F'で暗号化:
  {A'M+(Q'^2*E')} / D'=[C]あまり[D]
 する。ただし、鍵共有Ver.の場合、MはボブのF(→手順1)である。
 (鍵共有Ver.については後で詳しく説明する。)
8.A'をアリスのPKで暗号化:
  {A'^(PKの左側)} mod (PKの右側)=[C']
 する。
 そして、D'とF'、[C]、[D]、[C']をアリスに送る。
9.アリスは[C']を暗号化に用いたPKに対応するSK(e又はd+F)で復号化:
  {[C']^(SK)} mod (PKの右側)=A'
 してA'を得る。
10.A'とD'、F'で[C]、[D]を復号化:
  M={D'[C]+[D]-(Q'^2*E')} / A'
 してMを得る。

#鍵共有Ver.詳細
1.2人はFPQCB手順7まで(手順4は「鍵共有Ver.」)を行う。
2.2人は彼ら自身のFとQ+Fの積を[E]、Qとd+Fの積を[F]とする。
3.2人はFPQCB手順8と[E]と[F]の相互送信を行う。
4.2人はFPQCB手順9と10を行う。
5.2人は次の計算から相手のQとdを得る。
 ただし、使用されるものは相手が作成したものである。
  ([E]/F)-F=Q
  ([F]/Q)-F=d
6.共有完了。

理解したいけど理解しにくいという人は、コメントしてください。

では。