公開鍵暗号
秘密鍵と公開鍵が異なる暗号方式
両方できるのはRSA、他の形式ではECDHなどの鍵交換が利用されるらしい
暗号 (RSA)
公開鍵で暗号化したものは、プライベート鍵(私有鍵 private key)で復号化できる。ブロック暗号などと同じで長さは modules の長さまでという制限がある。ブロック暗号という使い方もできなくはないが低速。
安全強度を保つには鍵長などが長くなるため他のアルゴリズムに移行が進んでいる。
暗号に利用できるのは、RSAが有限体で閉じているためモジュラ逆数で元に戻すことができる
証明書の署名・検証用途ではまだ利用しているがECDSA, EdDSAなどへの移行が進んでいる。
署名・検証のみ利用できるのがDSA系
RSAより短いということでECDSA, EdDSAが利用される傾向にある。DSAは古いため廃止の方向。
DSA系で暗号化はどうするのか説明されていない事が多いので妄想になりがち
table:役割
鍵 暗号化(鍵) 鍵交換 署名・検証 拡張子
プライベート鍵 私有鍵 秘密鍵 private key 復号(RSAのみ) ECDH,ECDHE 署名 .p8 .key など
公開鍵 public key 暗号化(RSAのみ) ECDH,ECDHE 検証 .pub
共通鍵 秘密鍵 secret key ○共通鍵暗号 MAC?
速度は遅い
暗号、署名・検証に利用可能
RSAEP 暗号 (旧式)
RSADP 復号 (旧式)
RSASP1 署名 (旧式)
RSAVP1 検証 (旧式)
暗号化手順
RSAES-OAEP 新
署名・検証手順
RSASSA-PSS 新
RSAでは秘密鍵と公開鍵の機能(原理)が同じ。
逆の使い方で暗号と署名・検証に使えるが同じ鍵を利用すると脆弱なため、単純な暗号化、署名・検証では安全ではない。
そのためRSAES、RSASSAのスキームで別々の方式になるように使われるのが一般的
table:鍵と機能とOID
署名 暗号 鍵転送 鍵交換(DH) RFC OID 鍵または署名
RSA △ △ △ ECDHE?
rsaEncryption 公開鍵 4055 1.2.840.113549.1.1.1
RSAES-OAEP - ○ ○ - 4055 1.2.840.113549.1.1.7
md2WithRSAEncryption ○ ✗ ✗ ✗ 2313,3279 1.2.840.113549.1.1.2
md5WithRSAEncryption ○ ✗ ✗ ✗ 2313,3279 1.2.840.113549.1.1.4
sha-1WithRSAEncryption ○ ✗ ✗ ✗ 2313,3279 1.2.840.113549.1.1.5
sha224WithRSAEncryption ○ ✗ ✗ ✗ 4055 1.2.840.113549.1.1.14
sha256WithRSAEncryption ○ ✗ ✗ ✗ 4055 1.2.840.113549.1.1.11
sha384WithRSAEncryption ○ ✗ ✗ ✗ 4055 1.2.840.113549.1.1.12
sha512WithRSAEncryption ○ ✗ ✗ ✗ 4055 1.2.840.113549.1.1.13
sha512-224WithRSAEncryption ○ ✗ ✗ ✗ 4056 1.2.840.113549.1.1.15
sha512-256WithRSAEncryption ○ ✗ ✗ ✗ 4056 1.2.840.113549.1.1.16
rsassa-pkcs1-v1-5-with-sha3-224 ○ ✗ ✗ ✗ 9688 2.16.840.1.101.3.4.3.13
rsassa-pkcs1-v1-5-with-sha3-256 ○ ✗ ✗ ✗ 9688 2.16.840.1.101.3.4.3.14
rsassa-pkcs1-v1-5-with-sha3-384 ○ ✗ ✗ ✗ 9688 2.16.840.1.101.3.4.3.15
rsassa-pkcs1-v1-5-with-sha3-512 ○ ✗ ✗ ✗ 9688 2.16.840.1.101.3.4.3.16
RSASSA-PSS ○ ✗ ✗ ✗ 4055 1.2.840.113549.1.1.10
RSASSA-PSS-SHAKE128 ○ ✗ ✗ ✗ 8692 1.3.6.1.5.5.7.6.30
RSASSA-PSS-SHAKE256 ○ ✗ ✗ ✗ 8692 1.3.6.1.5.5.7.6.31
DSA ○ ✗ ✗ DH,ECDHE?
dsa 公開鍵 1.2.840.10040.4.1
id-dsa-with-sha1 ○ ✗ ✗ 3279 1.2.840.10040.4.3
id-dsa-with-sha224 ○ ✗ ✗ 5758 2.16.840.1.101.3.4.3.1
id-dsa-with-sha256 ○ ✗ ✗ 5758 2.16.840.1.101.3.4.3.2
DH ✗ ✗ ✗ ○
dhpublicnumber 3279 1.2.840.10046.2.1
KEA ○
keyExchangeAlgorithm 3279 2.16.840.1.101.2.1.1.22
ECDSA ○ ✗ ✗ ECDH 3279,5480,8813
ecPublicKey 3279,5480 1.2.840.10045.2.1
ecdsa-with-sha1 ○ - - 3279 1.2.840.11045.4.1
ecdsa-with-sha224 ○ - - 5758 1.2.840.10045.4.3.1
ecdsa-with-sha256 ○ - - 5758 1.2.840.10045.4.3.2
ecdsa-with-sha384 ○ - - 5758 1.2.840.10045.4.3.3
ecdsa-with-sha512 ○ - - 5758 1.2.840.10045.4.3.4
ecdsa-with-shake128 ○ - - 8692 1.3.6.1.5.5.7.6.32
ecdsa-with-shake256 ○ - - 8692 1.3.6.1.5.5.7.6.33
ECDH(ECDSA) ✗ ✗ ✗ ECDH 5480,8813
ECMQV ✗ ✗ 5480,8813 1.3.132.1.13
EdDSA ○ ✗ ✗ ↓ 8032,8410
ECDH(EdDSA) X25519,X448 - - ○ 7748,8410
ECDHE ○
MGF1 4055 1.2.840.113549.1.1.8
署名・検証のみ利用可能
DSA Digital Signature Algorithm SM2 (中国)
暗号化の鍵交換
鍵の形式
主な用途
https
SMTP / POP3 / IMAP
etc...
pgp / gpg
鍵の型式はこれくらい
sshとDKIMは認証局を必要としない
DKIMは一部制限あり