Enigmaの解説
- 18. 完全準同型暗号
• 秘密鍵 … 約600桁の奇数p
• 公開鍵 … q_i × p + e_i (q_iは10000000桁の整数、e_iは
20~30桁のノイズ)
• m = {0,1}の暗号化 … c=q*p+2r+m
• 復号化 … cをpで割り、剰余を判定
• 当初は1bitの暗号が1GBだった
• 乗算を行うとノイズが二乗になる … bootstrapすることで
綺麗にできるが、重い
- 20. 完全準同型暗号
• BGV Scheme … bootstrapなしの完全準同型暗号
• Modulus Switching というテクニックを使用する。
• 乗算時のノイズの増加量がO(2^N)からO(N)へ
- 22. SPDZ(2012)
• 完全準同型暗号を用いたSMPC
1. データそのものとそのハッシュ値を暗号化する
2. 暗号化した値と、ハッシュ値のタプルを分散
足し算… 普通にできる
掛け算 … c=abとなるtripletを生贄に行う。
1. 任意の「前処理」をオフラインで行える
2. **N-1のcorruptionまでセキュア**
-> 参加ノード数を減らすことが可能に
c = abとなる<a>、<b>を秘密分散化し
<x> - <a>, <y> - <b> をシェア。すると
<xy> = <c> + (<x> - <a>) * <b> + (<y> - <b>) + (<x> - <a>) * (<y> - <b>)
が成り立つ