たとえば、
123→ASDFGH
とphpなどで暗号化した場合、
「123」が「ASDFGH」になることがわかると、
「456」がなにに変換されるかわかってしまう方法があるのでしょうか?
スーパーコンピュータで100年かかるなどではなく、ひとつの関数やソフトで簡単に解析できてしまうものなのでしょうか?
ひとつしか パターンが わからなかったら無理だと思う。
パターンの数が 増えれば増えるほど 精度は 高くなるが、
完璧は無理。
たとえば
A→1
B→2
ということだけで Cが 何かを調べるときに、
C→100 という設定だったら このCが 何かを
判明させることは 無理だと、わかりますね。
数学的に考えるとできないです。
例えば、y=f(x) という式を考えた場合、
yとxという組みあわせの例が一つではf()は決まらないからです。
例えば x=3 y=6 とした場合 f(x)=x+3 か f(x)=2x なのか他の何かかは決まらないです。
1つの組み合わせからは求められないということです。
f()というのはxを変換することにあたりますから、暗号化と同じ意味をもちます。
なるほど。すごく理解しやすいです。ありがとうございます。
例えば
1 → AS 2 → DF 3 → GH
でも
1 → A 2 → SD 3 → FGH
でも 123 → ASDFGH になります。判明している組み合わせがひとつだけでは同じ結果を作る暗号化方法は特定できません。
仮に
1 → AS 2 → DF 3 → GH
であることが知られても、これだけでは 456 に関する情報は無いわけです(場合によってはある程度の予想は付くかもしれませんが)。
もちろん、組み合わせが多く知られると暗号化方法を知られる確率も高くなります。
言われてみれば、確かにそうですね。
ありがとうございます。
その手の攻撃を既知平文攻撃といいます.
暗号アルゴリズムがどの程度の安全性を持っているかによりますが,簡単に解析することはできません.
http://ja.wikipedia.org/wiki/%E6%9A%97%E5%8F%B7%E8%A7%A3%E8%AA%A...
ありがとうございます。
そんなに気軽にはできないものなんですね。
なるほど。サンプルがすごくたくさんあれば、解析の方法もあるかもしれないが、現実的にはほぼ無理ということですね。
ありがとうございます。