A51加密算法论文.doc

上传人:文库蛋蛋多 文档编号:2396422 上传时间:2023-02-17 格式:DOC 页数:59 大小:1.70MB
返回 下载 相关 举报
A51加密算法论文.doc_第1页
第1页 / 共59页
A51加密算法论文.doc_第2页
第2页 / 共59页
A51加密算法论文.doc_第3页
第3页 / 共59页
A51加密算法论文.doc_第4页
第4页 / 共59页
A51加密算法论文.doc_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《A51加密算法论文.doc》由会员分享,可在线阅读,更多相关《A51加密算法论文.doc(59页珍藏版)》请在三一办公上搜索。

1、A5/1加密算法的设计与实现Design and implementationof A5 / 1 algorithm学 院:专 业 班 级: 学 号:学 生 姓 名: 指 导 教 师: 2014 年 6 月摘 要GSM电话系统属于应用最为广泛的移动通信标准。移动网络是一种共享媒体,任何用户都可以拦截网络来获取自己想知道的媒体信息。当媒体是共享的时候,任何用户都可以在此共享媒体上收听或发送信息。从而使得通信不再是私有的。当媒体是共享的时候,隐私和身份验证都将会丢失,除非利用一些方法来恢复它们。这时,A5/1加密算法提供了相应的方法,来恢复对隐私和身份验证的控制。现阶段,针对A5/1加密算法进行了

2、可抵抗相关攻击的改进的研究。针对算法的漏洞, 提出改进的方法,来增强A5/1加密算法的安全性。由于A5/1加密算法具有硬件实现简单、抗攻击能力强等优点,所以它不仅可以应用在GSM电话系统中,也可以在应用方向上进行推广。例如,在A5/1加密算法改进的基础上,结合雷达网数据通信,实现对雷达网数据保密通信的需要。本论文中,主要是在对信息安全了解的基础上,对A5/1加密算法进行充分的研究,确切的理解算法的每一个步骤。通过程序语言对A5/1加密算法进行实现,在此基础上对算法进行改进。根据对A5/1加密算法已有的理解,对代码进行充分的测试并继续修改,从而优化了算法。基于A5/1加密算法的通信信息加密功能,

3、我将对其进行应用推广,达到实现对文件的加密,保证文件的安全性的目的。最后,为了能够方便灵活的应用A5/1加密算法,我对算法实现了界面化,使得其应用起来简单高效。关键词:GSM;移动通信;A5/1;加密AbstractGSM is most widely used cellular standard. Mobile network is the shared media, and any user of the media can intercept the network. When the media are shared, any one can listen to the media,

4、or any one can transmit on the media. Thus communication is no longer private. When media are shared, privacy and authentication are lost unless some method is established to regain it. Cryptography provides the mean to regain control over privacy and authentication.At this stage, For A5/1 encryptio

5、n algorithm, There are methods to improvement of A5/1 algorithm against correlation attack. For A5/1 encryption algorithm weakness, Proposed improved methods to enhance security of the A5/1 encryption algorithm. Because it is of easy hardware implementation and high anti-attack feature. It not only

6、can be used in GSM telephone system but also can be spread to other direction of application. For example, based upon improving the A5/1 encryption algorithm, concerning the requirement for radar network data communication, It can meet the demand of data encryption communication in radar network.In

7、this paper, mainly on the basis of understanding of information security, fullyunderstandthepointofviewofthe A5/1 encryption algorithm, understandexa-ctlyeach step of in this algorithm. Achieve the A5/1 encryption algorithm through programming language. On this basis, improvement the algorithm, acco

8、rding to understood of the A5/1 encryption algorithm. In order to optimization algorithm, fully testcode, continue to modify and improve code. Since the A5/1 encryption algorithm can not only encrypt the communication of information, promotion of its application, encryption of the files to guarantee

9、safety of files. In the end, implementation ofthe interface of the A5/1 encryption algorithm toconvenient to use. It provides an easy and high effective way to operate.Keywords: GSM; mobile communication; A5 / 1; encryption目 录摘 要IAbstractII第1章 绪论11.1 通信安全的重要性11.2 A5/1加密算法的现状11.3 本论文工作的意义21.4 本论文的主要工

