本章主要内容是PKCS
背景
-由于公钥密码被广泛接受已成为事实,如果要将其发展成为广泛应用的技术,就必须有支持互操作的标准
-即便是所有用户都认同公钥密码技术,使各种不同的实现版本相兼容也是必需的。
-互操作性要求严格按照一个获得认可的标准格式来传输数据,这里所描述的标准就为互操作性提供了基础
PKCS是Public-Key Cryptography Standards的简称。
服务于公钥密码体制的兼容性和互操作性。
PKCS#1:RSA加密标准
PKCS#3:Diffie-Hellman密钥协商标准
PKCS#5:基于口令的加密标准
PKCS#6:扩展证书语法标准
PKCS#7:密码消息语法标准
PKCS#8:私钥信息语法标准
PKCS#9:可选属性类型标准
PKCS#10:认证请求语法标准
PKCS#11:密码令牌接口标准
PKCS#12:个人信息交换语法标准
PKCS#13:椭圆曲线加密标准
PKCS#14:随机数产生标准
PKCS#15:密码令牌信息格式标准
口令产生密钥的方法
salt:将口令与salt相结合以生成密钥,用口令可生成一个巨大的密钥集,可以把salt
看作是对这个密钥集的一个索引,不需要对salt进行保密。虽然一个攻击者可能会构建一个包含所有口令的表,但构建一个包含所有可能密钥的表示十分困难的,因为对每一个口令都存在非常多的可能密钥。因而攻击者只能对每个salt来搜索所有的口令。
迭代:建立一种代价相对较高的密钥生成技术,从而增加穷举搜索代价。这种方法的一种途径就是,在密钥生成技术中引入一个迭代次数,用来表示对某个生成密钥的基础函数的迭代次数。它对于合法者来说并不形成一种负担,但对攻击者却是一种严重的负担。