📚
暗号の分類を調査してみた
はじめに
暗号は情報を特定の人しか読めないようにするために用いられます.これにより,セキュアな情報伝達を行えます.本記事は,暗号にどのような分類があるのか調べました.
暗号の分類
まず,暗号は「古典的暗号」と「現代的暗号」に大きく分けられます
名称 | 説明 |
---|---|
古典的暗号 | 暗号の基本系.人力で解ける.コンピューター上ではほとんど使われない |
現代的暗号 | 古典的暗号よりも高度な暗号.人力で解くのは困難.コンピューター上で使われる |
古典的暗号
古典的暗号は,次の5種類に分けられます[1]
名称 | 説明 |
---|---|
換字式暗号 | 平文を他の文字や符号に置き換える |
転置式暗号 | 平文の順序を入れ替える |
分置式暗号 | 平文の間に別の文字を挟む |
約束語 | 一部の人にしか理解できない隠語 |
陰文式暗号 | 遠回しの表現 |
現代的暗号
現代的暗号は,次の2種類に分けられます
名称 | 説明 |
---|---|
秘密鍵暗号 | 暗号化と復号に同じ鍵を用いる |
公開鍵暗号 | 暗号化と復号に異なる鍵を用いる.秘密鍵暗号に比べ,安全性が高い |
公開鍵暗号
現代的暗号の中でも,公開鍵暗号には次のような手法が存在します[2]
名称 | 説明 |
---|---|
RSA暗号 | 素因数分解を用いる |
楕円曲線暗号 | 有限体上の楕円曲線を用いる |
etc... | ... |
準同型性
暗号の準同型性によって,次のように分けられます[3]
名称 | 説明 | 主な信号 |
---|---|---|
加法準同型暗号 | 加法が可能 | 岡本・内山暗号、Paillier暗号 |
乗法準同型暗号 | 乗法が可能 | ElGamal暗号、RSA暗号 |
somewhat準同型 | 加法は可能だが、乗法のみ演算回数に制限がある | Boneh–Goh–Nissim暗号、格子暗号の一部 |
完全準同型暗号 | 加法と乗法が可能,演算回数に制限がない | Gentryによる格子暗号ベースの完全準同型暗号 |
軽量ブロック暗号
軽量ブロック暗号という暗号があり,次のように分けられます[4]
Ciphers | Function | Architecture | Structure | Key size | Block size | Rounds | Cycles / Block | Throughput | Area (GEs) |
---|---|---|---|---|---|---|---|---|---|
PRINT-48∗ | Enc. | Round-based | SPN | 80 | 48 | 48 | 48 | 100 | 503 |
PRINT-48∗ | Enc. | Serialized | SPN | 80 | 48 | 48 | 768 | 6.25 | 402 |
PRINT-96∗ | Enc. | Serialized | SPN | 160 | 96 | 96 | 3072 | 3.13 | 726 |
PRINT-96∗ | Enc. | Round-based | SPN | 160 | 96 | 96 | 96 | 100 | 967 |
LED-64∗ | Enc. | Serialized | SPN | 64 | 64 | 32 | 1248 | 5.1 | 688 |
LED-80∗ | Enc. | Serialized | SPN | 80 | 64 | 48 | 1872 | 3.4 | 690 |
LED-96∗ | Enc. | Serialized | SPN | 96 | 64 | 48 | 1872 | 3.4 | 695 |
LED-128∗ | Enc. | Serialized | SPN | 128 | 64 | 48 | 1872 | 3.4 | 700 |
KTANTAN-32∗ | Enc. | Serialized | LFSR | 80 | 32 | 254 | 255 | 12.5 | 462 |
KTANTAN-48∗ | Enc. | Serialized | LFSR | 80 | 48 | 254 | 255 | 18.8 | 588 |
KTANTAN-64∗ | Enc. | Serialized | LFSR | 80 | 64 | 254 | 255 | 25.1 | 688 |
PRESENT-80 | Enc. | Serialized | SPN | 80 | 64 | 32 | 516 | 12.4 | 1030 |
PRESENT-80 | Enc. | Round-based | SPN | 80 | 64 | 32 | 32 | 200 | 1570 |
PRESENT-128 | Enc. | Serialized | SPN | 128 | 64 | 32 | 528 | 12.12 | 1339 |
PRESENT-128 | Enc. | Round-based | SPN | 128 | 64 | 32 | 32 | 200 | 1886 |
EPCBC-48 | Enc. | Serialized | SPN | 96 | 48 | 32 | 396 | 12.12 | 1008 |
EPCBC-96 | Enc. | Serialized | SPN | 96 | 96 | 32 | 792 | 12.12 | 1333 |
DES | Enc. | Serialized | Feistel | 56 | 64 | 16 | 144 | 5.55 | 2309 |
DESL | Enc. | Serialized | Feistel | 56 | 64 | 16 | 144 | 5.55 | 1848 |
DESX | Enc. | Serialized | Feistel | 184 | 64 | 16 | 144 | 5.55 | 2629 |
DESXL | Enc. | Serialized | Feistel | 184 | 64 | 16 | 144 | 5.55 | 2168 |
TWINE-80 | Enc. | Round-based | Feistel | 80 | 64 | 36 | 36 | 178 | 1503 |
TWINE-80 | Enc. | Serialized | Feistel | 80 | 64 | 36 | 540 | 11.8 | 1116 |
TWINE-80 | Enc+Dec | Round-based | Feistel | 80 | 64 | 36 | 36 | 178 | 1799 |
TWINE-128 | Enc. | Round-based | Feistel | 128 | 64 | 36 | 36 | 178 | 1866 |
TWINE-128 | Enc+Dec | Round-based | Feistel | 128 | 64 | 36 | 36 | 178 | 2285 |
Puffin | Enc+Dec | Round-based | SPN | 128 | 64 | 32 | 32 | 194 | 2577 |
KLEIN-64 | Enc+Dec | Round-based | SPN | 64 | 64 | 12 | 13 | 492.3 | 2475 |
KLEIN-80 | Enc+Dec | Round-based | SPN | 80 | 64 | 16 | 17 | 376.5 | 2629 |
KLEIN-96 | Enc+Dec | Round-based | SPN | 96 | 64 | 20 | 21 | 304.8 | 2769 |
KLEIN-64 | Enc+Dec | Serialized | SPN | 64 | 64 | 12 | 207 | 30.9 | 1220 |
KLEIN-80 | Enc+Dec | Serialized | SPN | 80 | 64 | 16 | 271 | 23.6 | 1478 |
KLEIN-96 | Enc+Dec | Serialized | SPN | 96 | 64 | 20 | 335 | 19.1 | 1528 |
KATAN-32 | Enc. | Serialized | LFSR | 80 | 32 | 254 | 255 | 12.5 | 802 |
KATAN-48 | Enc. | Serialized | LFSR | 80 | 48 | 254 | 255 | 18.8 | 927 |
KATAN-64 | Enc. | Serialized | LFSR | 80 | 64 | 254 | 255 | 25.1 | 1054 |
LED-64 | Enc. | Serialized | SPN | 64 | 64 | 32 | 1248 | 5.1 | 966 |
LED-80 | Enc. | Serialized | SPN | 80 | 64 | 48 | 1872 | 3.4 | 1040 |
LED-96 | Enc. | Serialized | SPN | 96 | 64 | 48 | 1872 | 3.4 | 1116 |
LED-128 | Enc. | Serialized | SPN | 128 | 64 | 48 | 1872 | 3.4 | 1265 |
LBLOCK | Enc. | Round-based | Feistel | 80 | 64 | 32 | 32 | 200 | 1320 |
LBLOCK | Enc. | Serialized | Feistel | 80 | 64 | 32 | 576 | 11.1 | 866 |
RECTANGLE-80 | Enc. | Round-based | SPN | 80 | 64 | 25 | 26 | 246 | 1467 |
RECTANGLE-128 | Enc. | Round-based | SPN | 128 | 64 | 25 | 26 | 246 | 1787 |
RECTANGLE-80 | Enc. | Serialized | SPN | 80 | 64 | 25 | 461 | 13.9 | 1066 |
Discussion