文中所列出的推荐算法皆已经过全世界密码学家验证和各国际标准化组织认证, 并在市场中广泛应用, 有望在未来足够长的时间内保证安全性和实现性能。
散列算法是密码学算法中非常重要的一个分支, 通过对所有数据提取指纹信息以实现数据签名、 数据完整性校验等功能。用于消息唯一性和数据完整性验证的散列函数, 其安全性依赖于函数本身的属性和对抗碰撞的抵抗, 因此散列函数的选择至关重要。
消息认证码可以确认自己受到的消息是否是发送者的本意, 是密码学的重要工具之一。
数据加解密技术是网络中最基本的安全技术, 主要是通过对网络中传输的信息进行数据加密来保障其安全性。对称加密算法中加密和解密使用相同的密钥。
非对称加密技术中加密和解密使用不同的密钥, 已知密码算法和加密密钥, 求解密密钥在计算上是不可行的。
数字签名是一种以电子形式存在于数据信息之中的, 或作为其附件或逻辑上有联系的数据, 可用于辨别数据签署人的身份, 并表名签署人对数据信息中包含的信息的认可技术。在我国, 数字签名是具法律效力的, 正在被普遍使用。数字签名能够实现鉴权, 保证数据的完整性, 以及确保消息的发送方不可抵赖。
[1] 国家密码管理局公告(第 7 号) 2006-01-19 [2] M.Bellare, New Proofs for NMAC and HMAC: Security Without CollisionResistance, Journal of Cryptology 28(4): 844-878 (2015).CRYPTREC Report 2007, 2008 年 3 月 [3] http://www.cryptrec.go.jp/report/c07_wat_final.pdf [4] https://en.bitcoin.it/wiki/Secp256k1 [5] Douglas R.Stinson. 密码学原理与实践(第三版) 电子工业出版社 2009 [6] https://en.bitcoin.it/wiki/Elliptic_Curve_Digital_Signature_Algorithm [7] Michael E.Whitman 信息安全原理(第五版) 清华大学出版社 [8] Secp256k1 https://en.bitcoin.it/wiki/Secp256k1 [9] Java ™ Cryptography Architecture Standard Algorithm Name Documentation https://docs.oracle.com/javase/7/docs/technotes/guides/security/StandardNames.html#Signature [10] RSA ECC 比较 https://blog.csdn.net/caodongfang126/article/details/83377888. [11] SM 系列国密算法 https://www.jianshu.com/p/ac68b13d087f