ユーザ用ツール

サイト用ツール


encryption

文書の過去の版を表示しています。


暗号技術

第三者に通信内容を知られないようにするために情報を秘匿する方法で、通信文を読まれても第三者には理解できない内容に変換する方法。

暗号化ソフトウェア

コードとサイファ

コード:ある単語を別の意味をもつ単語に置き換える、あるフレーズを全く別のフレーズに置き換える。例:ニイタカヤマノボレ、トラトラトラ。スパイが用いるコードネームの「コード」もこの意味である。

サイファ:文字を一定のアルゴリズムで別の文字に置き換える。例えば、平文のアルファベットを一定数後ろにずらした文字列を暗号文とする(hoge → iphf) 。このアルゴリズムはサイファの最も単純な例でユリウス・カエサルが用いたことで知られているためシーザー暗号と呼ばれる。現代の暗号技術はより複雑であるが、すべてサイファを使っている。

転字式暗号

文章の読み方を変える暗号。いわゆる縦読みも転字式暗号の一種といえる。

換字式暗号

  • 単表式換字(文字変換のルールが一種類のもの)
    • 単純換字(シーザー暗号)
  • 多表式換字(文字変換のルールが多数のもの)
    • 周期換字(ヴィジュネル暗号、エニグマ暗号)
    • 非周期換字(ワンタイムパッド)

ワンタイムパッド

文章の文字数と同じ長さの乱数列を鍵として暗号化を行い、一度使った乱数表は捨てる。暗号化に用いた乱数を知らないものには論理的に解読不能(総当たりではどんな文章でも作れてしまうため、どれが元の文章なのかわからない)。乱数表が漏えいしない限り絶対安全な暗号方式。ただし、その乱数表の安全な管理に膨大なコストがかかるという欠点がある。

共通鍵暗号

暗号化と復号化に同一の鍵を用いる暗号方式。現代の共通鍵暗号は疑似乱数を発生させてそれを鍵として暗号化を行う。

公開鍵暗号

暗号化と復号化の鍵が異なる暗号。暗号化鍵(公開鍵)を公開し、復号鍵(秘密鍵)を秘匿する。秘密メッセージを送りたい場合は相手が公開している公開鍵で暗号化し送る。送られてきた人物は自分の秘密鍵で復号することでメッセージを読む。

アルゴリズムのポイントは暗号化鍵から復号化鍵を推定するのが難しいものを使うこと。巨大な素数による合成数の素因数分解が困難である事を根拠としたRSA、離散対数問題(って何?)を根拠としたDSAなどがある。公開鍵暗号は現代インターネットの基盤技術となっている。ただし公開鍵暗号は暗号化にも復号にもそれなりのコストがかかるため、公開鍵暗号を利用して通信する相手と同一の共通鍵を取得し(Diffie-Hellman鍵共有)、以後の通信を共通鍵暗号で暗号化して行う。

量子コンピュータが実用化すると、その特性のためどんな巨大な数の素因数分解でも一瞬で解かれてしまうのでRSA暗号は無力化する。

デジタル署名

公開鍵暗号は、メッセージを公開鍵で変換し、これを暗号文として、秘密鍵で暗号文を復号するものである。RSAアルゴリズムでは、公開鍵で変換したメッセージを秘密鍵で元のメッセージに戻せるだけでなく、逆に秘密鍵で変換したメッセージを公開鍵で戻す事もできる。もちろん秘密鍵で変換したメッセージは、誰もが利用可能な公開鍵で戻す事ができるので暗号として意味をなさない。しかし公開鍵で解読可能なメッセージを作成できるのは秘密鍵のみである。この性質を利用するとメッセージの送り主が確かに間違いなく当人(秘密鍵の持ち主)であることを証明できる。これがデジタル署名の原理である。

送信者は、送信メッセージのハッシュ値を秘密鍵で暗号化し、これを署名とする。受取人は差出人と思われる人物の公開鍵で署名を復号し、送信メッセージのハッシュ値と比較して一致することを確認する。これで送信者と思しき人物が、間違いなく送信者であり、誰かが差出人を偽装して送信した文章ではないことが確認できる。当然であるが相手が自分の良く知った人物であり、また公開鍵がその相手のものであるという確証がなければ署名を確認出来ても意味がない。

encryption.1262080395.txt.gz · 最終更新: (外部編集)