密码算法简介


title: 密码算法简介
tags: [密码算法]
date: 2017-06-15 21:59:17

categories: 密码学

想来研究密码学也有一段时间了,但是对于不同密码算法加解密的整个流程还是不太清楚,实在是汗颜。查找资料了解巩固后,遂作此文以警之,希望不要忘初心,舍本逐末。

密码算法的分类

对称密码体制

顾名思义,这种算法采用相同的密钥来进行加密和解密操作。对称加密体制的加密效率比较高,但是也存在一些缺点。第一个缺点是密钥的分发,它需要一个安全的信道来分发密钥,安全信道的含义是既能保持密钥的完整传输,也能保证分发的密钥不会被第三方获取。

非对称密码体制

亦称之为公开公钥密码体制,这种加密算法的加密和解密需要用到一对密钥——公钥私钥。非对称密码体制的加密效率比较低。但是非对称密码体制不需要一个安全的信道——只需要保证传输数据的完整性。

常见的加密算法的分类

常见的对称加密算法

DES,3DES,AES,RC2,RC4,RC5

非对称加密算法

RSA,ECC椭圆曲线加密算法Elgamal背包算法等。本文只探究RSA和ECC椭圆加密算法。非对称加密算法的安全性都建立在一个目前难解的数学难题上。

非对称加密算法的工作原理(A和B之间进行数据传递):
1.A和B都分别产生自己的一对公钥和私钥
2.A和B相互交换公钥,私钥自己保存
3.发送发用对方的公钥加密明文后发送给对方
4.接收方用自己的私钥解密密文获取到原文

RSA

RSA的安全性建立在大素数分解这一难题上.

RSA原理如下:

1.选择两个大素数p和q
2.计算 n = pq 和 ∅ = (p-1)(q-1)
3.选择整数e,1<e<∅,同时gcd(e,∅)=1
4.计算整数d,d满足1<d<∅并且ed=1(mod ∅)
5.公钥为(n,e),私钥为(n,d)

RSA签名方案

不管是哪种加密方案,它最终的目的是要保证信息安全完整的传输,二者缺一不可。因此对于信息完整性的检验是十分必要的。那么如何保证知道信息的完整性呢?这就要涉及到信息的签名了。对于一段信息m来说,签名者首先利用密码杂凑函数H来计算信息的摘要h=H(m),摘要值h就称之为消息m的短指纹。随后签名者会用自己的私钥将h加密为h`,最后签名者会把h`和信息m一起发送给接受者。接受者解密h`的同时也会重新计算消息m的摘要,如果上述两者一致的话就接受签名,否则就拒绝签名。

ECC椭圆曲线加密

椭圆曲线的加密主要涉及到有限循环群的应用,与之对应的难题便是椭圆曲线的离散对数问题(ECDLP)。令p是一个素数,那么p阶的素域Fp={0,1,2,...,p-1}。对于在Fp上的椭圆曲线的定义为:y^2 = x^3 + ax + b。那么曲线上的点Q(x,y)中的x,y∈Fp。同时用E(Fp)来表示曲线E上的所有点的集合。那么如果E是定义在Fp7上的椭圆曲线:y^2 = x^3 + 2x + 4,那么E上的点的集合为E(Fp7) = {∞,(0,2),(0,5),(1,0),(2,3),(2,4),(3,3),(3,4),(6,1),(6,6)};

椭圆曲线的密钥生成

令E是Fp上的椭圆曲线,P是E(Fp)上的点,那么由素数n为阶可以构建一个椭圆曲线的循环子群为{∞,P,2P,3P,...,(n-1)P}。那么(p,E,n,P)就是公开的参数,私钥d[0,n-1]之前的一个随机数,那么对应的公钥就是Q=[d]P。上面所提到的离散对数问题便是由Q来求解私钥d。需要注意的是上面Q点的计算是椭圆曲线上的点的运算而不是普通的乘法运算,同时由于群的特殊性,这就导致求解d是一个十分复杂的难题。(这些人们真是,看到这些复杂的数学运算头都大,别说破解了( • ̀ω•́ )✧)

椭圆曲线的加密方案

对于给定的明文m,首先把m表示成椭圆曲线上的一个点M,然后加上kQ进行加密,其中k是随机正整数,Q是接受者的公开密钥。发送方把密文C1=kPC2=M+kQ发送给接收方。接收方用自己的私钥d来进行计算获取dC1=d(kP)=k(dP) = kQ,进而可以恢复出明文M=C2-kQ。攻击者如果想要恢复出明文,就要计算kQ,而从公开的参数组中,Q和C1= kP的来就算kQ则是椭圆曲线的又一难题。
椭圆曲线的加解密算法如下:
ecc.png

总结

对称密码体制和非对称密码体制(公钥密码体制)是现存的主要的密码加密算法的类型。这两种体制的加密算法现在都有在使用,也各有自己的优缺点。本文主要探究了非对称加密体制中RSA和ECC加密算法,个人的知识有限,可能有一些理解偏颇或者一些错误,希望大家批评指正。

参考链接:
1

文章版权:My-World - 勿于浮沙筑高台

本文链接:http://doachieveit.cn/index.php/archives/38.html

版权声明:本文为作者原创,转载请注明文章原始出处 !

添加新评论