コード (暗号)
ただしもし、そのように定義するならば、コードは、現代の暗号学による狭義の現代暗号ではありえない((狭義の)現代暗号とは、秘密が鍵のみに集中するような方式ということだから)ことになる。ケルクホフスの原理の記事も参照。
なお、英語 code は暗号化を目的としないものを含む(文字コード(character code)などの用例におけるcode)。その意味では、公開され市販もされていたようなコードブックというようなものもある(w:Commercial code (communications))。そういったものを使う場合、必要であれば、それと別に秘密のコードブックも用意し、電報などでのやりとりには、さらにそちらで変換する。
また一種のコードと言えなくもないが、一種の乱数表のようなものとして、きちんとそのような目的のため設計されたもの(en:Random number book)ではなく、市販の辞書や聖書などの書籍をそのまま利用した暗号(規約さえ秘匿できれば、表自体は盗まれることの心配をしなくてよく、また自国以外で活動する諜報員には入手しやすさという利点もある)、フィクションでの例だがシャーロック・ホームズの「恐怖の谷」に登場するような暗号は「ブック暗号」という別の分類がある(英語版で記事名が en:Book cipher である通りサイファと扱われることもあるが(注に書いた通りそれに近い性格もある)、英語版の2017年10月現在の記事には「book ciphers are more properly called codes.」とあるように、コードと扱われることもある)。
またサイファからコードに配置換えになった暗号手が原語を探すのを面倒がり代わりに全て単文字でスペルアウトした事故もある。
補遺
spare groupとも言う。頻繁にスペルアウトする語句を将来追加する為に対応原語を未定としたコードを幾つか用意しておく。補遺のコードに原語を割り当てるのはコードの運用母体が行うので、個々の発信者が独自には利用できない。
付録辞典
例えば少人数が狭い地域で扱うplaincodeであれば人名、地名、艦名、商品名は都度スペルアウトして済むが、規模が大きくなると付録辞典(別冊の専用plaincode)を用意する必要が有る。当然ながら本編のplaincode側に「次のコードからは人名事典」「人名事典の終わり」といったコードも用意する必要が有る。
入れ変わりの多い人名、艦名、商品名の管理が別冊内で一元管理できるので、本編plaincodeを編集する必要が無い。
膨大な地名や商品名には膨大なコードを割り当てる必要があるが、本編のコードと重複割当が可能になる。
極めてセンシティブな語句、例えば金額や非合法な単語だけにコード(コードネーム、符牒、隠語)を割当てて残りは平文のまま通信する。コード編纂が非常に簡便だが暗号強度は低くなる。例えば接続詞、前置詞、疑問符、句読点等はコードにされない事が多いが、これらは判明しているとコード解読に役立つからである。
↑ 加藤正隆『基礎 暗号学 I』(サイエンス社)における分類とその解説を参照のこと。
↑ なおコンピュータプログラムに関して、「ソースコード」などコードという語があるのは、コンピュータの黎明期(プログラミング言語の発達前の1950年代)に、プログラムというものはまるで暗号のようだ、ということで暗号を指すコードから転じて使われるようになったという特殊な由来があるため注意。
↑ という意味ではサイファに近い性格がある。
↑ 一般には同一の版である必要があるが、聖書などは神学において精密な議論が必要だったという経緯から、専門家のための聖書は場所を正確に示すための補助が付いている。
↑ "hat" は、真の乱数を得るための古典的な操作である「袋に数などを書いた小片を多数入れてよくかき混ぜてから取り出す」という手法の代名詞である、シルクハットからか。
↑ 原理的には、表を端から順番に全て見ていって探せばよいわけであるから、時間がいくらでもあるならば(という非現実的な設定においては)表はひとつで良い。
表示
編集