10、作2第2章 A5/1加密算法32.1 通信安全模型32.2 流密码32.3 A5/1加密算法的描述42.4 A5/1加密算法密钥流的产生52.5 A5/1加密算法的线性反馈移位寄存器62.5.1 线性反馈移位寄存器62.5.2 A5/1加密算法的线性反馈移位寄存器92.5.3 基于线性反馈移位寄存器的钟控规则9第3章 A5/1加密算法实现的详细设计113.1 算法函数113.2 算法的详细设计113.2.1 模2运算113.2.2 择多原则133.2.3 LFSR的移位操作143.2.4 带钟控的LFSR操作153.2.5 密钥流的初始化173.2.6 输出位的获取203.2.7 获取密钥流2

11、13.2.8 加解密223.2.9 输出16进制形式的明密文23第4章 测试25第5章 加密文件265.1 计数器(CTR)模式265.2 加密文件的详细设计27第6章 A5/1加密算法界面化306.1 界面的功能介绍306.2 流程图306.4 界面效果图33第7章 结论36参 考 文 献37致 谢39附 录40第1章 绪论1.1 通信安全的重要性在过去,密码学是军队独家专有的领域,许多国家的安全机构将大量的财力投入到自己的通信中,同时又千方百计地去破解别人的通信。而随着密码学的飞速发展,信息化已成为人类社会发展的大趋势,而且在如今的信息社会中,各个方向的行业都与信息息息相关的。因此,应用密

12、码学去保证信息安全也变得越来越重要1。由于信息技术的发展和越来越广泛的应用,整个社会的运作也越来越密切的依赖于信息技术,依赖于各种信息系统的正常运转。例如国家的政治运动、公司的市场策略、私人的信息数据这些都是秘密的。信息安全问题,关系到国家社会的稳定,企业的兴衰。这不仅得到了政府部门、金融部门重视,而且企业事业单位和个人也越来越重视这一问题。所以,保证信息的安全是信息时代的迫切需要。如何保护信息不被窃取、篡改、破坏等已成为当今社会普遍关注的重大问题之一2。1.2 A5/1加密算法的现状GSM电话系统3是应用最为广泛的通信系统,A5/1加密算法是GSM电话系统中基本的加密算法,用来确保用户传输信

13、息的安全。对于大多数的人来说,手机安全和通话隐私已经成为日常问题。为了防止窃听者能够窃听到用户的通话,在用户通信的GSM手机里采用了一套密码系统和协议来提供身份验证和加密4。加密是在移动通讯中保护用户信息和防止欺诈行为非常重要的技术。GSM电话系统用A5流产生器去加密传送在基站与移动台之间的数字用户数据5。关于A5/1加密算法,它的基本思想是好的,效率非常高。它已知的弱点是寄存器太短不能抗穷举攻击。带有较长的寄存器和稠密反馈多项式的A5/1加密算法的变型是安全的。现在有很多关于A5/1加密算法改进的研究,一般通过对密钥流的产生进行改进。也有根据算法的弱点,研究算法的攻击方法6。这两个方向都促进

14、了A5/1算法的有效性。1.3 本论文工作的意义每个加密算法都有它的优缺点,相比较而言,对称密钥算法要比非对称密钥算法快很多,如果想实现非常高的传输速率,就必须选择对称密钥算法进行加密。A5/1算法是比较优秀的加密算法,我们的工作可以为生活实践提供一种加密工具,用来保护合法重要信息的安全性。1.4 本论文的主要工作本论文的主要工作有:1) 对通信安全的意义和实施办法有初步的了解。2) A5/1加密算法的描述进行充分的理解,精确理解算法的每一个步骤。3) 完成算法的详细设计。4) 能够用JAVA对算法进行编程工作,并尽量考虑程序的优化工作。5) 对代码进行充分的测试,给出相应的测试结果,保证算法

15、的正确性。6) 在算法模块的基础上,再对文件进行加解密。7) 对以上算法进行界面化,使得操作更加方便。第2章 A5/1加密算法2.1 通信安全模型通信安全模型7如图2-1所示,此时通信发送方通过公开信道将消息发送给接收方,我们要保证信息不被攻击者所截获、篡改等时,就涉及到信息安全的问题。首先,要对通信的发送方所发送的消息进行安全转换,如加密、签名等技术,接收方在接收时进行相关的逆变换,如解密、验证签名等。通过以上的工作,经过安全转换的信息即使在公开信道上被窃听者截取到,也不能够直接的看到信息的内容。从而保证了信息的安全。图2-1 通信安全传输模型2.2 流密码流密码8的加密方法是对字符逐位加密

