誕生日パラドックス
誕生日のパラドックスは、50%よりも同じ誕生日の確率大きいの少なくとも二つに下回らない23人を指します。例えば、30人の小学校の授業では、2人の誕生日の70%の同じ確率があります。60人の大規模なクラスでは、確率が99%以上です。原因論理矛盾の観点からは、誕生日のパラドックスは「パラドックス」ではありません。しかし、この数学的な事実は、それがパラドックスと呼ばれ、非常に直感的です。誕生日攻撃 - 誕生日のパラドックス数学的理論は、暗号攻撃を設計するために適用されます。
説明します
23は、必要に応じて365日365分の365に一日でヒト個体を設け、第二者は第三者が2人の誕生日365分の363のために選択することができない、365分の364の最初の誕生日から選択することができません。
/// @file main.cc
#include <cstdio>
int main()
{
double ans = 1.0;
int n = 23;
for (int i = 0; i < n; ++i )
ans = ans*(365-i)/365;
printf("%.10lf\n",1.0 - ans);
return 0;
}
次のように最終的な出力結果は以下のとおりです。
:g++ main.cc -o main
:./main
0.5072972343
99 nは、結果は次のとおりです。
:./main
0.9941226609
アプリケーション
誕生日パラドックスは、一般的に、ハッシュ関数の検出に適用される:ハッシュテーブル衝突のNビット長が発生する可能性がテスト2の数ではないN回だけ2 N / 2倍です。この結論はで「誕生日攻撃」のパスワードのハッシュ関数(暗号学的ハッシュ関数)をクラックするために適用されます。
誕生日の攻撃は、このような攻撃は、2つ以上のグループとの間の通信の乱用するために使用することができ、暗号攻撃です。この攻撃は、高い衝突の確率と固定容量周波数(鳩の巣原理)内のランダムな攻撃に依存しています。誕生日の攻撃を使用して、攻撃者は、ハッシュ関数で衝突、セキュリティなどの本来の抵抗を見つけることができます。