コード_(暗号)
[Wikipedia|▼Menu]
one-part code、alphabetical codeとも。

次に述べる2冊制では、対応を完全にランダムにできるのに対し1冊制は、対応に、あるいは対応付けのための排列に何らかの制限があり、暗号化用と復号用の対応表が兼用できるようなもの、と言える。

例えばアルファベット3文字で色を伝える暗号の例を以下に示す。ここではその暗号全体として「色に関する語の暗語はCAから始まる」「どちらも辞書順で並んでいる」という制限がある。これにPurpleの原語を将来追加しようとすると対応する暗語はCAGとCAIに挟まれたCAHしか選択の余地がない。攻撃側もこの規則性が使えるので「もしRedがCAIならば、BlueはCAHより前に有るはずだ」などとなる。またコードブックの紛失や盗難で使えなくなり新しく編纂しなおす場合でも(運用全体を再編しない限り)BlueがRedの前に来る関係を崩す事ができない。

1冊制の例(暗号化用と復号用を兼用)

原語暗語
BlackCAA
BlueCAC
GreenCAE
OrangeCAG
RedCAI
VioletCAK
WhiteCAM
YellowCAO

2冊制

two-part code、randomized code、hatted code[5]とも。

この方式では、原語と暗語の対応はランダムである。言い換えると、原語側を辞書順など何らかの組織立った順序に並べた時には暗語側の順序には何の法則も無くランダムであり、逆に、暗語側を何らかの順序で並べた時の原語側の順序も同様である。このため実用的な速度での作業のためには[6]、暗号化用と復号用の別の表を必要とすることからその名がある。なお2冊に別けて製本する必要は無く、1冊にまとめてあることも多い。

2冊制の例 1 (暗号化用)

原語暗語
BlackFFC
BlueOHY
GreenXLD
OrangeOFF
RedMVT
VioletSJM
WhiteAZV
YellowGET

2冊制の例 2 (上記で暗号化されたものからの復号用)

原語暗語
WhiteAZV
BlackFFC
YellowGET
RedMVT
OrangeOFF
BlueOHY
VioletSJM
GreenXLD

この方式には1冊制と比べ、不規則さにより、攻撃が難しくなる利点がある。

さらに1冊制よりもエラーの検出が容易である利点もある。例えば上記の1冊制コードにおいて、Blackを示すCAAの3文字目のAが通信エラーにCになった場合、復号側においてCACを、システム的に通信エラーだと気付くことは不可能である(平文の文意から気付くかもしれないが、それは「システム的」ではないし、もしかしたら本来意図した平文が「間違った文章」なのかもしれないわけである)。しかし2冊制の場合はコードが1文字違いの別コードになっても、類似性のある原語(別の色)になる可能性が低いのでエラーを検知しやすい。
ランダム化について

このような暗号が運用されていた時代には考案されていなかった現代のコンピュータで使われているアルゴリズムだが、フィッシャー?イェーツのシャッフルなどによってランダム化すれば良い。あるいは古くから使われていた手法としては、単語カードを作り、それを袋に入れてよくかき混ぜてから1つずつ取り出すとか、全ての語にあらかじめ乱数を割り振り、その乱数の値に従ってソートする、といったような手法がある。
コードの例

例1
ルイ14世の大暗号(ロシニョールが作成): コードブックは「act=486、ion=102、…」のように音節単位で3桁の数に対応させる(600個程ある)。暗号文「486-102」を復号すると act-ion になる。19世紀末フランス軍の暗号解読者バズリが解読を発表した。

例2 日露戦争で使われた暗号文:「アテヨ イカヌ ミユトノホウニセツシ、ノレツ ヲハイタダチニヨシスコレヲワケフ ウメルセントス、ホンジツテンキセイロウナレドモナミタカシ」。コードブックは「アテヨ=敵、イカヌ=艦隊、ノレツ=連合艦隊、…」のように秘匿したい単語をカナ3文字に対応(2文字目は単語の最初と同じ音にもなっている)させている。平文は「敵 艦隊見ユトノ警報ニ接シ、連合艦隊 は直チニ出動、コレヲ撃沈 滅セントス、本日天気晴朗ナレドモ波高シ」となる。

例3 真珠湾攻撃で使われた暗号文:「ニイタカヤマノボレ1208」(=12/8に日米開戦、事前に決めておいたフレーズを合図とした)。なお、「ト」の連打(=全軍突撃せよ)、「トラトラトラ」(=我、奇襲に成功せり)などもよく知られているが、正確には電信の短点連打音等の聞き分け易い音を合図としたものである。日本海軍機が搭載していたのは無線機電話機ではなく、無線電信機であったため、交戦時に複雑な電文の送信・聴取は困難なことから、和文電信で単純な符号の組み合わせなる(「ト」は短点3ツ、「ラ」は短点4ツを組み合わせて)、短点連打音(=全軍突撃せよ)、短点7ツの反復音(=我、奇襲に成功せり)を合図としたものである。

例4 単語を暗号書(コードブック)で対応する数字に変え、さらに乱数表から一定の法則で抜き出した数字を加える暗号もある。復号には、暗号作成時に使用したものと同一の乱数表と暗号書が必要。太平洋戦争における日本海軍がこうした暗号を使用していた。

参考文献

一般的事項

長田順行,「暗号」,社会思想社、1985

桧山 良昭,「暗号を盗んだ男たち―人物・日本陸軍暗号史 」, 光人社NF文庫, 1993

釜賀一夫, 「基礎暗号学―情報セキュリティのために (1)」, サイエンス社, 1989

