削除された内容 追加された内容
KasparBot (会話 | 投稿記録)
Normdaten moved to Wikidata
注釈化
1行目:
'''乱数表'''(らんすうひょう、{{lang-en|random number table)table}})とは、[[乱数列]]の[[数表]]のことだが、この記事ではもっぱら[[暗号]]に関係するものについて主に[[暗号理論]]の観点から述べる。なお、日本において広く知られているものに[[野球における乱数表]]があり、暗号の一種ではあるが限定された話となるので、独立記事の「[[野球における乱数表]]」の方を参照のこと。また英語版記事としては、対応している random number table の他、[[:en:Random number book]] も参照。
 
== 暗号と乱数 ==
7行目:
 
== コードと乱数 ==
「[[コード (暗号)]] 」とは、英単語のようなある程度まとまった情報を単位として符号を割振る形式の暗号であり、次節のサイファーと対置される。一例としては「敵艦隊見ゆとの警報に接し、連合艦隊は直ちに出動、これを撃沈 滅せんとす」という平文を「(アテヨイカヌ)ミユトノケイホウニセツシ(ノレツヲハイ)タダチニ(ヨシス)コレヲ(ワケフウメル)セントス」という暗文とするような暗号である(原文<ref group="注">暗号学では、通信において、直接に暗号化の対象とする文(ここでは漢字を全てカナにしたもの)のことを「原文」と呼ぶ</ref>は略)。この例では「(仮名3文字)」のコードのうち2文字目が原文を連想させるようなものになっているのは扱いの簡便さが目的だが、暗号としてはそのぶん弱いといえる。これを、乱数(字の場合は「乱字」とも言う)によってランダムに割振ることで、推測を難しくできる。
 
== サイファーと乱数 ==
「サイファー」([[w:Cipher]])とは、電子化以前の暗号において、文字単位で転置や置換を掛けるようなタイプの暗号であり、前節のコードと対置される。電子化以後のブロック暗号なども、目的の情報とは無関係に、固定のデータサイズで変換する、一種のサイファーと言える。暗号学において狭義には'''乱数表'''とは、このようなサイファーにおいて表の選択に使う乱数を、帳面に印刷もしくは筆記したものである<ref>『ながた暗号塾入門』( ISBN 4-02-255931-4 ) p. 123</ref>。乱数表に使う乱数は、できれば擬似乱数でない真の乱数のほうが望ましいが<ref group="注">質の高い擬似乱数生成系が無かった過去では真の乱数の必要性は高かったかもしれないが、近年は[[暗号論的擬似乱数生成器]]なども提案されており(ただし、適切な運用は必須)、ここでの真の乱数の必要性は下がっている。</ref>、それよりも実際の安全性に影響が大きいのは、その運用法である。次節で述べる[[ワンタイムパッド]]として運用できれば良いが、そのためには通信に使うだけの量の乱数列をあらかじめ送信者と受信者の間で共有しておく、という大きなコストが掛かる。一方で、同じ乱数列の再利用を続ければ、敵にその内容を悟られる危険は高い。
 
== ワンタイムパッドと乱数 ==
16行目:
真の乱数を使い一度使った乱数列は2度と使わない([[ワンタイムパッド]])、という運用が正しくなされた乱数による暗号について[[暗号理論]]では、[[情報理論的安全性]]がある、と言う。理論上「最も強い」ということだが(どのように解読したとしても、どのような解読も「同様にもっともらしい」ということになるので、解読が不可能)、[[システム]]としての暗号の強さは、その運用の難易度などといったことも含めて評価されねばならず、ワンタイムパッドには、その正しい運用はコストが極めて高い、という弱点がある(正しくない運用は、暗号自体の理論的な強度を台無しにする弱点に、容易になり得る)。
 
== 注 ==
{{脚注ヘルプ}}
=== 注釈 ===
{{Notelist2}}
=== 出典 ===
<references/>