暗号理論の問題
出力が 通りの値 のどれかになるハッシュ関数 を考える。 はランダムオラクルとみなす。すなわち、互いに異なる入力に対する出力は、それぞれ独立に 通りの値から等確率で選ばれるものとする。
攻撃者は互いに異なる 個の入力 についてハッシュ値 を計算する。このとき、ある値 について となる が 個以上存在する確率を求めよ。この事象を「 重衝突(3-マルチコリジョン)が起こる」という。
この問題で使うもの
- 確率の定義と和事象・余事象(説明と入口の問題)
- 組合せ(説明と入口の問題)
- 順列・円順列・重複順列(説明と入口の問題)
- ハッシュの衝突確率(誕生日問題)(説明と入口の問題)
この問題を解けるようになるまで(58 技能)
読み込み中…
右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。
一覧で見る(前提が先)
- 樹形図で数え上げる
- 積の法則と和の法則
- 和の法則・積の法則と樹形図
- 順列・円順列・重複順列
- 組合せ
- 確率の定義と和事象・余事象
- 分数のたし算・ひき算
- 小数の四則計算
- 正負の数の加法・減法
- 分数のかけ算・わり算
- 四則の混じった計算の順序
- 正負の数の乗除・累乗と四則混合
- 分配法則を使った計算のくふう
- 文字式の計算(同類項・分配法則)
- 乗法公式による展開
- 因数分解
- 3 次式までの展開と因数分解
- 微分係数と導関数の定義
- 多項式の微分
- 小数と分数のまじった計算
- 逆算(□ を求める)
- 1 次方程式の解き方
- 比例・反比例の式とグラフ
- 約数の見つけ方
- 素因数分解と約数の個数
- 平方根の意味と根号の簡単化
- 関数 の式と変域
- 平方完成と 2 次関数のグラフ
- 2 次不等式
- 剰余の定理・因数定理と高次方程式
- 増減表と極値
- 等間隔にならんだ数の和
- 等差・等比数列の和と Σ
- 数列の極限
- 関数の極限
- 関数の連続性と中間値の定理
- 平均値の定理
- 積と商の微分
- 第 2 次導関数とグラフの凹凸
- 合成関数の微分
- 円の周の長さと面積
- おうぎ形の弧の長さと面積
- 弧の長さからおうぎ形の中心角と面積を求める
- 三角形・四角形の面積
- 三平方の定理
- 特別な直角三角形の辺の比
- 弧度法と単位円による三角関数
- の極限
- 加法定理と 2 倍角・半角・積和の公式
- 三角関数の導関数
- 根号の乗除と加減
- 指数の拡張と指数関数
- 対数の定義と性質
- 自然対数の底
- 指数関数・対数関数の導関数
- 増減・凹凸・漸近線とグラフ
- テイラー展開
- ハッシュの衝突確率(誕生日問題)
ヒント
行き詰まったら、上から順に 1 つずつ開いてください。
ヒント 1
「どの値も高々 2 回しか現れない」という余事象を考え、出力値の出現回数のパターンで場合分けして数えるとよい。
ヒント 2
出現回数の型は , , の 3 つ。各型について「どの値を使うか」と「入力への割り当て方(多項係数)」の積で数える。
ヒント 3
全体は 通り。型 は 通り、型 は 通り。残りの型 を数えて余事象の総数を出す。
答えと解説
答えを見る
どこでつまずきましたか?(選ぶと、戻る場所を案内します)
解説を読む
個の入力のハッシュ値の組 は、 の 通りが同様に確からしい。
余事象を数える。 重衝突が起こらないのは、どの値も高々 回しか現れないときである。各値の出現回数( 回の値を除く)の型は , , の 通り。
- 型 :すべて異なる値。 通り。
- 型 : 回現れる値の選び方 通り、 回ずつ現れる値 個の選び方 通り、それらを 個の入力に割り当てる方法 通り。 通り。
- 型 : 回現れる値 個の選び方 通り、 回現れる値 通り、割り当て 通り。 通り。
合計 通り。よって 重衝突が起こる場合は 通り。
検算(直接数える)。 ある値が 回以上現れる型は , , , :
合計 となり一致する。
したがって求める確率は
別解
5 個の入力を 8 個の値に割り当てる場合の数は全部で 通りで、どれも同様に確からしい。
なので、 個以上が入る値は高々 1 つしかない。よって、値 ごとの場合の数を足し合わせてよい。
特定の値 にちょうど 個が入る場合の数は、入る入力の選び方 と、残りの入力の割り当て の積である。
- :
- :
- :
これらの和は 通り。値は 8 個あるので、 通り。
したがって確率は 。
検算: 余事象(どの値も高々 2 個)の場合の数を、5 を和で分ける分割ごとに数える。
- :
- :
- :
合計は 通り。 となり、上の結果と一致する。