所有文章 > 正文

在打开区块链大门之前,我们需要一把密码学的钥匙

作者: 学术君

时间: 2019-01-04 12:10

早在人类文明初期,密码学就已经开始发展。
早在人类文明初期,密码学就已经开始发展。早期密码学将通俗易懂的明文转换成为普通听众无法理解的密文,并设计特殊规则让合法听众将密文还原为明文。早期简单密码的设计体现在实现方式上,即通过替换、换位方式进行密码变化,如古罗马Caeser密码、法国Vigenere密码。


用来加密解密的Vigenere表格


伴随着信息通信即计算机技术的飞跃式进步,密码学在实现效率和实现方式上均实现了前所未有的系统发展。

当前,中国国家密码局认定的国产商用密码算法包括SM1、SM2、SM3及SM4。

四种国密算法满足多种密码应用的安全需求,为建设行业网络安全环境提供技术基础。目前,密码学广泛应用于网络信息加解密、身份认证、数字签名,以及关于完整性、安全电子交易(Security Electronic Transaction, SET)等的安全通信标准和网络协议安全性标准中。

公钥密码体制

密码体制分为对称密码体制和非对称密码体制


密码体制的基本模型

对称密码体制

消息发送者从密钥源得到密钥,通过加密算法对消息进行加密得到密文;接收者收到密文后,利用从密钥源得到的密钥,通过解密算法对密文进行解密,得到原始消息。

在对称密码体制中,解密算法是加密算法的逆算法。也就是说,加解密过程使用的密钥具有唯一性,解密方必须事先知道加密密钥。这使得对称加密体制具有算法公开、加密速度快、加密效率高的优势。另外,随着加密用户增加,密钥数量呈几何级数增长,密钥管理成本高,对称密码体制在分布式网络的应用受到阻碍。

目前,广泛应用的对称密码体制有DES、3DES、国际数据加密算法(International Data Encryption Algorithm, IDEA)、高级数据加密标准(Advanced Encryption Standard, AES)和国内的SM1、SM4等。


对称密码体制加密流程


非对称密码体制

在非对称密码体制中,公钥和私钥的配对使用是明文加解密的关键。公钥用于加密明文,私钥用于解密密文。若发信方(加密者)想发送只有收信方(解密者)才允许解读的信息,发信方必须首先知道收信方公钥,并利用此公钥加密;该份密文用且仅能用收信方的私钥解密。

由此可见,非对称密码体制拥有两个秘钥,且由公钥推出私钥在计算上是极为困难的,这也极大提高了数据加密安全性。公钥密码体制的建立,对密码学具有革命性的意义。

目前,广泛应用的非对称密码体制有RSA、椭圆曲线密码(Elliptic Curve Cryptography, ECC)等。


公钥加密流程

正逐渐发展的数字签名便应用了公钥密码体制,公钥加密系统的加入,保证了数字签名的不可伪造性和不可抵赖性。数字签名跟手写签名的作用实质上是一样的,用来证明某个消息或者文件是本人发出/认同的。我国在2005年就已经施行《电子签名法》,确立了电子签名(包括但不限于数字签名)的法律效力。

常见的签名算法有RSA,DSA,ECDSA,其中RSA是实现数字签名最简单的公钥加密算法。RSA既可以用公钥加密然后私钥解密,也可以用私钥加密然后公钥解密,这是它的对称性。因为RSA中的每一个公钥都有唯一的私钥与之对应,任一公钥只能解开对应私钥加密的内容。

哈希算法


哈希函数(Hash Function),也称散列函数,是一种在有限合理的时间内,将任意长度消息压缩为固定长度的消息摘要的函数。哈希算法就是在哈希函数基础上构造的、用于实现数据完整性和实体认证的算法。哈希函数的表示形式为:

  h=H(m)      

其中,h为固定长度的哈希值,m为任意长度消息,H为哈希函数。


在我国,由密码学学者王小云和国内其他专家设计的哈希函数算法标准SM3于2010年12月17日发布,已被广泛应用于数字签名及验证、消息验证码生成及验证、随机数生成,为超过6亿智能电网用户和上亿银行卡提供保护。

下述四种算法均包含两个处理阶段:预处理(Preprocessing)和哈希计算(Hash Computation)


预处理进行消息填充、分割已填充消息、设置哈希计算初始化值等工作。

哈希计算则利用预处理消息迭代生成一系列连续哈希值,即消息摘要(Message Digest)。

哈希函数具有如下特性:

  • 正向快速:给定明文和Hash算法,在有限时间和有限资源内能计算出Hash值;
  • 逆向困难:给定若干Hash值,在有限时间内很难(基本不可能)推出明文;
  • 输入敏感:一旦原始输入信息做出一点修改,产生的Hash值应有很大不同;
  • 冲突避免:很难找到两段内容不同的明文,使得它们的Hash值一致(发生冲突)。

密码学国际研究现状

密码学作为区块链重要理论基础,具有一个完备而复杂的知识体系,涵盖了庞大的知识图谱,这些学科的发展支撑了现代密码学研究的爆发式增长。数论、线性代数、信息论、通信、近世代数为密码学的发展奠定了基础。

其中,zero knowledge(零知识)从上世纪八十年代后期就受到了学者高度关注,且在30年内话题热度不减。从新世纪开始,public key(公钥)、key distribution(密钥分配)的发展势头日趋强劲,这与比特币的兴起和区块链的落地有着密不可分的关联。

由上文所述,公钥体系的建立对密码学具有革命性的意义,是现代密码学投向应用的重要里程碑。同时,我们也能够清晰地看到,在传统热点之下也有许多具有潜力的研究方向逐渐浮出水面,受到各国学者越来越多的关注。可见在密码学蓬勃发展的今天,热点变换之快超出人们的预想。


二维码 扫码微信阅读
推荐阅读 更多