16、。将图2-1中的消息加密为安全消息。它利用秘钥K来产生一个密钥流,用此秘钥流来加密明文串,从而得到相应的密文串,加密方式如公式2-1所示。 (2-1)其中,是密文串,是明文,是加密函数。与分组密码比,流密码的优点是运算速度快9。因此主要应用于对信息时效性要求较高的军事、外交、无线通信等领域。由于独立加密的特点也说明了它是无错误传播的,一个传输错误只影响一个符号,不影响后面的符号10。有以上介绍可知,流密码含有以下几种内容:a) 明文,需要进行安全转换的信息。b) 密文,经过安全转换后的信息。c) 秘钥,用来产生秘钥流的信息。d) 密钥流,参与加解密的控制信息。e) 密钥流生成器,用秘钥产生密钥

17、流的函数方法。f) 加密算法,将明文通过一种规则转换为密文的方法。此时需要密钥流。g) 解密算法,将密文通过一种规则转换为明文的方法。此时需要密钥流。2.3 A5/1加密算法的描述A5/1加密算法11是一种流密码,通过密钥流对明文加密,因此有流密码的优点。初始向量是64比特的会话密钥和22比特的帧序列号。会话秘钥在通话期间被使用,但是帧序列号在通话期间会改变。这样,会生成唯一的 228 bit 密钥流控制两个方向的信道, 每个方向的 114比特密钥流与114比特的明文/密文进行异或运算, 产生114比特密文/明文。加密过程如图2-2所示。图2-2 A5/1加密算法2.4 A5/1加密算法密钥流

18、的产生密钥流的生成12可以21分成三个阶段,第一阶段,3个移位寄存器初始全部设置为,然后在64个周期内,将每个线性反馈移位寄存器都移位64次(不带钟控),每次移位后将密钥ki( i=0, 1, 2,., 63)与每个线性反馈移位寄存器的最低位比特异或;之后,在22个时钟周期内,将每个线性反馈移位寄存器都移位22次(不带钟控),每次移位后将22比特帧序列Fi(i=0, 1, 2, ., 21)与每个线性反馈移位寄存器的最低位比特异或;记第一阶段后的内部状态为S1。第二阶段,由状态S1出发,按照钟控规则移位100个周期,与第一阶段不同的是,不进行异或操作,舍弃密钥流。记此时的内部状态为S2。第三阶

19、段:由状态S2出发,按照钟控规则对R1,R2,R3进行移位操作。R1,R2,R3的最高位异或生成228比特的密钥流,应用于加/解密明/密文流。根据2.3 A5/1加密算法的描述和2.4 A5/1加密算法密钥流的产生的内容,可以总结出如图2-3 A5/1加密算法结构图。图2-3 A5/1加密算法结构图2.5 A5/1加密算法的线性反馈移位寄存器2.5.1 线性反馈移位寄存器在流密码中,对于需要加密的一组明文,通过密钥流的控制来加密明文,密钥流的一位加密明文的一位,因此实现了一次一密。这样密钥流就决定了流密码的安全强度。在实际应用中,密钥流是一个伪随机序列(看起来是随机序列,不能够重复产生,实际上

20、只是它的序列周期足够长,长到在实际应用中能够满足在相当长的有限序列内都不是周期性的)。所以,设计一个好的密钥流生成器是至关重要的。下面,详细介绍一种流秘钥生成器-移位线性反馈移位寄存器。移位寄存器序列已经被应用于密码学和编码理论当中。自电子时代开始以来,军事密码学就已经使用基于移位寄存器的序列码。一个反馈寄存器13(feedback shift register)由移位寄存器和反馈函数组成(如图2-4所示)。其中,移位寄存器是一个位序列,位是移位寄存器长度的单位,如果是n位长,则为n-位移位寄存器。每次运算时得到一位,此时,移位寄存器中全部向左移动一位。这样最左端的位被舍去,最右端的位需要更新

21、,根据寄存器中其他位计算得到最右端的位。最后,移位寄存器输出一位,一般为bn的值。图2-4 反馈移位寄存器线性反馈移位寄存器(Linear Feedback Shift Register, LFSR)(如图2-5所示)是反馈移位寄存器的一种,反馈函数和寄存器中的某些位进行异或,这些位被称为抽头序列(tap sequence)。 图2-5 线性反馈移位寄存器下面,用4位线性反馈移位寄存器(如图2-6所示)举例说明线性反馈移位寄存器的工作原理:图2-6 4位线性反馈移位寄存器如图2-6可知,抽头位置是第一位和第四位,假设初始值是1111,在输出序列重复之前(输出序列从开始到重复前的长度称为周期),

