暗号アルゴリズム 【cipher algorithm】 暗号化アルゴリズム / encryption algorithm

概要

暗号アルゴリズム(cipher algorithm)とは、データ暗号化復号うための計算や操作の手順を定めた規則。文脈によっては暗号化の手順のみを指す場合もある(復号の手順を復号アルゴリズムとして分ける場合)。

最も単純な暗号アルゴリズムとして、例えば「アルファベット順で指定した数だけ前後にずらす(ただしAの後はZ、Zの前はA)」という文字の置き換えルールを考える。これは古代ローマで実際に使われていたとされる「シーザー暗号」と呼ばれる暗号方式である。

このアルゴリズムに「ABC」というアルファベット文字列と、ずらす字数として「2」というを与えると、「A」は後ろに2文字ずれて「C」に、「B」は「D」に、「C」は「E」になり、「CDE」となる。このとき元になる「ABC」を「平文」(cleartext)、「2」を「暗号鍵」(cipher key)、「CDE」を「暗号文」(ciphertext)という。

復号時には暗号化と逆の手順で「C」「D」「E」をそれぞれ2文字ずつ前にずらすことで、平文ABC」を復元することができる。手順と平文が同じでも、暗号鍵が「1」であれば暗号文は「BCD」に、「-1」ならば「ZAB」となり、鍵次第で得られる暗号文は異なる。また、手順と暗号文を入手しても、鍵が分からなければ何文字ずらしたのか分からないため復号できない。

コンピュータによる計算が普及する以前は、暗号アルゴリズム自体を秘匿して「どのような手順で作られた暗号文なのか分からない」ことで解読の困難さを高めることもあったが、現在ではアルゴリズム標準化された公知のものを用いる前提で、鍵の割り出しにくさを暗号強度の根拠とするのが一般的となっている。

共通鍵暗号と公開鍵暗号

古代から最近まで、暗号アルゴリズムといえば暗号化復号に同じ暗号鍵を用いる「共通鍵暗号」(秘密鍵暗号)しかなかった。この方式で通信暗号化するには、送り手と受け手があらかじめ同じ暗号鍵(生成や利用の規則の形を取ることもある)を共有しておかなければならないという制約がある。計算が高速であるなど利点もあるため現代でも通信文の暗号化などのために大いに利用されており、AES方式が標準として広く普及している。

一方、1970年代に考案された「公開鍵暗号」では、対になる二つの鍵をセットで生成し、一方で暗号化を、もう片方で復号う。暗号化に用いる鍵は公開して誰でも使えるようにしておくため「公開鍵」、対になる復号用の鍵は所有者のもとで秘匿して管理されるため「秘密鍵」と呼ぶ。

鍵の所有者に秘密を伝えたい人は、その人の公開鍵を入手して暗号文を作成して送信する。所有者は対になる秘密鍵を知っているため復号して平文に戻すことができるが、本人以外は秘密鍵を持っていないため復号できない。公開鍵から秘密鍵を割り出せないよう、巨大な整数の素因数分解など数学上の問題が利用されている。

公開鍵暗号暗号化の方式としてだけでなくデジタル署名電子署名)を実現する要素技術としても広く普及しており、RSA暗号ElGamal暗号楕円曲線暗号などがよく知られている。

(2021.9.16更新)

他の辞典による解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる