アカウント名:
パスワード:
一定のアルゴリズムで暗号化したデータに対して、暗号のまま四則演算やビット演算が行える技術ですね。数学的には平文と等価だけれども入力も出力も暗号のままで、処理している中間データや返却値を覗いても解読できず、サービス運営者や作業者は知る必要がない情報を知らずに済むというやつ。
ただ、どの方式も計算量が膨大で実用にならないまま何十年も経過していたような。
f()が暗号化する関数とすれば、f(x+y)=f(x)+f(y)とかf(xy)=f(x)f(y)ってことでいいんだよね?もともとの代数構造を保存してしまう暗号化って、「ぐちゃぐちゃ度」が低くなって、そこが弱点になりがちなんじゃないのか?という疑問がわくけど、どうなんだろ?
ノー。f(x+y)=g(f(x),f(y))が正しい。安全性を落とさずに、足し算や掛け算以外のいろんなのに対してfやgを上手く作ってる。
言い方悪かった。f(x+1y)=f(x)+2f(y), +1 がもとの代数系の和で+2が暗号化した代数系の和。この和の計算は実際には複雑なものになっても、交換性とか、和の持っている性質は満たしているということでいいのかな?暗号強度への影響はどうなんだろ?
準同型暗号はCCA安全性を満たしません。攻撃者は、暗号文 f(x) を直接復号できなくても、代わりに f(x)+f(1) を復号して x+1 を求め、次に x=(x+1)-1 として、平文を求められてしまうからです。(準同型性のために f(x)+f(1) の復号結果が x+1 と等しくなってしまうのです. また、公開鍵暗号なので攻撃者は 1 の暗号文 f(1) を容易に計算できます。)(なぜ攻撃者は f(x)+f(1) を復号できるのか? これは、CCA安全性の定義では、そういう強い攻撃者を想定するからです。)
では、CCA安全性を満たさないと実用上どういう問題があるのか? ...すみません、私は専門家でないのでそこは分かりません。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
秘密計算とは (スコア:5, 参考になる)
一定のアルゴリズムで暗号化したデータに対して、暗号のまま四則演算やビット演算が行える技術ですね。数学的には平文と等価だけれども入力も出力も暗号のままで、処理している中間データや返却値を覗いても解読できず、サービス運営者や作業者は知る必要がない情報を知らずに済むというやつ。
ただ、どの方式も計算量が膨大で実用にならないまま何十年も経過していたような。
Re: (スコア:0)
f()が暗号化する関数とすれば、f(x+y)=f(x)+f(y)とかf(xy)=f(x)f(y)ってことでいいんだよね?もともとの代数構造を保存してしまう暗号化って、「ぐちゃぐちゃ度」が低くなって、そこが弱点になりがちなんじゃないのか?という疑問がわくけど、どうなんだろ?
Re: (スコア:1)
ノー。f(x+y)=g(f(x),f(y))が正しい。安全性を落とさずに、足し算や掛け算以外のいろんなのに対してfやgを上手く作ってる。
Re:秘密計算とは (スコア:0)
言い方悪かった。f(x+1y)=f(x)+2f(y), +1 がもとの代数系の和で+2が暗号化した代数系の和。この和の計算は実際には複雑なものになっても、交換性とか、和の持っている性質は満たしているということでいいのかな?暗号強度への影響はどうなんだろ?
Re: (スコア:0)
準同型暗号はCCA安全性を満たしません。
攻撃者は、暗号文 f(x) を直接復号できなくても、代わりに f(x)+f(1) を復号して x+1 を求め、次に x=(x+1)-1 として、平文を求められてしまうからです。
(準同型性のために f(x)+f(1) の復号結果が x+1 と等しくなってしまうのです. また、公開鍵暗号なので攻撃者は 1 の暗号文 f(1) を容易に計算できます。)
(なぜ攻撃者は f(x)+f(1) を復号できるのか? これは、CCA安全性の定義では、そういう強い攻撃者を想定するからです。)
では、CCA安全性を満たさないと実用上どういう問題があるのか? ...すみません、私は専門家でないのでそこは分かりません。