173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

加密算法实例讲解

keros@mark 2022-10-29 资讯中心

今天给各位分享加密算法实例讲解的知识,如果能碰巧解决你现在面临的问题,别忘了关注本站。

本文目录一览

des和aes 加解密算法具体步骤?有例子最好

随着计算机网络和计算机通讯技术的发展,计算机密码学得到前所未有的重视并迅速普及和发展起来。由于密码系统的各种性能主要由密码算法所决定,不同的算法决定了不同的密码体制,而不同的密码体制又有着不同的优缺点:有的密码算法高速简便,但加解密密钥相同,密钥管理困难;有的密码算法密钥管理方便安全,但计算开销大、处理速度慢。基于此,本文针对两种典型的密码算法DES和RSA的特点进行讨论分析,并提出一种以这两种密码体制为基础的混合密码系统,来实现优势互补。

1 密码系统简介

1.1 密码系统分类

密码系统从原理上可分为两大类,即单密钥系统和双密钥系统。单密钥系统又称为对称密码系统,其加密密钥和解密密钥或者相同,或者实质上相同,即易于从一个密钥得出另一个,如图1所示。双密钥系统又称为公开密钥密码系统,它有两个密钥,一个是公开的,用K1表示,谁都可以使用;另一个是私人密钥,用K2表示,只由采用此系统的人掌握。从公开的密钥推不出私人密钥,如图2所示。

1.2 两种密码系统分析

1.2.1 对称密码系统(单钥密码系统)

对称密码系统中加密和解密均采用同一把密钥,而且通信双方必须都要获得这把密钥。这就带来了一系列问题。首先,密钥本身的发送就存在着风险,如果在发送中丢失,接受方就不可能重新得到密文的内容;其次,多人通信时密钥的组合的数量会出现爆炸性的膨胀,N个人两两通信,需要N*(N-1)/2把密钥,增加了分发密钥的代价和难度;最后,由于通信双方必须事先统一密钥,才能发送保密的信息,这样,陌生人之间就无法发送密文了。

1.2.2 公开密钥密码系统(双钥密码系统)

公开密钥密码系统中,收信人生成两把数学上关联但又不同的公钥和私钥,私钥自己保存,把公钥公布出去,发信人使用收信人的公钥对通信文件进行加密,收信人收到密文后用私钥解密。公开密钥密码系统的优势在于,首先,用户可以把用于加密的钥匙公开地发给任何人,并且除了持有私有密钥的收信人之外,无人能解开密文;其次,用户可以把公开钥匙发表或刊登出来,使得陌生人之间可以互发保密的通信;最后,公开密钥密码系统提供了数字签字的公开鉴定系统,而这是对称密码系统不具备的。

1.3 典型算法

对称密码系统的算法有DES,aes,RC系列,DEA等,公开密钥密码系统的算法有RSA,Diffie-Hellman, Merkle-Hellman等。

2 DES算法

DES (Data Encryption Standard,数据加密标准)是一个分组加密算法,它以64 bit位(8 byte)为分组对数据加密,其中有8 bit奇偶校验,有效密钥长度为56 bit。64 位一组的明文从算法的一端输入,64 位的密文从另一端输出。DES算法的加密和解密用的是同一算法,它的安全性依赖于所用的密钥。DES 对64位的明文分组进行操作,通过一个初始置换,将明文分组成左半部分和右半部分,各32位长。然后进行16轮完全相同的运算,这些运算被称为函数f,在运算过程中数据与密钥结合。经过16轮后,左、右半部分合在一起经过一个末置换(初始置换的逆置换),完成算法。在每一轮中,密钥位移位,然后再从密钥的56位中选出48位。通过一个扩展置换将数据的右半部分扩展成48位,并通过一个异或操作与48位密钥结合,通过8个s盒将这48位替代成新的32位数据,再将其置换一次。这些运算构成了函数f。然后,通过另一个异或运算,函数f输出与左半部分结合,其结果即成为新的右半部分, 原来的右半部分成为新的左半部分。将该操作重复16次,实现DES的16轮运算。

3 RSA算法

RSA算法使用两个密钥,一个公共密钥,一个私有密钥。如用其中一个加密,则可用另一个解密。密钥长度从40到2048 bit可变。加密时把明文分成块,块的大小可变,但不能超过密钥的长度,RSA算法把每一块明文转化为与密钥长度相同的密文块。密钥越长,加密效果越好,但加密解密的开销也大,所以要在安全与性能之间折衷考虑,一般64位是较合适的。RSA算法利用了陷门单向函数的一种可逆模指数运算,描述如下:(1)选择两个大素数p和q;(2)计算乘积n=pq和φ(n)=(p-1)(q-1);(3)选择大于1小于φ(n)的随机整数e,使得

