公众号回复“1”,拉你进区块链技术讨论微信群
作者:于中阳Mercina-zy
来源:区块链兄弟
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本文约1300字+,阅读(观看)需要8分钟
区块链技术当中一个很重要的组成部分就是密码学,作为从事区块链研究的工程技术人员,应该对密码学有一定的了解。现我想分享一些密码学的基本概念以供交流学习,大家共同学习,更加充实对区块链技术的理解。
非对称密钥的生成
密码体制不同,密钥的管理方法也不同。因此公钥密码的密钥管理与传统密码的密钥管理也大不相同:
传统密码只有一个密钥,加密钥等于解密密钥,即:Ke=Kd 。因此,密钥的秘密性、真实性和完整性都必须保护。
而公开密钥密码有两个密钥,加密密钥和解密密钥是不同的,
即:
而且,由加密密钥在计算上是不能求出解密密钥的,所以加密密钥的秘密性不用确保。
虽然公开密钥密码体制的加密密钥可以公开,其秘密性不需要保护,但其完整性和真实性却必须严格保护。公开密钥密码体制的解密密钥的秘密性、真实性和完整性都必须得到保护。
传统密码体制的密钥本质上是一种随机数或随机序列。
因此,传统密码体制的密钥产生本质上是产生具有良好密码学特性的随机数或随机序列。公开密钥密码体制本质上是一种单向陷门函数,它们都是建立在某一数学难题之上的。
不同的公开密钥密码体制所依据的数学难题不同,因此其密钥产生的具体要求不同。
但是,它们都必须满足由密码安全性和应用的有效性对密钥所提出的要求。
现举例说明:
RSA密码
对于 RSA 密码,其秘密密钥为:
公开密钥为 。
因此其密钥的产生主要是根据安全性和工作效率来合理地产生这些密钥参数。
注:p 和 q 越大则越安全,但工作效率就越低。
反之 , p 和 q 越小则工作效率就越高,但安全性就越低。
根据目前的因子分解能力,对于一般应用 , p 和 q 至少要有 512 位,以使 n 至少有 1024 位;而对于重要应用 , p 和 q 至少要有 1024 位,以使 n 至少有 2048 位。
另外,对 p 和 q 也有别的要求,如:p 和 q 要随机; p 和 q 的差要大;(p - 1)和 (q -1)的最大公因子要小; e 和 d 都不能太小等等。
椭圆曲线密码
椭圆曲线密码,由下面的六元组所描述:
其中 , p 为大素数 , p 确定了有限域 GF (p);
a 和 b 确定了椭圆曲线;
私钥定义为一个随机数 d,
公钥定义为 Q 点,
Q=dG
对于椭圆曲线密码,其用户的私钥 d 和公钥 Q 的生成并不困难。困难的点是其系统参数
的选取,也就是椭圆曲线的选取。
一般认为,目前椭圆曲线的参数n 和 p 的规模应大于 160 位。参数的越大,越安全,但曲线选择越困难,资源的消耗也越多。
当然,和传统密码一样,公钥密码也需要进行密钥分配。
但是,公钥密码的密钥分配与传统密码体制的密钥分配有着本质的差别。
在密钥分配时必须确保解密钥的秘密性、真实性和完整性。因为公钥是公开的,因此不需确保秘密性。
然而,却必须确保公钥的真实性和完整性,绝对不允许攻击者替换或篡改用户的公钥。
文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。
领取专属 10元无门槛券
私享最新 技术干货