22、能够产生的状态序列是:1111,1110,1101,1010,0101,1011,0110,1100,1001,0010,0100,1000,0001,0011,0111则输出序列为:111101011001000对于一个n-位线性反馈移位寄存器14有种内部状态(全部是零的状态除外,因为运算结果不能产生别的内部状态),即n-位线性反馈移位寄存器在重复之前,能够产生位长的伪随机序列。而线性反馈移位寄存器能够产生种内部状态是需要某种抽头序列15。为了能够有最大周期的线性反馈移位寄存器,则要求抽头序列加1后的多项式(多项式的阶是移位寄存器的长度)是本原多项式模2(一个n阶本原多项式是不可约多项式,它

23、能够整除,不能整除,d是能够整除)。假设线性反馈移位寄存器的长度是32,抽头位置是在1、2、3、5、7处(抽头从移位寄存器的左边开始计数,即抽头的阶数越低,越靠近移位寄存器的左边)。则通过(32, 7, 5, 3, 2, 1, 0)产生的多项式如公式2-2所示。 (2-2)多项式(2-8)是本原多项式模2,在重复之前,可以循环产生输出序列。2.5.2 A5/1加密算法的线性反馈移位寄存器A5/1有3个长度分别为19,22,23的线性反馈移位寄存器16R1,R2,R3。R1的抽头序列是18、17、16和13,R2的抽头序列是21和20,R3的抽头序列是22、21、20 和7。则它们的生成多项式如

24、公式2-3所示。且线性反馈移位寄存器的多项式均为本原多项式,故由R1,R2,R3产生的序列有最长周期。 (2-3)2.5.3 基于线性反馈移位寄存器的钟控规则A5/1的钟控机制采用择多逻辑17,在每一轮中时钟至少驱动2个LFSR移位。有3个钟控输入(分别为每个线性反馈移位寄存器的中间位,即R18,R210,R310)和3个钟控输出(分别控制每个线性反馈移位寄存器的停/走)。每次移位前计算R18,R210和 R310中数量多的数字。例如个比特为(0, 0, 0),则。择多逻辑真值表18如表2-1所示。表2-1 择多逻辑真值表R18R210R310majL1L2L30000111100001101

25、0010100101100111011101110111011101111111a. maj是指majority(R18, R210, R310)的结果值。b. L1,L2,L3分别表示R1,R2,R3是否移动的布尔值。R1移位当且仅当公式2-4成立时,R2移位当且仅当公式2-5成立时,R3移位当且仅当公式2-6成立时。值相等的线性反馈移位寄存器会被驱动,不相等则不被驱动。移位后R1,R2,R3的异或即得最终密钥流。 (2-4) (2-5) (2-6)带钟控规则的R1,R2,R3的操作过程19可如图2-7所示。图2-7 带钟控规则的LFSR操作图第3章 A5/1加密算法实现的详细设计3.1 算

26、法函数intparity( int p );32位模2运算intmajority();择多原则函数intclockOne( int r, int taps, int mask );单个LFSR的移位操作voidclockAll();所有LFSR的移位操作voidclockControl();带钟控的LFSR的操作状态voidsetKey();密钥流的初始化intgetOut();输出位的获取voidgetKey();获取密钥流voidrun();密钥流的产生byteencryption( byte pt );加解密函数voidprintHexText( byte pt, byte ct );输

27、出明文、密文函数3.2 算法的详细设计3.2.1 模2运算关于32位数据二进制位中1的个数是奇数还是偶数,如果是奇数,则返回1,如果是偶数,返回0。在32位中,所有0异或的结果是0,剩下的1中,两两异或为0,所以,当有偶数个1时,异或结果为0,当奇数个1时,异或结果为1。因此是32位相异或的结果。int parity( int p )p = p 16;p = p 8;p = p 4;p = p 2;p = p 1;p &= 1;return p;举例说明函数的操作方法,如图3-1所示。假设32位二进制数p为0101111110100110 1110101100101101。图 3-1 二进制模

28、2运算3.2.2 择多原则首先,来说明如何取得钟控位置的值。以R1为例,取得R18的值(0或1),通过公式3-1取得。 (3-1)其中,R1是寄存器,R1MID是钟控位置。如图3-2获取钟控位置值,以二进制图的方式进行详细的运算。图3-2获取钟控位置值由以上,同理可知R210和R310的值。由表2-1 择多逻辑真值表可知,当R18、R210和R310的和大于等于2时,择多结果值为1,否则为0。因此用和的值来判断最终的结果值,如果和大于等于2,返回结果值1;否则,返回结果值0。可用图3-3择多原则程序流程图表示。图3-3择多原则程序流程图下面是具体择多原则的实现方法。int majority()