Lambros D. Callimahos, William F. Friedman, "Military Cryptanalytics: Includes Problems and Computer Programs , Vol 2, No 45, Part 2", Aegean Park Pr, 1985

David Kahn, "The Codebreakers: The Story of Secret Writing", Scribner, 1996

解読理論と演習

William F. Friedman, "Solving German Codes in World War I ", Aegean Park Pr, 1979

Wayne G. Barker, "Cryptanalysis of an Enciphered Code Problem: Where an Additive Method of Enchipherement Has Been Used", Aegean Park Pr, 1979

British War Office, "Course in Cryptanalysis: Explanatory Text and Short Exercises/Si Course Vol 1", Aegean Park Pr

Army Records Society,"The British Army and Signals Intelligence During the First World War", Sutton Pub Ltd, 1992

商用コード

William F. Friedman, "History of the Use of Codes", Aegean Park Pr, 1977

実例

National Security Agency, "Nsa Reveals How Codes of Mexico Were Broken", Aegean Park Pr, 2000

National Security Agency, "VATICAN code systems", Aegean Park Pr

陸軍参謀本部, 「陸軍暗号書 5号 昭和19年07月01日調製」, 1944 (
靖国神社、靖国偕行文庫所蔵)

^ 加藤正隆『基礎 暗号学 T』(サイエンス社)における分類とその解説を参照のこと。
^ なおコンピュータプログラムに関して、「ソースコード」などコードという語があるのは、コンピュータの黎明期(プログラミング言語の発達前の1950年代)に、プログラムというものはまるで暗号のようだ、ということで暗号を指すコードから転じて使われるようになったという特殊な由来があるため注意。
^ という意味ではサイファに近い性格がある。
^ 一般には同一の版である必要があるが、聖書などは神学において精密な議論が必要だったという経緯から、専門家のための聖書は場所を正確に示すための補助が付いている。
^ "hat" は、真の乱数を得るための古典的な操作である「袋に数などを書いた小片を多数入れてよくかき混ぜてから取り出す」という手法の代名詞である、シルクハットからか。
^ 原理的には、表を端から順番に全て見ていって探せばよいわけであるから、時間がいくらでもあるならば(という非現実的な設定においては)表はひとつで良い。
.mw-parser-output .asbox{position:relative;overflow:hidden}.mw-parser-output .asbox table{background:transparent}.mw-parser-output .asbox p{margin:0}.mw-parser-output .asbox p+p{margin-top:0.25em}.mw-parser-output .asbox{font-size:90%}.mw-parser-output .asbox-note{font-size:90%}.mw-parser-output .asbox .navbar{position:absolute;top:-0.90em;right:1em;display:none}

この項目は、工学技術に関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めていますPortal:技術と産業)。
.mw-parser-output .hlist ul,.mw-parser-output .hlist ol{padding-left:0}.mw-parser-output .hlist li,.mw-parser-output .hlist dd,.mw-parser-output .hlist dt{margin-right:0;display:inline-block;white-space:nowrap}.mw-parser-output .hlist dt:after,.mw-parser-output .hlist dd:after,.mw-parser-output .hlist li:after{white-space:normal}.mw-parser-output .hlist li:after,.mw-parser-output .hlist dd:after{content:" ・\a0 ";font-weight:bold}.mw-parser-output .hlist dt:after{content:": "}.mw-parser-output .hlist-pipe dd:after,.mw-parser-output .hlist-pipe li:after{content:" |\a0 ";font-weight:normal}.mw-parser-output .hlist-hyphen dd:after,.mw-parser-output .hlist-hyphen li:after{content:" -\a0 ";font-weight:normal}.mw-parser-output .hlist-comma dd:after,.mw-parser-output .hlist-comma li:after{content:"、";font-weight:normal}.mw-parser-output .hlist-slash dd:after,.mw-parser-output .hlist-slash li:after{content:" /\a0 ";font-weight:normal}.mw-parser-output .hlist dd:last-child:after,.mw-parser-output .hlist dt:last-child:after,.mw-parser-output .hlist li:last-child:after{content:none}.mw-parser-output .hlist dd dd:first-child:before,.mw-parser-output .hlist dd dt:first-child:before,.mw-parser-output .hlist dd li:first-child:before,.mw-parser-output .hlist dt dd:first-child:before,.mw-parser-output .hlist dt dt:first-child:before,.mw-parser-output .hlist dt li:first-child:before,.mw-parser-output .hlist li dd:first-child:before,.mw-parser-output .hlist li dt:first-child:before,.mw-parser-output .hlist li li:first-child:before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child:after,.mw-parser-output .hlist dd dt:last-child:after,.mw-parser-output .hlist dd li:last-child:after,.mw-parser-output .hlist dt dd:last-child:after,.mw-parser-output .hlist dt dt:last-child:after,.mw-parser-output .hlist dt li:last-child:after,.mw-parser-output .hlist li dd:last-child:after,.mw-parser-output .hlist li dt:last-child:after,.mw-parser-output .hlist li li:last-child:after{content:")\a0 ";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li:before{content:" "counter(listitem)" ";white-space:nowrap}.mw-parser-output .hlist dd ol>li:first-child:before,.mw-parser-output .hlist dt ol>li:first-child:before,.mw-parser-output .hlist li ol>li:first-child:before{content:" ("counter(listitem)" "}.mw-parser-output .navbar{display:inline;font-size:75%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}.mw-parser-output .infobox .navbar{font-size:88%}.mw-parser-output .navbox .navbar{display:block;font-size:88%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}

表示

編集


記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:26 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef