密码算法的概念及常用算法整理

    最近实在太忙,很早就整理好的东西,但是一直抽不出时间发,今天准备连续发三篇最近对密码这块内容的整理,我也是密码学的初学者,解释不到的地方欢迎指点,谢谢!接下来开始学习密码算法吧!

1、密码算法概念介绍

1.1密码体系的描述:密码体系由密码算法以及所有的明文、密文和密钥组成,是一个五元组(P,C,K,E,D):
P是明文,C是密文,K是密钥,E是加密算法,D是解密算法
1.2密码学的安全功能:机密性、鉴别性、完整性、不可抵赖性
1.3密码体制分类:加密方式大体上分为单向加密和双向加密,而双向加密又分为对称加密和非对称加密.
1.4对称加密
(1)采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密
(2)算法是一组规则,规定如何进行加密和解密。因此对称式加密本身是不安全的。
(3)常用的对称加密有:DES,3DES,AES,RC4,RC5,IDEA算法等
1.5 非对称加密
(1)非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)
(2)如果公开密钥对数据进行加密,只有对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
(3)加密和解密使用的是两个不同的密钥,使用不同的规则,只要这两种规则之间存在某种对应关系即可,这样就避免了直接传递密钥所以这种算法叫作非对称加密算法
(4)常用的非对称加密有:RSA,DH,DSA,ECC等
1.6 公钥密码体制与对称密码体制比较:
(1)密钥的分配和管理:在对称密码中,双方使用同一密钥进行加密和解密,所以密钥的分配和管理困难。密钥数量大,N个用户之间通信,需要N(N-1)/2个密钥。在公钥密码中,用户使用一堆密钥:公钥和私钥,公钥可以公开,私钥必须保密。因而,密钥的分发十分方便。密钥数量小,N个用户之间相互通信,需要N个密钥对。
(2)数字签名功能:对称密码不能提供不可否认的数字签名功能,公钥密码的一个优点是可以提供不可否认的数字签名。
(3)运算速度:公开密钥算法比对称算法慢,对称算法一般比公开密钥算法快一千倍。
(4)实际应用:公钥与单钥密码体制不可相互替代,但可以相互补充。公钥体制和单钥体制联合使用,这样可以同时得到安全和速度,这个协议被称为数字信封。公开密钥吗密码与对称密码是两种不同的体制,他们解决不同的问题,对称密码学适合加密数据;公开密码密码可以完成对称密码体系的密钥分配和其他各种密码协议。

2、常用算法简介

Triple DES
DES算法1975年3月公开发表,1977年1月15日由美国国家标准局颁布为数据加密标准(Data Encryption Standard),于1977年7月15日生效。
分组对称加密算法:明文和密文为64位分组长度,加密和解密使用同一算法。
密钥长度:56位,但每个第8位为奇偶校验位,可忽略
采用混乱和扩散的组合,每个组合先替代后置换,共16轮
只使用了标准的算术和逻辑运算,易于实现
密钥生算法的构造准则:
设计目标:子密钥的统计独立性和灵活性
实现简单,速度快
不存在简单关系:( 给定两个有某种关系的种子密钥,能预测它们轮子密钥之间的关系)
种子密钥的所有比特对每个子密钥比特的影响大致相同
从一些子密钥比特获得其他的子密钥比特在计算上是难的
没有弱密钥

