T

Text Machine

強力なテキストツールを、ブラウザで

カシスキー検査

反復する区間どうしの距離から、反復鍵暗号の鍵の長さを突き止めます。

例:

暗号文
設定

区間の長さ

因数の上限

古典的な選択は 3 文字です。2 文字は反復をはるかに多く拾いますが大半は偶然で、4 文字以上は最も確かな証拠だけを残すぶん、長いテキストが必要になります。

暗号文を貼り付けると検査します。例は鍵がそれぞれ 5 文字と 7 文字の実際のヴィジュネル暗号文です。

カシスキー検査 の使い方

  1. 1

    暗号文を貼り付ける

    暗号化されたテキストを入力欄に入れてください。反復が現れるにはふつう数百文字が必要で、100 文字を切ると何も見つからないことがよくあります。

  2. 2

    区間の長さを選ぶ

    まず 3 文字で始めます。何も反復しなければ 2 文字に下げ、その結果は弱い証拠として扱ってください。テキストが長く集計が雑然としているなら 4 文字に上げます。

  3. 3

    因数ごとの裏付けを読む

    候補の長さごとに、偶然だけで得られる値と比べて点を付け、約数と倍数でつながる一群のうち最も強いものだけを提示します。生の距離の個数と、その背後にある異なる区間の数も併記します。ひとつの区間が何度も反復するより、異なる区間いくつかが支持する因数のほうが信頼できますが、その判断は点数に混ぜず読み手に委ねています。

  4. 4

    得た長さを解読ツールに渡す

    提示された長さをヴィジュネル解読ツールに入れるか、一致指数計算ツールの列単位の表と照合してください。二つの方法が一致すれば、片方だけよりはるかに強い根拠になります。

カシスキー検査の考え方

この方法が立っている観察

ヴィジュネル暗号は鍵語を巡回させ、文字ごとに違う量だけずらします。そのため文字を数える手は通じません。同じ平文の文字が、位置によって違う暗号文字になるからです。しかし鍵は反復し、反復は漏れます。

平文に THE が二度現れ、二度とも偶然に鍵の同じ 3 文字と噛み合ったとします。どちらも同じ暗号文 3 文字になります。すると二つの距離は、文字で数えて、鍵がちょうど何周かした長さ、つまり鍵長の倍数です。

こうした偶然ひとつでは何も証明できません。しかし何十個も集めて因数分解し集計すれば、長さをまっすぐ指し示します。

このツールが測っているもの

選んだ長さの区間のうち二度以上現れるものを、位置とともにすべて集めます。各区間について、隣どうしの間隔だけでなくすべての組の距離を計算します。三度現れれば証拠は三つあり、隣どうしだけを取ると一つ捨てることになるからです。

そのうえで候補の鍵長ごとに数字が二つ付きます。いくつの距離を割り切るか、そしてその距離がいくつの異なる反復区間から出たかです。順位付けには一つ目を偶然で補正した値を使います。二つ目は隣に並べつつ、あえて点数には入れていません。算術ではなく判断だからです。よく出る区間ひとつが八度反復すれば距離の数は膨らみますが独立した証拠は増えず、異なる区間三つが同じ因数を指すなら、別々の偶然三つが同じ方向を指していることになります。示された長さが区間ひとつだけに支えられているなら、疑うべき手がかりはその数字です。

約数の罠

ここでつまずく人が多く、しかもこれは暗号学ではなく算数です。12 がある距離を割り切るなら、2、3、4、6 も割り切ります。本当の鍵長の約数はその点数を丸ごと受け継ぐので、裏付け順に並べた表は、実際の鍵が何であれ最小の因数を一番上に置きます。

解決も算術です。偶然がただで与える分を各因数に負担させればよいのです。2 はどんな距離の集合でも半分を無料で割り切るので、六分の一しか割り切らない因数と並べるには生の個数を半分に削る必要があります。こう補正すると、真の鍵長は自分の約数を上回ります。約数は証拠の自分の取り分しか持たないからです。さらに因数が大きいほど増える揺らぎも補正すれば、真の長さは倍数も上回ります。残るのは、調整値をひとつも含まない規則ひとつです。約数と倍数でつながる一群のうち最も強いものを残す、それだけです。全体の集計は下にそのまま残してあるので、違う判断をしても構いません。示された長さを支える区間がひとつだけで、六区間が支える因数が別にあるなら、そちらを見る価値があります。

通じないときと、その代わり

カシスキー検査には反復が必要ですが、短い文章にはそもそも無いこともあります。反復をわざと避ける暗号に対しても弱くなり、鍵が巡回しないランニングキーや使い捨て鍵については何も語れません。

一致指数は同じ問いに反対側から近づきます。反復はいっさい見ず、候補となる列分割ごとに文字分布を測ります。二つの方法はテキストの違う性質に頼るため、同時に失敗することは稀で、双方が支持する長さはたいてい正解です。

よくある質問

カシスキー検査とは何ですか。
フリードリヒ・カシスキーが 1863 年に発表した、反復鍵暗号の鍵長を求める方法です。同じ平文の区間が鍵の同じ部分とたまたま噛み合うと、同じ暗号文の区間になります。すると二つの区間の距離は鍵長の倍数になるので、そうした距離を多く集めて因数分解すれば長さが浮かび上がります。
2 と 3 の裏付けが同じなのに、なぜ 6 を勧めるのですか。
本当の鍵長の約数は、本当の長さが割り切る距離をそっくり同じように割り切るからです。鍵が 6 文字なら、集計上 2 と 3 は最低でも 6 と同じ点になり、裏付け順に並べるだけではほとんどのテキストで 2 を勧めることになります。そこで裏付けの厚い最大の因数を残し、その約数を除きます。暗号解読者が目で行う判断がこれです。
暗号文はどれくらいの長さが必要ですか。
この方法は反復を材料にしますが、テキストが短いほど反復は稀になります。数百文字あればふつう 3 文字の反復がいくつか出ます。100 文字を切ると何も見つからないことが多く、見つかっても証拠か偶然か区別がつきません。
位置が見た目のテキストと違うのはなぜですか。
位置と距離は文字数だけで数えます。空白、数字、約物、改行は測定前にすべて取り除きます。暗号もそれらを見ていないからです。それらまで数えるツールは、同じテキストで違う数字を出します。
2 文字の区間を使ってもよいですか。
最後の手段としてだけです。数百文字のなかでは 2 文字の並びは偶然に何度も反復し、因数の集計はどんな長さでも支持してしまう雑音に変わります。3 文字が古典的な選択なのは、3 文字の偶然の反復が十分に稀だからです。
カシスキーと一致指数が食い違ったらどうしますか。
裏付けの多いほうを信じつつ、双方が許す長さを優先してください。二つの方法は失敗の仕方が違います。カシスキーはテキストが短い、あるいは反復が少ない場合に弱く、一致指数は鍵が文章に比べて長い場合に弱くなります。食い違うときは、二つの答えの公倍数や公約数が本当の長さであることが多いです。
入力した暗号文はブラウザの外に出ますか。
出ません。検査はすべてページ内で行われます。どこにもアップロード、記録、保存はしません。

関連ツール

こちらの便利なツールもどうぞ

一致指数計算ツール

ヴィジュネル暗号ソルバー

ヴィジュネル暗号

暗号識別ツール

頻度分析

換字式暗号ソルバー