gcd(e,φ(n))=1;(4)计算d使得de=1modφ(n);(5)对每一个密钥k=(n,p,q,d,e),定义加密变换为Ek(x)=xemodn,解密变换为Dk(y)=ydmodn,这里x,y∈Zn;(6)以{e,n}为公开密钥,{p,q,d}为私有密钥。

4 基于DES和RSA的混合密码系统

4.1 概述

混合密码系统充分利用了公钥密码和对称密码算法的优点,克服其缺点,解决了每次传送更新密钥的问题。发送者自动生成对称密钥,用对称密钥按照DES算法加密发送的信息,将生成的密文连同用接受方的公钥按照RSA算法加密后的对称密钥一起传送出去。收信者用其密钥按照RSA算法解密被加密的密钥来得到对称密钥,并用它来按照DES算法解密密文。

4.2 具体实现步骤

(1)发信方选择对称密钥K(一般为64位,目前可以达到192位)

(2)发信方加密消息:对明文按64位分组进行操作,通过一个初始置换,将明文分组成左半部分和右半部分。然后进行16轮完全相同的运算,最后,左、右半部分合在一起经过一个末置换(初始置换的逆置换),完成算法。在每一轮中,密钥位移位,然后再从密钥的56位中选出48位。通过一个扩展置换将数据的右半部分扩展成48位,并通过一个异或操作与48位密钥结合,通过8个S盒将这48位替代成新的32位数据,再将其置换一次。然后通过另一个异或运算,输出结果与左半部分结合,其结果即成为新的右半部分,原来的右半部分成为新的左半部分。如图3所示。

(3)收信方产生两个足够大的强质数p、q,计算n=p×q和z=(p-1)×(q-1),然后再选取一个与z互素的奇数e,从这个e值找出另一个值d,使之满足e×d=1 mod (z)条件。以两组数(n,e) 和 (n,d)分别作为公钥和私钥。收信方将公钥对外公开,从而收信方可以利用收信方的公钥对 (1)中产生的对称密钥的每一位x进行加密变换Ek(x)=xemodn;

(4)发信方将步骤(2)和(3)中得到的消息的密文和对称密钥的密文一起发送给收信方;

(5)收信方用(3)中得到的私钥来对对称密钥的每一位y进行解密变换Dk(y)=ydmodn,从而得到(1)中的K;

(6)收信方用对称密钥K和DES算法的逆步骤来对消息进行解密,具体步骤和(2)中恰好相反,也是有16轮迭代。

(7)既可以由收信方保留对称密钥K来进行下一次数据通信,也可以由收信方产生新的对称密钥,从而使K作废。

4.3 两点说明

4.3.1 用公钥算法加密密钥

在混合密码系统中,公开密钥算法不用来加密消息,而用来加密密钥,这样做有两个理由:第一,公钥算法比对称算法慢,对称算法一般比公钥算法快一千倍。计算机在大约15年后运行公开密钥密码算法的速度才能比得上现在计算机运行对称密码的速度。并且,随着带宽需求的增加,比公开密钥密码处理更快的加密数据要求越来越多。第二,公开密钥密码系统对选择明文攻击是脆弱的。密码分析者只需要加密所有可能的明文,将得到的所有密文与要破解的密文比较,这样,虽然它不可能恢复解密密钥,但它能够确定当前密文所对应的明文。

4.3.2 安全性分析

如果攻击者无论得到多少密文,都没有足够的信息去恢复明文,那么该密码系统就是无条件安全的。在理论上,只有一次一密的系统才能真正实现这一点。而在本文所讨论的混合密码系统中,发信方每次可以自由选择对称密钥来加密消息,然后用公钥算法来加密对称密钥,即用户可以采用一次一密的方式来进行数据通信,达到上述的无条件安全。

5 小结

基于DES和RSA的混合密码系统结合了公钥密码体制易于密钥分配的特点和对称密码体制易于计算、速度快的特点,为信息的安全传输提供了良好的、快捷的途径,使数据传输的密文被破解的几率大大降低,从而对数据传输的安全性形成更有力的保障,并且发信方和收信方对密钥的操作自由度得到了很大的发挥。

简述aes算法的加密过程

