??xml version="1.0" encoding="utf-8" standalone="yes"?>
q段旉在看书的时候,看到相关章节关于的安全方面的Q里面涉及到了一些加密的法Q正好我现在的项目中也用C相关的的东西Q数字签名等。今天把相关的搜集v来。以备后用?/p>
Ҏ密钥cd不同现代密码技术分Zc:对称加密法Q秘密钥匙加密)和非对称加密法Q公开密钥加密Q?/span>
对称钥匙加密pȝ是加密和解密均采用同一把秘密钥匙,而且通信双方都必获得这把钥匙,q保持钥匙的U密?/span>
非对U密钥加密系l采用的加密钥匙Q公钥)和解密钥匙(U钥Q是不同的?/span>
对称加密法用来Ҏ感数据等信息q行加密Q常用的法包括Q?/span>
DESQData Encryption StandardQ:数据加密标准Q速度较快Q适用于加密大量数据的场合?/span>
3DESQTriple DESQ:是基于DESQ对一块数据用三个不同的密钥进行三ơ加密,强度更高?/span>
AESQAdvanced Encryption StandardQ:高加密标准Q是下一代的加密法标准Q速度快,安全U别高;
2000q?0月,NISTQ美国国家标准和技术协会)宣布通过?5U侯选算法中选出的一Ҏ的密匙加密标准。Rijndael被选中成ؓ来的AES?Rijndael是在 1999 q下半年Q由研究?Joan Daemen ?Vincent Rijmen 创徏的。AES 正日益成为加密各UŞ式的电子数据的实际标准?/span>
国标准与技术研I (NIST) ?2002 q?5 ?26 日制定了新的高加密标准 (AES) 规范?/span>
AES 法Z排列和置换运。排列是Ҏ据重新进行安排,|换是将一个数据单元替换ؓ另一个。AES 使用几种不同的方法来执行排列和置换运?/span>
AES 是一个P代的、对U密钥分l的密码Q它可以使用128?92 ?256 位密钥,q且?128 位(16字节Q分l加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码q回的加密数据的位数与输入数据相同。P代加密用一个@环结构,在该循环中重复置换和替换输入数据?/span>
法名称 |
法cd |
密钥长度 |
速度 |
解密旉Q徏设机器每U尝?55个密钥) |
资源消?/span> |
AES |
对称block密码 |
128?92?56?/span> |
?/span> |
1490000亿年 |
?/span> |
3DES |
对称feistel密码 |
112位或168?/span> |
?/span> |
46亿年 |
?/span> |
常见的非对称加密法如下Q?/span>
RSAQ由 RSA 公司发明Q是一个支持变长密钥的公共密钥法Q需要加密的文g块的长度也是可变的;
DSAQDigital Signature AlgorithmQ:数字{法Q是一U标准的 DSSQ数字签名标准)Q?/span>
ECCQElliptic Curves CryptographyQ:椭圆曲线密码~码学?/span>
?976q_׃对称加密法已经不能满需要,Diffie 和Hellman发表了一叫《密码学新动向》的文章Q介l了公匙加密的概念,由Rivet、Shamir、Adelman提出了RSA法?/span>
随着分解大整数方法的q步及完善、计机速度的提高以及计机|络的发展,Z保障数据的安全,RSA的密钥需要不断增加,但是Q密钥长度的增加D了其加解密的速度大ؓ降低Q硬件实C变得来难以忍受,q对使用RSA的应用带来了很重的负担,因此需要一U新的算法来代替RSA?/span>
1985qN.Koblitz和Miller提出椭圆曲U用于密码算法,Ҏ是有限域上的椭圆曲线上的点群中的LҎ问题ECDLP。ECDLP是比因子分解问题更难的问题,它是指数U的隑ֺ?/span>
椭圆曲线上离散对数问题ECDLP定义如下Q给定素数p和椭圆曲UEQ对QQkPQ在已知PQQ 的情况下求出于p的正整数k。可以证明由k和P计算Q比较ҎQ而由Q和P计算k则比较困难?/span>
椭圆曲U中的加法运与LҎ中的模乘q算相对应,椭圆曲U中的乘法运与LҎ中的模幂q算相对应,我们可以徏立基于椭圆曲U的对应的密码体制?/span>
例如Q对应Diffie-Hellman公钥pȝQ我们可以通过如下方式在椭圆曲U上予以实现Q在E上选取生成元PQ要求由P产生的群元素_多,通信双方A和B分别选取a和bQa和b 予以保密Q但aP和bP公开QA和B间通信用的密钥为abPQ这是第三者无法得知的?/span>
对应ELGamal密码pȝ可以采用如下的方式在椭圆曲线上予以实玎ͼ
明文m嵌入到E上Pm点,选一点B∈EQ每一用户都选一整数aQ?QaQNQN为阶数已知,a保密QaB公开。欲向A送mQ可送去下面一ҎӞQkBQPm+k(aAB)Q,k是随Z生的整数。A可以从kB求得k(aAB)。通过QPm+k(aAB)- k(aAB)=Pm恢复Pm。同样对应DSAQ考虑如下{式Q?/span>
K=kG [其中 KQG为Ep(a,b)上的点,k为小于nQn是点G的阶Q的整数]
不难发现Q给定k和GQ根据加法法则,计算K很容易;但给定K和GQ求kq对困难了?/span>
q就是椭圆曲U加密算法采用的N。我们把点GUCؓ基点Qbase pointQ,kQk<nQn为基点G的阶Q称为私有密钥(privte keyQ,KUCؓ公开密钥Qpublic key)?/span>
ECC和RSA相比Q在许多斚w都有对绝对的优势Q主要体现在以下斚wQ?/span>
抗攻L强。相同的密钥长度Q其抗攻L要强很多倍?/span>
计算量小Q处理速度快。ECCȝ速度比RSA、DSA要快得多?/span>
存储I间占用。ECC的密钥尺寸和pȝ参数与RSA、DSA相比要小得多Q意味着它所占的存贮I间要小得多。这对于加密法在IC卡上的应用具有特别重要的意义?/span>
带宽要求低。当寚w消息q行加解密时Q三cd码系l有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。带宽要求低使ECC在无U网l领域具有广泛的应用前景?/span>
ECC的这些特点它必取代RSAQ成为通用的公钥加密算法。比如SET协议的制定者已把它作ؓ下一代SET协议中缺省的公钥密码法?/span>
下面两张表示是RSA和ECC的安全性和速度的比较?/span>
ȝ旉(MIPSq? |
RSA/DSA(密钥长度) |
ECC密钥长度 |
RSA/ECC密钥长度?/span> |
104 |
512 |
106 |
5Q? |
108 |
768 |
132 |
6Q? |
1011 |
1024 |
160 |
7Q? |
1020 |
2048 |
210 |
10Q? |
1078 |
21000 |
600 |
35Q? |
RSA和ECC安全模长得比?/span>
功能 |
Security Builder 1.2 |
BSAFE 3.0 |
163位ECC(ms) |
1,023位RSA(ms) |
|
密钥对生?/span> |
3.8 |
4,708.3 |
{ |
2.1(ECNRA) |
228.4 |
3.0(ECDSA) |
||
认证 |
9.9(ECNRA) |
12.7 |
10.7(ECDSA) |
||
Diffie—Hellman密钥交换 |
7.3 |
1,654.0 |
RSA和ECC速度比较
散列是信息的提炼Q通常光度要比信息小得多Q且Z个固定长度。加密性强的散列一定是不可逆的Q这意味着通过散列l果Q无法推ZQ何部分的原始信息。Q何输入信息的变化Q哪怕仅一位,都将D散列l果的明昑֏化,q称之ؓ雪崩效应。散列还应该是防冲突的,x不出h相同散列l果的两条信息。具有这些特性的散列l果可以用于验证信息是否被修改?/span>
单向散列函数一般用于生消息摘要,密钥加密{,常见的有Q?/span>
l MD5QMessage Digest Algorithm 5Q:是RSA数据安全公司开发的一U单向散列算法?/span>
l SHAQSecure Hash AlgorithmQ:可以对Q意长度的数据q算生成一?60位的数|
?993q_安全散列法QSHAQ由国国家标准和技术协?NIST)提出Qƈ作ؓ联邦信息处理标准QFIPS PUB 180Q公布;1995q又发布了一个修订版FIPS PUB 180-1Q通常UC为SHA-1。SHA-1是基于MD4法的,q且它的设计在很大程度上是模仿MD4的。现在已成ؓ公认的最安全的散列算法之一Qƈ被广泛用?/span>
SHA-1是一U数据加密算法,该算法的思想是接收一D|文,然后以一U不可逆的方式它转换成一D(通常更小Q密文,也可以简单的理解为取一串输入码Q称为预映射或信息)Qƈ把它们{化ؓ长度较短、位数固定的输出序列x列|也称Z息摘要或信息认证代码Q的q程?/span>
单向散列函数的安全性在于其产生散列值的操作q程h较强的单向性。如果在输入序列中嵌入密码,那么M人在不知道密码的情况下都不能产生正确的散列|从而保证了其安全性。SQA输入流按照每块Q1Q位Q6Q个字节Q进行分块,q生2Q个字节的被UCؓ信息认证代码或信息摘要的输出?/span>
该算法输入报文的最大长度不过264位,产生的输出是一?60位的报文摘要。输入是?12 位的分组q行处理的。SHA-1是不可逆的、防冲突Qƈh良好的雪崩效应?/span>
通过散列法可实现数字签名实玎ͼ数字{的原理是要传送的明文通过一U函数运(HashQ{换成报文摘要Q不同的明文对应不同的报文摘要)Q报文摘要加密后与明文一起传送给接受方,接受方将接受的明文生新的报文摘要与发送方的发来报文摘要解密比较,比较l果一致表C明文未被改动,如果不一致表C明文已被篡攏V?/span>
MAC (信息认证代码)是一个散列结果,其中部分输入信息是密码,只有知道q个密码的参与者才能再ơ计和验证MAC码的合法性。MAC的生参见下图?/span>
输入信息 密码 散列函数 信息认证代码
因ؓ二者均由MD4导出QSHA-1和MD5彼此很相伹{相应的Q他们的强度和其他特性也是相|但还有以下几点不同:
l 对强行供l的安全性:最显著和最重要的区别是SHA-1摘要比MD5摘要?2 位。用强行技术,产生M一个报文其摘要等于给定报摘要的难度对MD5?128数量U的操作Q而对SHA-1则是2160数量U的操作。这PSHA-1对强行攻L更大的强度?/span>
l 对密码分析的安全性:׃MD5的设计,易受密码分析的攻击,SHA-1昑־不易受这Ld?/span>
l 速度Q在相同的硬件上QSHA-1的运行速度比MD5慢?/span>
以上lD了两U加密方法的原理QM来说主要有下面几个方面的不同Q?/span>
l 在管理方面:公钥密码法只需要较的资源可以实现目的,在密钥的分配上,两者之间相差一个指数别(一个是n一个是n2Q。所以私钥密码算法不适应q域|的使用Q而且更重要的一Ҏ它不支持数字{?/span>
l 在安全方面:׃公钥密码法Z未解决的数学NQ在破解上几乎不可能。对于私钥密码算法,CAES虽说从理论来说是不可能破解的Q但从计机的发展角度来看。公钥更h优越性?/span>
l 从速度上来看:AES的Y件实现速度已经辑ֈ了每U数兆或数十兆比牏V是公钥?00倍,如果用硬件来实现的话q个比值将扩大?000倍?/span>
前面的章节已l介l了对称解密法和非对称加密法Q有很多人疑惑:那我们在实际使用的过E中I竟该用哪一U比较好呢?
我们应该Ҏ自己的用特Ҏ定Q由于非对称加密法的运行速度比对U加密算法的速度慢很多,当我们需要加密大量的数据Ӟ采用对称加密法Q提高加解密速度?/span>
对称加密法不能实现{Q因此签名只能非对称法?/span>
׃对称加密法的密钥管理是一个复杂的q程Q密钥的理直接军_着他的安全性,因此当数据量很小Ӟ我们可以考虑采用非对U加密算法?/span>
在实际的操作q程中,我们通常采用的方式是Q采用非对称加密法理对称法的密钥,然后用对U加密算法加密数据,q样我们集成了两类加密法的优点,既实C加密速度快的优点Q又实现了安全方便管理密钥的优点?/span>
如果在选定了加密算法后Q那采用多少位的密钥呢?一般来_密钥长Q运行的速度p慢,应该Ҏ的我们实际需要的安全U别来选择Q一般来_RSA采用1024位的数字QECC采用160位,AES采用128为即可?/span>
随着密码学商业应用的普及Q公钥密码学受到前所未有的重视。除传统的密码应用系l外QPKIpȝ以公钥密码技术ؓ主,提供加密、签名、认证、密钥管理、分配等功能?/span>
保密通信Q保密通信是密码学产生的动因。用公U钥密码体制q行保密通信Ӟ信息接收者只有知道对应的密钥才可以解密该信息?/span>
数字{Q数字签名技术可以代替传l的手写{Q而且从安全的角度考虑Q数字签名具有很好的防伪造功能。在政府机关、军事领域、商业领域有q泛的应用环境?/span>
U密׃nQ秘密共享技术是指将一个秘密信息利用密码技术分拆成n个称为共享因子的信息Q分发给n个成员,只有k(k≤n)个合法成员的׃n因子才可以恢复该U密信息Q其中Q何一个或m(m≤k)个成员合作都不知道该U密信息。利用秘密共享技术可以控制Q何需要多个h共同控制的秘密信息、命令等?/span>
认证功能Q在公开的信道上q行敏感信息的传输,采用{技术实现对消息的真实性、完整性进行验证,通过验证公钥证书实现寚w信M的n份验证?/span>
密钥理Q密钥是保密pȝ中更p重要的环节Q公钥密码体制是解决密钥理工作的有力工P利用公钥密码体制q行密钥协商和生,保密通信双方不需要事先共享秘密信息;利用公钥密码体制q行密钥分发、保护、密钥托、密钥恢复等?/span>
Z公钥密码体制可以实现以上通用功能以外Q还可以设计实现以下的系l:安全电子商务pȝ、电子现金系l、电子选Dpȝ、电子招投标pȝ、电子彩系l等?/span>
公钥密码体制的生是密码学由传统的政府、军事等应用领域走向商用、民用的基础Q同时互联网、电子商务的发展为密码学的发展开辟了更ؓqK的前景?/span>
随着计算Ҏ的改q,计算行速度的加快,|络的发展,来多的算法被破解?/span>
?004q国际密码学会议(Crypto’2004)上,来自中国׃大学的王云教授做的破译MD5、HAVAL-128、MD4和RIPEMD法的报告,令在场的国际尖密码学专安Z震惊Q意味着q些法从应用中淘汰。随后,SHA-1也被宣告被破解?/span>
历史上有三次对DES有媄响的d实验?997q_利用当时各国 7万台计算机,历时96天破解了DES的密钥?998q_电子边境基金会(EFFQ用25万美元制造的专用计算机,?6时破解了DES的密钥?999q_EFF?2时15分完成了破解工作。因此。曾l有q卓A献的DES也不能满x们日益增长的需求了?/span>
最q,一l研Ih员成功的把一?12位的整数分解因子Q宣告了RSA的破解?/span>
我们说数据的安全是相对的Q可以说在一定时期一定条件下是安全的Q随着g和网l的发展Q或者是另一个王云的出玎ͼ目前的常用加密算法都有可能在短时间内被破解,那时我们不得不用更长的密钥或更加先q的法Q才能保证数据的安全Q因此加密算法依焉要不断发展和完善Q提供更高的加密安全强度和运速度?/span>
U观q两U算法一个从DES?DES再到AESQ一个从RSA到ECC。其发展角度无不是从密钥的简单性,成本的低廉性,理的简易性,法的复杂性,保密的安全性以及计的快速性这几个斚w去考虑。因此,未来法的发展也必定是从q几个角度出发的Q而且在实际操作中往往把这两种法l合hQ也需来一U集两种法优点于一w的新型法会出现Q到那个时候,电子商务的实现必更加的快捷和安全?/span>