javascript七基础学习系列一千四百九十二:CryptoKey 与算法

如果没了密钥,那密码学也就没什么意义了。SubtleCrypto 对象使用CryptoKey 类的实例来生
成密钥。CryptoKey 类支持多种加密算法,允许控制密钥抽取和使用。
CryptoKey 类支持以下算法,按各自的父密码系统归类。
 RSA(Rivest-Shamir-Adleman):公钥密码系统,使用两个大素数获得一对公钥和私钥,可用
于签名/验证或加密/解密消息。RSA 的陷门函数被称为分解难题(factoring problem)。
 RSASSA-PKCS1-v1_5:RSA 的一个应用,用于使用私钥给消息签名,允许使用公钥验证签名。
 SSA(Signature Schemes with Appendix),表示算法支持签名生成和验证操作。
 PKCS1(Public-Key Cryptography Standards #1),表示算法展示出的RSA 密钥必需的数学特性。
 RSASSA-PKCS1-v1_5 是确定性的,意味着同样的消息和密钥每次都会生成相同的签名。
 RSA-PSS:RSA 的另一个应用,用于签名和验证消息。
 PSS(Probabilistic Signature Scheme),表示生成签名时会加盐以得到随机签名。
 与RSASSA-PKCS1-v1_5 不同,同样的消息和密钥每次都会生成不同的签名。
 与RSASSA-PKCS1-v1_5 不同,RSA-PSS 有可能约简到RSA 分解难题的难度。
 通常, 虽然RSASSA-PKCS1-v1_5 仍被认为是安全的, 但RSA-PSS 应该用于代替
RSASSA-PKCS1-v1_5。
 RSA-OAEP:RSA 的一个应用,用于使用公钥加密消息,用私钥来解密。
 OAEP(Optimal Asymmetric Encryption Padding),表示算法利用了Feistel 网络在加密前处理未
加密的消息。
 OAEP 主要将确定性RSA 加密模式转换为概率性加密模式。
 ECC(Elliptic-Curve Cryptography):公钥密码系统,使用一个素数和一个椭圆曲线获得一对公
钥和私钥,可用于签名/验证消息。ECC 的陷门函数被称为椭圆曲线离散对数问题(elliptic curve
discrete logarithm problem)。ECC 被认为优于RSA。虽然RSA 和ECC 在密码学意义上都很强,
但ECC 密钥比RSA 密钥短,而且ECC 密码学操作比RSA 操作快。
 ECDSA(Elliptic Curve Digital Signature Algorithm):ECC 的一个应用,用于签名和验证消息。
这个算法是数字签名算法(DSA,Digital Signature Algorithm)的一个椭圆曲线风格的变体。
 ECDH(Elliptic Curve Diffie-Hellman):ECC 的密钥生成和密钥协商应用,允许两方通过公开通
信渠道建立共享的机密。这个算法是Diffie-Hellman 密钥交换(DH,Diffie-Hellman key exchange)
协议的一个椭圆曲线风格的变体。
 AES(Advanced Encryption Standard):对称密钥密码系统,使用派生自置换组合网络的分组
密码加密和解密数据。AES 在不同模式下使用,不同模式算法的特性也不同。
 AES-CTR:AES 的计数器模式(counter mode)。这个模式使用递增计数器生成其密钥流,其行
为类似密文流。使用时必须为其提供一个随机数,用作初始化向量。AES-CTR 加密/解密可以
并行。
 AES-CBC:AES 的密码分组链模式(cipher block chaining mode)。在加密纯文本的每个分组之
前,先使用之前密文分组求XOR,也就是名字中的“链”。使用一个初始化向量作为第一个分组
的XOR 输入。
 AES-GCM:AES 的伽罗瓦/计数器模式(Galois/Counter mode)。这个模式使用计数器和初始化
向量生成一个值,这个值会与每个分组的纯文本计算XOR。与CBC 不同,这个模式的XOR 输
入不依赖之前分组密文。因此GCM 模式可以并行。由于其卓越的性能,AES-GCM 在很多网络
安全协议中得到了应用。
 AES-KW:AES 的密钥包装模式(key wrapping mode)。这个算法将加密密钥包装为一个可移植
且加密的格式,可以在不信任的渠道中传输。传输之后,接收方可以解包密钥。与其他AES 模
式不同,AES-KW 不需要初始化向量。
 HMAC(Hash-Based Message Authentication Code):用于生成消息认证码的算法,用于验证
通过不可信网络接收的消息没有被修改过。两方使用散列函数和共享私钥来签名和验证消息。
 KDF(Key Derivation Functions):可以使用散列函数从主密钥获得一个或多个密钥的算法。KDF
能够生成不同长度的密钥,也能把密钥转换为不同格式。
 HKDF(HMAC-Based Key Derivation Function):密钥推导函数,与高熵输入(如已有密钥)
一起使用。
 PBKDF2(Password-Based Key Derivation Function 2):密钥推导函数,与低熵输入(如密钥
字符串)一起使用。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值