aes加密过程涉及到 4 种操作,分别是字节替代、行移位、列混淆和轮密钥加。

1.字节替换:字节代替的主要功能是通过S盒完成一个字节到另外一个字节的映射。

2.行移位:行移位的功能是实现一个4x4矩阵内部字节之间的置换。

4.轮密钥加:加密过程中,每轮的输入与轮密钥异或一次(当前分组和扩展密钥的一部分进行按位异或);因为二进制数连续异或一个数结果是不变的,所以在解密时再异或上该轮的密钥即可恢复输入。

5.密钥扩展:其复杂性是确保算法安全性的重要部分。当分组长度和密钥长度都是128位时,aes的加密算法共迭代10轮,需要10个子密钥。aes的密钥扩展的目的是将输入的128位密钥扩展成11个128位的子密钥。aes的密钥扩展算法是以字为一个基本单位(一个字为4个字节),刚好是密钥矩阵的一列。因此4个字(128位)密钥需要扩展成11个子密钥,共44个字。

数字加密方法

数字加密方法:将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将第1位和第3位上的数字互换,第2位和第4位上的数字互换,组成加密后的新数。

数据加密算法是一种对称加密算法,是使用最广泛的密钥系统,特别是在保护金融数据的安全中;密码算法是加密算法和解密算法的统称,它是密码体制的核心,密码算法可以看成一些交换的组合,当输入为明文时,经过这些变换,输出就为密文,此过程为加密算法。

数字加密注意事项:

通过TCP三次握手进行连接,然后客户端发送hello包到服务端,服务端回应一个hello包,如果客户端需要再次发送数字证书, 则发送数字证书到客户端。

客户端得到服务器的证书后通过CA服务验证真伪、验证证书的主体与访问的主体是否一致,验证证书是否在吊销证书列表中。如果全部通过验证则与服务器端进行加密算法的协商。

用证书中服务器的公钥加密对称秘钥发送给服务器端,对称秘钥只能用服务器的私钥进行解密,当服务器通过私钥解密对称秘钥后。使用对称秘钥将客户端请求的数据发送到客户端,客户端在用对称秘钥进行解密,从而得到想要的数据。

aes加密的详细过程是怎么样的?

详细过程如下图:

aes加密标准又称为高级加密标准Rijndael加密法,是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准。aes的基本要求是,采用对称分组密码体制,密钥长度可以为128、192或256位,分组长度128位,算法应易在各种硬件和软件上实现。

1998年NIST开始aes第一轮分析、测试和征集,共产生了15个候选算法。

1999年3月完成了第二轮aes2的分析、测试。2000年10月2日美国政府正式宣布选中比利时密码学家Joan Daemen和Vincent Rijmen提出的一种密码算法Rijndael作为aes的加密算法。

aes加密数据块和密钥长度可以是128b、192b、256b中的任意一个。aes加密有很多轮的重复和变换。

随着社会的发展,产品的更新速度也是越来越快,算法是方案的核心,保护开发者和消费者的权益刻不容缓,那么加密芯片在其中就扮演了重要的角色,如何选择加密芯片呢?
1.市面上加密芯片种类繁多,算法多种,加密芯片强度参差不齐,加密性能与算法、秘钥密切相关。常见的加密算法有对称算法,非对称算法,国密算法,大部分都是基于I2C、SPI或1-wire协议进行通信。加密芯片还是需要项目实际需求选择,比如对称加密算法的特点是计算量小、加密速度快、加密效率高等。
2.因为单片机软加密性能较弱且非常容易被复制,所以有了加密芯片的产生,大大增加了破解难度和生产成本。目前加密芯片广泛应用于车载电子、消费电子、美容医疗、工业控制、AI智能等行业。
3.韩国KEROS加密芯片专注加密领域十多年,高安全性、低成本,在加密保护领域受到了众多客户的高度赞扬及认可。KEROS采用先进的内置aes256安全引擎和加密功能,通过真动态数据交互并为系统中敏感信息的存储提供了安全的场所,有了它的保护电路,即使受到攻击,这些信息也可以保持安全。其封装SOP8,SOT23-6,TDFN-6集成I2C与1-wire协议满足不同应用需求。CK02AT、CK22AT、CK02AP、CK22AP支持1.8V-3.6V,256bit位秘钥长度,5bytes SN序列号,支持定制化免烧录,加密行业首选。关于加密算法实例讲解的介绍到此就结束了,感谢大家耐心阅读。

本文标签:加密算法实例讲解

产品列表
产品封装
友情链接