暗号
入門する場合は暗号(守秘)、署名・検証(デジタル署名)、ハッシュなどまとめて
守秘 (Chipher ?) 一般的な暗号
鍵の交換方法など
DH
KDF
暗号と一括りにする場合、いろいろ技術があるが署名・検証、ハッシュ/XOF、鍵の扱いあたりまでまとめて一括りで扱う。パスワードも署名・検証に含められそうだが扱うものは少々違いがある。 鍵の種類で共通鍵暗号と公開鍵暗号に分かれ、ハッシュは鍵を持たないが、(基本的には)ハッシュに鍵を足したものが署名・検証。どれも元の値を推測するのが難しくなる計算のいろいろ。
古いアルゴリズムは解読されるので使用しないこと。独自アルゴリズムの自作も基本的には危険。
盗聴 - 暗号
なりすまし - 署名・検証
などに強くなるように考慮する必要がある。
用語はいろいろ特有のものがある。
守秘寄りの記述
RSAは暗号(守秘 Cipher)と署名・検証どちらでも使えるが、鍵が大きい、遅いなどで暗号側ではあまり使われない。
AES他いろいろはメッセージ(平文)を128bit程度のブロックに分けて鍵を使って暗号化したり、復号したりする仕組み。
ブロック暗号は暗号化モードと組み合わせて使用する。
共通鍵暗号は鍵を秘密に交換する手段が必要で、公開鍵暗号(RSA暗号)やDiffie-Hellman鍵共有法(DH法)などがある。
公開鍵暗号と共通鍵暗号の比較
共通鍵暗号
暗号(守秘)用途での利用が多い
特定の長さで暗号化するブロック暗号とデータとXORなどして使えるストリーム暗号がありブロック暗号では128bitのAESが標準化されている。
特定の範囲内で鍵を共有し、暗号化を行う。
鍵を共有するためにRSAなどが使われたが、DH法などで毎回生成する方式が主流かもしれない。
鍵を安全に共有して作る仕組みなどもあり、鍵は使い捨ての場合もある。
公開鍵暗号
署名・検証(デジタル署名)用途での利用が多め(RSA,DSA,ECDSA,EdDSA)
暗号で利用できるもの(閉じている RSA)は署名にも利用できる、逆はできない場合あり(DSA系)
共通鍵の暗号化など暗号でも使えるが、最近は使われない傾向あり。(RSA)
鍵は受信者側の公開鍵を使用したり、比較的寿命が長いが最近は3カ月程度で更新するhttps(TLS)などもあり。
階層化することでPKIとして身元証明などの仕組みもあり 鍵の名
日本語になるといろいろあるので英語名で覚えておくのがよさそう
公開鍵暗号(Public Key Cryptography)
プライベート鍵、秘密鍵、私有鍵(Private Key)
公開鍵(Public Key)
共通鍵暗号(Secret Key Cryptography / Symmetric-key ~ )
秘密鍵(Secret Key)、共通鍵(Common Key)、共有鍵(Shared Key)、対称鍵(Symmetric key)
どちらも秘密にしておく鍵を秘密鍵と読んでおいてもよさそう。正確にはJISでは公開鍵暗号のプライベート鍵と共通鍵暗号の秘密鍵で区別するらしい。公開鍵暗号の方を公開鍵と対応して秘密鍵と呼びがちなので共通鍵暗号の鍵を区別する場合には共通鍵、共有鍵、対称鍵などとも呼ばれる。
公開鍵暗号
RSAEP/RSADP RSAのみ 暗号
RSAES Paddingなど含む 暗号
RSAES-OAEP
RSAES-PKCS1_v1.5
RSASP1/RSAVP1 RSAのみ 署名
RSASSA 署名
RSASSA-PKCS1-v1_5
RSASSA-PSS
共通鍵暗号
MUGI
ブロック暗号を利用したモード
OFB
CFB
CTR
量子暗号?
パスワード暗号
PKCS #5 PBES2 パスワードを鍵導出関数(KDF)で共通鍵に変換してからブロック暗号を使う 鍵生成
鍵導出関数 KDF パスワードなどから共通鍵を生成する方法 鍵交換
table:系統
パスワード 共通鍵暗号 公開鍵暗号
ハッシュ SHA PBMAC1 HMAC/KMAC 署名
暗号 PBES AES RSA / RSAES
関連
MAC ハッシュ関数と鍵・署名等を組み合わせたもの アカウントなどのパスワードの場合は復元できないよう暗号ではなくハッシュなどを利用する