29、int sum = ( ( R1 & R1MID ) 8 ) + ( ( R2 & R2MID ) 10 ) + ( ( R3 & R3MID ) 10 );/R18+R210+R310求和if( sum = 2 )/如果和大于2return 1;return 0;3.2.3 LFSR的移位操作首先以R1的二进制的形式详细描述具体的移位操作过程,如图3-4 R1寄存器的移位操作。先得到抽头位置的值,再通过parity(int a )来得到抽头位置异或的结果。最后,当寄存器左移一位,最低位通过抽头异或值来更新。图3-4 R1寄存器的移位操作LFSR移位操作的详细设计如下。其中r是移位寄存器,ta

30、ps是抽头序列,mask是掩码位。int clockOne( int r, int taps, int mask )int temp = r&taps;/取得抽头序列的值r = (r 8 ) )/如果钟控值等于R18R1 = clockOne( R1, R1TAPS, R1MASK );/R1进行移位操作if( temp = ( ( R2 & R2MID ) 10 ) ) /如果钟控值等于R210R2 = clockOne( R2, R2TAPS, R2MASK ); /R2进行移位操作if( temp = ( ( R3 & R3MID ) 10 ) ) /如果钟控值等于R310R3 = cl

31、ockOne( R3, R3TAPS, R3MASK ); /R3进行移位操作3.2.5 密钥流的初始化密钥流的初始化分为三部分,第一部分是64轮的会话密钥与寄存器的操作,第二部分是22轮帧序列与寄存器的操作,第三部分为带钟控的寄存器的操作。流程图如图3-6所示。图3-6密钥流初始化流程图第一部分中,首先是64个周期的寄存器和秘钥之间的运算。秘钥是64比特位,在64周期中,每一周期需要一比特位的秘钥。密钥存储在byte数组中,如图3-7所示。要获得位秘钥,要取得相应byte数组中的某一个数据,并进行移位得到。byte型变量占一个字节,8位。所以,每8个周期从数组中取一个byte型秘钥。通过ke

32、yi/8取余的方式获得分秘钥(i代表第i周期)。然后将获取的分秘钥通过右移与1的方法即可获得位秘钥。图3-7中第一行数字表示要想获得相应位的值所需要向右移动的移数,即移位数字。第二行是对应的第几周期。我们通过周期数字对8取余来得到移位数字。能够获得相同结果的二进制计算是周期数字与7进行与运算。图中以8和9来举例说明。图3-7获取位秘钥的方法第一部分中秘钥流产生中的移位寄存器操作在3.2.3中已经介绍。 第二部分中,在22周期中,每次取一位帧号。由于帧号存储在一个int型变量中,相对应位秘钥的获取,位帧号的获取变得简单许多。需要第几位帧号即向右移动几位并和1进行与运算即可。移位寄存器的操作不再赘

33、述。第三部分中,只含有带钟控的移位寄存器的操作,此操作在3.2.4中已经介绍。下面是秘钥流产生的详细设计。void setKey()int i = 0;int keyBit = 0;/位秘钥int frameBit = 0;/位帧号for( ; i (i&7) ) & 1;/获取位秘钥clockAll();/寄存器移位操作/寄存器进行计数R1 = keyBit;R2 = keyBit;R3 = keyBit;for( i = 0; i i ) & 1;/获取位帧号clockAll();/寄存器移位操作/寄存器进行计数R1 = frameBit;R2 = frameBit;R3 = frameB

34、it;for( i = 0; i 100; i + )/寄存器的100次周期循环clockControl();/带钟控的寄存器移位操作3.2.6 输出位的获取密钥流中的每一位是由R1、R2和R3三个寄存器最高位相异或的结果。通过与运算和parity(int p)方法获取最高位的值,再进行异或。对此方法举例说明,如图3-8所示。图3-8输出位的获取详细设计如下。int getOut()int temp = parity( R1&R1OUT ) parity( R2&R2OUT ) parity( R3&R3OUT );return temp;3.2.7 获取密钥流密钥流共228位,分为两部分存储