IDEA
IDEA是一个分组长度为64位的分组密码算法,密钥长度为128位(抗强力攻击能力比DES强),同一算法既可加密也可解密。IDEA的“混淆”和“扩散”设计原则来自三种运算,它们易于软、硬件实现(加密速度快)
AES (Rijndael)
安全,性能好,效率高,易用和灵活等优点,Rijndael使用非线性结构的S-boxes,表现出足够的安全余地;Rijndael在无论有无反馈模式的计算环境下的硬,软件中都能显示出其非常好的性能;它的密钥产生的速度快,也具有很高的灵活性;Rijndael的非常低的内存需求也使它很适合用于受限的环境;Rijndael采用的是代替/置换网络。每一轮由三层组成,线性混合层:确保多轮之上的高度扩散;非线性层:由16个S-盒并置而成,起到混淆的作用;密钥加层:子密钥简单的异或到中间状态上。S-盒选取的是有限域GF(2)中的乘法逆运算,它的差分均匀性和线性偏差都达到了最佳。该算法是迭代分组密码算法,其分组长度和密钥长度都可改变,主要优点是:设计简单,密钥扩展快、需要的内存空间少,在所有平台上运行良好,支持并行处理,抗所有已知攻击。
HASH散列函数
Hash是一种直接产生认证码的方法
Hash函数: h=H(x), 要求可作用于任何尺寸数据且均产生定长输出
H(x)能够快速计算单向性: 给定h,找到x使h=H(x)在计算上不可行
Weak Collision Resistence(WCR):给定x,找到yx使H(x)=H(y)在计算上不可行
Strong Collision Resistence(SCR):找到yx使H(x)=H(y)在计算上不可行
Hash函数值可以看成大文件的‘数字指纹’。
著名的Hash函数有MD2、MD5、SHA和基于分组密码的构造的等。
MD4是Ron Rivest设计的单向散列函数,MD表示消息摘要(Message Digest),对输入消息算法产生128-位散列值(或消息摘要)。
SHA是NIST和NSA一道设计的安全散列算法(SHA)(安全散列标准SHS)产生160-位散列 。
具体做法:
1.把原始消息M分成一些固定长度的块Yi
2.最后一块padding并使其包含消息M的长度
3.设定初始值CV0
4.压缩函数f, CVi=f(CVi-1,Yi-1)
5.最后一个CVi为hash值
MD5算法
MD5使用little-endian生日攻击模式+64位可计算128位hash值太短,MD5不是足够安全的Dobbertin在1996年找到了两个不同的512-bit块,它们在MD5计算下产生相同的hash
输入:任意长度的消息
输出:128位消息摘要
处理:以512位输入数据块为单位
MD5步骤:
第一步:padding
1.补长到512的倍数
2.最后64位为消息长度的低64位
3.一定要补长(64+1~64+512),内容为100…0
第二步:把结果分割为512位的块:Y0,Y1,…YL-1
第三步:
1.初始化MD buffer,128位常量(4个字),进入循环迭代,共L次
2.每次:一个输入128位,另一个输入512位,结果输出128位,用于下一轮输入
第四步:最后一步的输出即为散列结果128位
SHA
1992年NIST制定了SHA(128位)
1993年SHA成为标准
1994年修改产生SHA-1(160位)
1995年SHA-1成为新的标准
SHA-1要求输入消息长度<264
SHA-1的摘要长度为160位
基础是MD4
SHA-1算法:
结构与MD5类似
第一步:pading与MD5相同,补齐到512的倍数
第二步:分块
第三步:
1.初始化MD buffer,160位常量(5个字)
2.进入循环,160输入+512输入-〉160输出
第四步:最后的输出为SHA-1的结果
SHA-1使用big-endian
抵抗生日攻击: 160位hash值
速度慢于MD5
安全性优于MD5
RIPEMD-160:
欧洲RIPE项目的结果
RIPEMD为128位
更新后成为RIPEMD-160
基础是MD5
算法:
1.输入:任意长度的消息
2.输出:长度为160位的消息摘要
3.处理:以512位数据块为单位
RSA密码体制:
RSA公钥算法是由Rivest,Shamir和Adleman在1978年提出来的
该算法的数学基础是建立在大整数分解的困难性之上。
实现的步骤如下:
(1) Bob寻找出两个大素数p和q
(2) Bob计算出n=pq 和φ(n)=(p-1)(q-1)
(3) Bob选择一个随机数e (0<e< φ(n)),满足(e,φ(n))=1
(4) Bob使用辗转相除法计算d=e-1(modφ(n))
(5) Bob在目录中公开n和e作为公钥
(6) 加密: c=me mod n;
解密: m=cd mod n。

DSA数字签名算法:

在这里插入图片描述

椭圆曲线密码:
1985年Koblitz和Miller分别独立地提出利用椭圆曲线上离散对数代替有限域上离散对数,可以构作公钥位数较小的ELGamal类公钥密码。
椭圆曲线密码体制ECC(Elliptic Curve Cryptography)是基于有限域上椭圆曲线的离散对数计算的困难性。椭圆曲线密码体制具有较RSA更高的安全强度。密钥长度160 bit的ECC算法与密钥长度1024 bit的RSA算法具有相当的安全强度。这使得椭圆曲线算法的实现比RSA算法钥快得多。
目前的椭圆曲线密码体制有两种,一种是基于GF§域上的,另一种是基于GF(2n)域上的。
椭圆曲线加密算法ECC与RSA方法相比有着很多技术优点:
  a)安全性能更高:ECC和其他几种公钥系统相比,其抗攻击性具有绝对的优势。 160位ECC与1024位RSA、DSA具有相同的安全强度,210位ECC则与2048位RSA、DSA具有相同的安全强度。
  b)计算量小和处理速度快:ECC的速度比同等安全强度的RSA、DSA要快得多。 
c)存储空间占用小:ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多。意味着它所占的存贮空间要小得多。这对于加密算法在资源受限环境上(如智能卡等)的应用具有特别重要的意义。
d)带宽要求低:当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。而公钥加密系统多用于短消息,例如用于数字签名和用于对对称系统的会话密钥传递。带宽要求低使ECC在无线网络领域具有广泛的应用前景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值