📚

暗号の分類を調査してみた

2023/04/25に公開

はじめに

暗号は情報を特定の人しか読めないようにするために用いられます.これにより,セキュアな情報伝達を行えます.本記事は,暗号にどのような分類があるのか調べました.

暗号の分類

まず,暗号は「古典的暗号」と「現代的暗号」に大きく分けられます

名称 説明
古典的暗号 暗号の基本系.人力で解ける.コンピューター上ではほとんど使われない
現代的暗号 古典的暗号よりも高度な暗号.人力で解くのは困難.コンピューター上で使われる

古典的暗号

古典的暗号は,次の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
脚注
  1. 暗号の分類 ↩︎

  2. 暗号の歴史と現代暗号の基礎理論(RSA, 楕円曲線)-後半- - ABEJA Tech Blog ↩︎

  3. 準同型暗号とは?実用化事例や、主な手法について解説|EAGLYS株式会社 ↩︎

  4. A Survey on Lightweight Block Ciphers ↩︎

Discussion