35、到byte数组中。通过带钟控的移位寄存器操作后获得输出位。输出位从最高位存到最低位。输出位通过左移移动到高位。移动的位数由周期得到,这与3.2.5中获取位秘钥相似。下面是获取密钥流的详细设计。void getKey()int i = 0;for( i = 0; i 114; i + )clockControl();keyStreamAi/8 |= (byte)( getOut()( 7 - ( i&7 ) ) ) ;/字节从最高位存for( i = 0; i 114; i + )clockControl();keyStreamBi/8 |= (byte)( getOut()( 7 - ( i&

36、7 ) ) );3.2.8 加解密如图3-9所示,加密和解密使用同样的方法,明/密文与密钥流进行异或操作后,返回字节数组形式的密/明文。图3-9加解密流程图详细设计如下。byte encryption( byte pt )int i = 0;int len = pt.length;/数组长度=15byte cipherText = new bytelen;/密文 for( i=0; i len; i + ) cipherTexti = (byte)( ptikeyStreamAi ); return cipherText;3.2.9 输出16进制形式的明密文为了能够清晰的了解到加解密前后的明密

37、文,使用16进制的形式输出明密文。void printHexText( byte pt )System.out.println( 加/解密前的明/密文: );for( int i=0; i pt.length; i + ) System.out.print( Integer.toHexString( pti & 0xFF )+ , ); byte ct = encryption( pt ); System.out.println( n加/解密后的密/明文: ); for( int i=0; i ct.length; i + ) System.out.print( Integer.toHexSt

38、ring( cti & 0xFF )+ , ); System.out.println( n );第4章 测试测试时20,需要有会话密钥、帧序列号、明/密文,从而输出密/明文。为了获得有效地测试结果,通过控制变量的方法,对其进行测试产生工作秘钥的唯一性和算法的有效性21。即相同的会话密钥、帧序列号,对于不同的明文产生不同的密文;相同的会话密钥、明文,对于不同的帧序列号,将产生不同的密文;相同的帧序列号和明文,对于不同的会话秘钥将产生不同的密文。解密的验证,只需将加密后的密文再进行解密,解密后的明文与原始的明文对比是否相同。测试数据如表4-1所示。表4-1 测试数据会话秘钥帧序列号明文密文6B6

39、579776F72647330397A68656E64656F6D650234EFA352A6A6B6579776F726473303965697435392433697A0325B4F674766E6B6579776F726473303971342E2672705B326E5E7FA7BD201E356B6579776F7264733039776F6E646572667568053FE5AA2223726B6579776F7264733039656E6417E3065697A0435A0B160206E574F4E464552465526944153444647484A4BBA56A32EE

40、2DA8500574F4E46455246559294153444647484A4BBF366A7551056598574F4E464552465522194153444647484A4BAA176497F25F7048574F4E46455246557D44153444647484A4B094017B4572B1051574F4E4645524655BD24153444647484A4BEB1A5C57B850B6423F2E4077657239697DE6E6968616F6D6162223270F597B521D74241495A554F49557DE6E6968616F6D616215

41、9FDDB450CFE143574F333924304C3E7DE6E6968616F6D6162AF96A631A1FF27E677616977656E7A617DE6E6968616F6D6162F708246CAA2182DA53494525334F3B457DE6E6968616F6D6162BC9A4D2C8195EDB4第5章 加密文件5.1 计数器(CTR)模式计数器模式22是分组密码的工作模式中的一种,首先,将明文分组,每组明文长度相等,然后对每一组进行独立的加密。加密时需要秘钥和计数器对明文加密,加密如图5-1所示。解密时需要相应的秘钥和计数器对密文解密,解密如图5-2所示。

42、图5-1 CTR加密图5-2 CTR解密计数器模式的优点是高效的,由于每组数据不依赖于前面的数据,所以是独立处理的,可以并行实现;加密算法的执行不需要明密文的参与计算。当给出明密文时,只需进行异或操作。这样的加密模式也防止了错误的传播,一个分组单元的损坏只影响对应的单元。由于计数器的关系,对于相同的明文能够加密成不同的密文,因此隐藏了明文的模式信息,这样对与通过语言的频率特征进行攻击变得不可行。5.2 加密文件的详细设计以秘钥为“keywords”,帧号为0x6935对文件A5_1.java进行加密并保存在cipherA5_1.java中。通过文件输入流读取A5_1.java的内容,以byte数组形式得到。通过文件输出流将加密后的内容保存到cipherA5_1.java中。同时对可能产生的异常进行捕捉21。如图5-3所示。图5-3加密文件流

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号