加密存储算法和模式研究

加密存储算法和模式研究
加密存储算法和模式研究

加密存储算法和模加密存储算法和模式研究式研究

梁 敏1,常朝稳1,樊雪竹2

(1. 解放军信息工程大学电子技术学院,郑州 450004;2. 解放军61655部队,重庆 402764)

摘 要:为提高全盘加密系统的性能,研究现有的磁盘加密算法和模式,测试不同加密算法和模式组合的性能。介绍加密存储的主要方式,对现有磁盘加密算法和模式进行分析,将不同加密算法和模式结合进行性能测试与分析,针对全盘加密系统给出相应的建议,为加密存储设计者提供参考和依据。

关键词关键词::存储安全;加密存储;全盘加密;加密算法;加密模式

Research of Encryption Storage Algorithms and Modes

LIANG Min 1, CHANG Chao-wen 1, FAN Xue-zhu 2

(1. School of Electronic Technology, PLA Information Engineering University, Zhengzhou 450004, China;

2. PLA 61655 Army, Chongqing 402764, China)

【Abstract 】In order to improve the performance of the full disk encryption system, this paper studies and analyzes the existing disk encryption algorithms and modes, and tests the performance of different combinations of encryption algorithms and modes. The ways of encryption storage are introduced. The existing encryption algorithms and modes are analyzed. The performances of encryption algorithms and modes are tested and analyzed. A suggestion is proposed for full disk encryption. Result provides referential basis for designers of encryption storage. 【Key words 】storage security; encryption storage; full disk encryption; encryption algorithm; encryption mode DOI: 10.3969/j.issn.1000-3428.2011.13.032

计 算 机 工 程 Computer Engineering 第37卷 第13期

V ol.37 No.13 2011年7月

July 2011

·安全技术安全技术·· 文章编号文章编号::1000—3428(2011)13—0101—03 文献标识码文献标识码::A

中图分类号中图分类号::TP309.2

1 概述

数据的安全存储已经成为计算机安全领域中的主要问题

之一。因磁盘被盗、丢失或者未授权的访问和使用而造成的信息大量泄漏已经给国家、企业和个人带来了巨大的损失。2009年,美国弗罗里达州的一家海军医院发现存有近千份军人个人信息的笔记本电脑丢失。同年,美国国民警卫队宣布存有13万个人信息的笔记本电脑被盗。全球几乎每个月都有政府、组织或者企业发生存有敏感信息的存储设备丢失或者被盗事件。最近的一个调查显示,2/3的IT 行业专家工作使用的移动存储设备没有经过加密保护。另外,内部人员的非法访问或者窃取信息也时有发生。除了防止存储设备的丢失或者被盗,使用加密方法保证存储设备的安全是一种常用并且有效的方式。按实现的层次不同,现有的基于软件的加密存储方法可以分为:应用层加密,操作系统内核层加密和全磁盘加密(FDE)。在广泛部署存储加密软件之前,必须解决一些关键的问题,如选择合适的加密模式、加密算法和密钥管理方式。为解决这些问题,美国电气及电子工程师学会(IEEE)已经提出了一个新的标准P1619TM /D16。

加密算法和加密模式对加密存储的安全和性能有着重要的影响。本文介绍了AES 、Twofish 和RC6 3种加密算法和LRW 、XTS 和CBC+Elephant diffuser 3种加密模式,并基于全盘加密系统对算法和模式的组合进行了性能分析。

2 加密存储

基于软件的加密存储方法大体上可以分为3类:应用层加密,操作系统内核层加密和全磁盘加密。应用层加密是一种最简单的文档加密形式,如PGP 公司的邮件加密软件。由用户指定需要加密的单个文档和指定加密后的目标文件名,程序全部在应用层实现。当一个文档需要加密存放时,选择

加密操作,存为密文文档。需要读取的时候,需要先解密成明文文档。这个方法的优点是实现起来比较容易,可以针对单个文档选择加密处理。缺点是需要用户干预较多,操作不便,不利于大量文件的加密处理,而且安全性较差。

为了解决应用层加密用户操作步骤繁琐、安全性差等问题,人们提出了内核层加密。所谓内核层加密,就是在操作系统内核中实现对数据的加/解密操作。根据实现方式的不同又分为:过滤驱动加密和虚拟磁盘加密。过滤驱动加密是在I/O 管理器与文件系统之间插入一个文件过滤加密驱动程序,这样就可以对指定的文件或文件夹进行加密和解密,从而达到安全存储的目的。虚拟磁盘文件加密系统的基本设计思想是:在原有系统的文件系统和磁盘驱动程序之间,加入一层虚拟磁盘驱动程序,虚拟磁盘驱动程序将本地磁盘上的一块存储区映射为虚拟磁盘分区,用户需要加密存储的数据文件都通过虚拟磁盘分区进行存储,在虚拟磁盘驱动程序中动态地对存储到磁盘上的文件进行加密。操作系统内核层加密可以有效地避免用户态加密存在的各种不足,方便控制文件的操作粒度,相对提高了安全性,同时加解密操作对用户透明。但它也有一些局限性,如不能对系统文件、页文件和临时文件加密,在诸如断电或出现应用故障的情况下,这些文件可能被漏掉,导致敏感数据文件以明文形式存储在硬盘上。

与前2种方法相比,全磁盘加密是最安全可靠的方法,几乎对写入磁盘的所有数据都进行加密处理,包括操作系统文件和页文件,提供了最全面的加密保护措施,给攻击者设

基金项目基金项目::国家“863”计划基金资助项目(2007AA01Z479) 作者简介作者简介::梁 敏(1986-),男,硕士研究生,主研方向:安全存储;常朝稳,教授;樊雪竹,助理工程师

收稿日期收稿日期::2011-01-06 E-mail :lm7186345@https://www.360docs.net/doc/6f16769810.html,

102 计算机工程2011年7月5日

置了无法越过的安全防护隔离墙[1],主要的产品有Windows Bitlocker、CheckPoint和PGP Whole Disk Encryption。由于操作系统在启动之前也是以密文形式存储在磁盘中,因此非法用户在没有密钥的情况下是无法启动系统的,甚至用类似Windows PE盘的工具都无法读取磁盘上的任何信息。有效解决了操作系统内核层加密的安全问题,保证了页文件、休眠文件和临时文件的安全性。

然而,全盘加密的安全性还依赖于加密算法和加密模式的正确选择。下面说明全盘加密在算法和模式方面的需求:

(1)明文和密文的存储空间是一样大的,不能因为加密操作而增加数据的存储空间。例如明文是1 MB大小,那么加密后的密文也需要是1 MB。

(2)加密算法和模式是经过广泛验证相对安全的。

(3)密钥的管理要相对容易可行。

(4)加/解密操作的速度比较快,能够被用户所接受。

(5)加密操作的并行性可以有效提高性能,并且由于多核处理器的快速发展,硬件费用降低,故加密模式应该对并行性有较好的支持。

3 加密算法和加密模式

3.1 加密算法

本文选取了3种加密算法与LRW、XTS和CBC+Elephant diffuser模式进行组合。3种加密算法都是对称密码算法,分别是:AES,Twofish和RC6。选择其原因是,3种算法均为AES的最后3种候选算法,性能相对较好,适用于全盘加密,并且都支持128 bit分组加密,适于测试XTS模式。

3.1.1 AES算法

高级加密标准AES由Rijndael提出,支持128 bit分组加密,密钥长度可以是128 bit、192 bit和256 bit。AES已经在IEEE标准P1619中与XTS模式一起使用产生了AES- XTS[2]。AES的安全性已经得到了广泛的验证,是相对比较安全的密码算法。

3.1.2 Twofish算法

Twofish是由著名密码学专家Bruce Schneier提出的另一个快速分组密码算法,采用128 bit分组加密,支持128 bit、192 bit和256 bit密钥长度。该算法是在Blowfish算法的基础上,采用16回合Feistel network,使用了一个双射F函数。Twofish使用与DES一样的Feistel结构,并吸收了SAFER 系列密码算法的特点。在安全性方面,Twofish没有被现在已知的密码分析方法破解,仍然保持了较强的安全级别。Twofish是非专利密码算法,已经在许多产品中实现,并且研究表明其适用于磁盘加密。

3.1.3 RC6算法

作为AES的候选算法,RC6是在RC5的基础上改进的,设计十分简单,运算速度快,使用灵活,其目的是为了更好地符合AES的要求。该算法的简单性反映在其非常易于软硬件实现。RC6同样是128 bit分组加密算法,可用采用128 bit、192 bit和256 bit密钥,通过修改参数可以支持更为广泛的分组长度和密钥长度。在AES的测试平台上,RC6与其他候选算法相比是速度最快的一个。最近几年,RC6已经变为RSA 公司的专利算法。

3.2 加密

加密模式

模式

按照加密块的大小,磁盘加密模式分为窄块和宽块模式。窄块模式(narrow block mode)指分组长度小于扇区大小的分组,常用的有ECB、CBC和CFB等;宽块模式(wide block mode)指分组长度等于扇区大小的分组,常用的有EME、XCB 和ABL4等[3]。本文选择3个著名的加密模式进行测试,分别是:LRW,XTS和CBC+Elephant diffuser,其中,LRW和XTS属于窄块加密模式;而微软的CBC+Elephant diffuser是宽块加密模式。

对文中用到的符号进行说明:

P:待加密明文。

C:加密后输出的密文。

X:加密过程产生的中间量。

EKey:加密密钥。

TKey:扰乱密钥。

SID:扇区编号。

GetTweak (TKey, SID):SID加密函数。

T:扰乱因子。

ExKey:扩展密钥。

Expand-Key (EKey):加密密钥扩展函数。

⊕:异或。

?:定义域上的乘法。

α:伽罗瓦域运算的基本元素。

Encrypt (ExKey, P):加密算法。

3.2.1 LRW模式

LRW采用可调密码模式(tweakable block cipher mode),曾经是IEEE P1619窄块加密标准候选算法中最有希望的,其工作流程如下:

Encrypt-LRW(P, EKey, TKey, SID)

ExKey = Expand-Key(EKey)

T = TKey

for i=0 to n

T = T?SID

P i = P i⊕T

C i =Encrypt(ExKey, P i )

C i = C i⊕T

SID =SID+1

end for

return C

由于使用非链式结构,因此它可以有效支持并行操作。LRW的输入部分不仅有明文和密钥,还有第3个输入,叫做扰乱因子。其作用非常类似于CBC模式中的初始向量,但它具有易变性的特点。根据文献[4]中的定义,可调分组密码应该具有可改变扰乱因子的性质,这样要比更换密钥更有效率。

3.2.2 XTS模式

XTS是基于XEX的密文窃取(Ciphertext Stealing, CTS)可调加密模式,被认为是当前最适合于磁盘加密的窄块加密模式,已经被IEEE P1619标准所采用。XTS加密流程如下:Encrypt-XTS(P, EKey, TKey, SID)

T=GetTweak(TKey,SID)

ExKey=Expand-Key(EKey)

for i=0 to n

X=T?αi

P i = P i⊕X

C i=Encrypt(ExKey,P i)

C i=C i⊕X

end for

return C

明文在加密前后都与扰乱因子进行了异或操作,CTS使得输出的密文和输入的明文大小相同,这对于加密存储至关

第37卷第13期103

梁敏,常朝稳,樊雪竹:加密存储算法和模式研究

重要。XTS作为一种可调分组密码模式,支持的数据分组大

小至少为128 bit。密钥由数据加密密钥和扰乱因子组成。扰

乱因子将数据块在磁盘中的逻辑位置与分组相结合,使得

XTS可以有效抵抗复制粘贴攻击。在实现时,各分组之间可

以并行运算,能处理任意长度的数据。

3.2.3 CBC+Elephant diffuser模式

此种模式是由微软专门为Windows Vista Bitlocker而研

发的磁盘加密模式,其加密流程如图1所示,它采用了宽块

加密模式,加密粒度是一个扇区。微软已经证明了使用

diffuser后的CBC模式比原来的CBC更难攻击,其安全性得

到明显提高。加密粒度越大,攻击者需要的初始信息也就越

多,因此微软希望使用宽块加密模式提高磁盘加密的安全性。

微软在CBC模式的基础上设计了CBC+Elephant diffuser模

式,通过diffuser算法来确保在明文中的很小改动也将导致

整个扇区密文的变化,从而弥补窄宽加密模式在数据完整性

上的不足。此外,已经有研究表明,CBC+Elephant diffuser

模式随机特性很好,甚至优于窄块加密模式[5]。

大文件组加密

小文件组加密

加密算法和模式

图2 大、小文件组加密性能比较

5 结束语

本文对磁盘加密的算法和模式进行了性能上的评估,实验结果说明,RC6是进行测试的3种算法中最快的,窄块加密模式(LRW和XTS)更适用于加密数据块较小的文件,而宽块加密模式(CBC+Elephant diffuser)适用于对大文件进行加密处理。在全盘加密系统中,性能最优的结合方式是操作系统文件加密使用RC6-XTS,用户文件加密使用RC6-CBC+ Elephant diffuser,即RC6-XTS-CBC+Elephant diffuser方式。

参考文献

[1] Casey E, Stellatos G. The Impact of Full Disk Encryption on

Digital Forensics[J]. ACM SIGOPS Operating Systems Review, 2008, 42(3): 93-98.

[2] IEEE. IEEE Standard for Cryptographic Protection of Data on

Block-oriented Storage Devices[EB/OL]. (2008-09-09). http:// https://www.360docs.net/doc/6f16769810.html,/groups/1619/email/pdf00086.pdf.

[3] 张慧, 郭翠芳, 牛夏牧, 等. 磁盘加密模式分析[J]. 计算机工

程, 2010, 36(5): 134-136.

[4] Liskov M, Rivest R, Wagner D. Tweakable Block Ciphers[C]//Proc.

of CRYPTO’02. London, UK: Springer-Verlag, 2002: 31-46. [5] El-Fotouh M A, Diepold K. Statistical Testing for Disk Encryption

Modes of Operations[EB/OL]. (2007-12-14). https://www.360docs.net/doc/6f16769810.html,/ 2007/362.

编辑任吉慧

关于密码学的发展和一些常见的加密算法

关于密码学的发展和一些常见的加密算法 1.悠久迷人的密码史话——密码学和密码 前言: 密码学(Cryptology,来源于希腊语kryptos和graphein,即隐藏和书写的意思)这门科学,或者说这门艺术,通常被分为两个部分,密码学(Cryptography)的任务是构建更为隐秘而且有效的密码,或者说加密方式;而与之相对应,密码分析学(Crypanalysis)则是研究已有的加密法的弱点,在没有密钥的情况下将密文还原成为明文。这两种科学相互依靠而不能分割,密码学家(Cryptologist)需要研习密码学来掌握加密方式,以便更好地解密;同样需要了解密码分析学,以判定自己密码的安全性高低。有一句话说的很好:“密码是两个天才的较量,败者将耗尽智慧而死。” 密码学产生的根本原因在于人们想要传递一些只有我们允许的接受者才能接受并理解的信息。被隐藏的真实信息称为明文(Plaintext),明文通过加密法(Cipher)变为密文(Ciphertext),这个过程被称为加密(Encryption),通过一个密钥(Key)控制。密文在阅读时需要解密(Decryption),同样需要密钥,这个过程由密码员(Cryptographer)完成。但是密码的传递并非绝对安全,可能有未得到允许的人员得到密文,并且凭借他们的耐心和智慧(我们通常假定他们有足够的时间和智慧),在没有密钥的情况下得到明文,这种方法称为破解(Break)。通常使用的加密方法有编码法(Code)和加密法(Cipher),编码法是指用字,短语和数字来替代明文,生成的密文称为码文(Codetext),编码法不需要密钥或是算法,但是需要一个编码簿(Codebook),编码簿内是所有明文与密文的对照表;而加密法则是使用算法和密钥。另外一种较常用的方法是夹带加密法(Steganography),顾名思义,它是将密文以隐藏的方式传递的,比如图画或是其它消息中,或是使用隐形墨水,在计算机能够进行图象和其它信息的处理之后,这种方法更是有了极大的发展空间。 密码的历史十分悠久。大约在4000年以前,在古埃及的尼罗河畔,一位擅长书写者在贵族的基碑上书写铭文时有意用加以变形的象形文字而不是普通的象形文字来写铭文,从而揭开了有文字记载的密码史。 公元前5世纪,古斯巴达人使用了一种叫做“天书”的器械,这是人类历史上最早使用的密码器械。“天书”是一根用草纸条、皮条或羊皮纸条紧紧缠绕的木棍。密信自上而下写在羊皮纸条上。然后把羊皮纸条解开送出。这些不连接的文字毫无意义,除非把羊皮纸条重新缠在一根直径和原木棍相同的木棍上,这样字就一圈圈跳出来,形成那封信。 公元前4世纪前后,希腊著名作家艾奈阿斯在其著作《城市防卫论》中就曾提到一种被称为“艾奈阿斯绳结”的密码。它的作法是从绳子的一端开始,每隔一段距离打一个绳结,而绳结之间距离不等,不同的距离表达不同的字母。按此规定把绳子上所有绳结的距离按顺序记录下来,并换成字母,就可理解它所传递的信息。 古罗马时代曾使用过一种“代替式密码”,把信中每个文字的字母都用字母顺序表中相隔两位后的一个字母取代,这种代替式密码直到第二次大战时还被日本海军使用。 此外,在古代还出现过一种被称为“叠痕法”的密码,使用时先把信纸折叠几下(上下及左右),然后铺平信纸,将传递的信息按顺序一个个分开,写在折

常见的几种加密算法

1、常见的几种加密算法: DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合; 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高; RC2和RC4:用变长密钥对大量数据进行加密,比DES 快;IDEA(International Data Encryption Algorithm)国际数据加密算法,使用128 位密钥提供非常强的安全性; RSA:由RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的; DSA(Digital Signature Algorithm):数字签名算法,是一种标准的DSS(数字签名标准); AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前AES 标准的一个实现是Rijndael 算法; BLOWFISH,它使用变长的密钥,长度可达448位,运行速度很快; 其它算法,如ElGamal钥、Deffie-Hellman、新型椭圆曲线算法ECC等。 2、公钥和私钥: 私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。私钥加密算法非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。 公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。公钥可以被任何人使用;该密钥用于加密要发送到私钥持有者的数据。两个密钥对于通信会话都是唯一的。公钥加密算法也称为不对称算法,原因是需要用一个密钥加密数据而需要用另一个密钥来解密数据。

网络安全常见的四种加密解密算法

package mima; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class Mainer { StringBuffer MStr = new StringBuffer(""); // 加密字符串 StringBuffer CStr = new StringBuffer(""); // 解密字符串 public static void main(String[] args) { System.out.print("请输入密钥:"); Scanner s = new Scanner(System.in); int key = s.nextInt() % 26; // %26的意义是获取密钥的偏移值 Mainer ks = new Mainer(); ks.E(key); // 加密 ks.D(key); // 解密 } /** * 加密公式 */ void E(int k) { try { System.out.println("请输入一段明文:"); char b[]; BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in)); String str2 = br2.readLine(); b = str2.toCharArray(); char ch = ' '; for (int i = 0; i < str2.length(); i++) { if (b[i] >= 'a' && b[i] <= 'z') { ch = (char) ((b[i] - 'a' + k) % 26 + 'a'); } if(b[i] >= 'A' && b[i] <= 'Z'){ ch = (char) ((b[i] - 'A' + k) % 26 + 'A'); } if(b[i]>='0'&&b[i]<='9')

四种加密解密算法的源代码:移位密码、仿射密码

四种加密解密算法的源代码:移位密码、仿射密码、维吉尼亚密码以及置换密码#include #include #include #include void Shift() /*移位密码*/ { char c[100]; int length, i=0, key=0; clrscr(); printf("********Shift Cipher********\nPlease input primal sentence: "); gets(c); length = strlen(c); printf("Input the key(0~26): "); scanf("%d", &key); getchar(); if(key<0) { printf("The value of key is error!\nPress any key to return..."); getch(); return; } for(i=0; i96&&c[i]<123) c[i] = (c[i]+key-97)%26+65; else if(c[i]>64&&c[i]<91) c[i] = (c[i]+key-65)%26+65; } printf("Result is: %s\n", c); for(i=0; i64&&c[i]<91) c[i] = (c[i]-key-65+26)%26+97; } printf("\nAfter translated the sentence,we can see the primal sentence as follow:\n%s\n", c); printf("Press any key to return..."); getch(); }

语音识别技术文献综述

语音识别技术综述 The summarization of speech recognition 张永双 苏州大学 摘要 本文回顾了语音识别技术的发展历史,综述了语音识别系统的结构、分类及基本方法,分析了语音识别技术面临的问题及发展方向。 关键词:语音识别;特征;匹配 Abstact This article review the courses of speech recognition technology progress ,summarize the structure,classifications and basic methods of speech recognition system and analyze the direction and the issues which speech recognition technology development may confront with. Key words: speech recognition;character;matching 引言 语音识别技术就是让机器通过识别和理解过程把语音信号转变为相应的文本或命令的高技术。语音识别是一门交叉学科,所涉及的领域有信号处理、模式识别、概率论和信息论、发声机理和听觉机理、人工智能等等,甚至还涉及到人的体态语言(如人民在说话时的表情手势等行为动作可帮助对方理解)。其应用领域也非常广,例如相对于键盘输入方法的语音输入系统、可用于工业控制的语音控制系统及服务领域的智能对话查询系统,在信息高度化的今天,语音识别技术及其应用已成为信息社会不可或缺的重要组成部分。 1.语音识别技术的发展历史 语音识别技术的研究开始二十世纪50年代。1952年,AT&Tbell实验室的Davis等人成功研制出了世界上第一个能识别十个英文数字发音的实验系统:Audry系统。

加密算法介绍及加密算法的选择

加密算法介绍及如何选择加密算法 加密算法介绍 一.密码学简介 据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。 随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国家标准局公布实施了“美国数据加密标准(DES)”,民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DES、RSA、SHA等。随着对加密强度需求的不断提高,近期又出现了AES、ECC等。 使用密码学可以达到以下目的: 保密性:防止用户的标识或数据被读取。 数据完整性:防止数据被更改。 身份验证:确保数据发自特定的一方。 二.加密算法介绍 根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。 对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。 非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。 对称加密算法 对称加密算法用来对敏感数据等信息进行加密,常用的算法包括: DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。

3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。 AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高; AES 2000年10月,NIST(美国国家标准和技术协会)宣布通过从15种侯选算法中选出的一项新的密匙加密标准。Rijndael被选中成为将来的AES。 Rijndael是在 1999 年下半年,由研究员 Joan Daemen 和 Vincent Rijmen 创建的。AES 正日益成为加密各种形式的电子数据的实际标准。 美国标准与技术研究院 (NIST) 于 2002 年 5 月 26 日制定了新的高级加密标准(AES) 规范。 算法原理 AES 算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES 使用几种不同的方法来执行排列和置换运算。 AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。 AES与3DES的比较 非对称算法

实验四RSA加解密算法的实现

实验四 RSA加解密算法的实现 一.实验目的 1、对算法描述可进行充分理解,精确理解算法的各个步骤。 2、完成RSA软件算法的详细设计。 3、用C++完成算法的设计模块。 4、编制测试代码。 二.实验内容 1.实验原理及基本技术路线图(方框原理图) 加密过程: 第一步,用户首先输入两个素数p和q,并求出 n = p*q,然后再求出n的欧拉函数值phi。 第二步,在[e,phi]中选出一个与phi互素的整数e,并根据e*d ≡1(mod phi),求出e的乘法逆元。至此我们已经得到了公开密钥{e,n}和秘密密钥{d,n}。 第三步,让用户输入要进行加密的小于n一组正整数(个数不超过MAXLENGTH=500),输入以-1为结束标志,实际个数存入size中,正整数以clear[MAXLENGTH]保存。 第四步,对第三步所得的明文clear[MAXLENGTH]进行加密。遍历clear[size],对每一个整数用以下算法进行加密,并将加密后的密文保存在Ciphertext[MAXLENGTH]中。 注意:此处不能用m2[j] = clear[j] ^ e整数的幂,因为当e和clear[j]较大时,会发生溢出,至使出现无法预料的结果。 第五步,输出加密后的密文。 解密过程: 第一步,根据在以上算法中求出的解密密钥[d,phi],对加密后的密文Ciphertext[MAXLENGTH]进行解密,结果保存在DecryptionText[MAXLENGTH]中,算法如下: 第二步,输出对加密前的明文和加密并解密后的密文进行比较,判断两个数组是否一致,从而得知算法是否正确。

2.所用仪器、材料(设备名称、型号、规格等) 计算机一台、vc6.0 3.实验方法、步骤 #include #include using namespace std; #define MAXLENGTH 500 //明文最大长度,即所允许最大整数个数 int size = 0;//保存要进行加密的正整数的个数 int p, q; //两个大素数 int n, phi; //n = p * q,phi = (p-1) * (q-1) 是n的欧拉函数值 int e; //{e, n}为公开密钥 int d; //{d, n}为秘密密钥 int clear[MAXLENGTH], Ciphertext[MAXLENGTH];//分别用于存放加//密前的明//文和加密后的密文int DecryptionText[MAXLENGTH];//存放解密后的明文 //////////////////////////////////////////////////////////// //以下为加密算法 void Encryption() {//加密算法 cout << " 请输入两个较大的素数:" ; cin >> p >> q ; cout << " p = " << p << ", q = " << q << endl; n = p * q;//求解 n, phi = (p - 1) * ( q - 1 );//求解 n 的欧拉函数值 cout << " n = " << n << ", phi = " << phi << endl; cout << " 请从[0," << phi - 1 << "]中选择一个与 " << phi << " 互素的数 e:"; cin >> e; float d0; for( int i = 1; ; i++) {///求解乘法逆元 e * d ≡ 1 (mod phi) d0 = (float)(phi*i+1) / e; if( d0 - (int)d0 == 0 ) break; } d = (int)d0; cout << endl; cout << " e = " << e << ", d = " << d << endl; cout << " 公开密钥 Pk = {e,n} = {" << e << "," << n << "}" << endl; cout << " 秘密密钥 Sk = {d,n} = {" << d << "," << n << "}" << endl; cout << endl;

语音识别方法及发展趋势分析

语音识别改进方法及难点分析 ——《模式识别》结课小论文 学院:化工与环境学院 学号:2120151177 姓名:杜妮

摘要:随着计算机技术的不断发展,人工智能程度也越来越高,作为人工智能的一部分——模式识别也在模型和算法上愈发成熟。本文根据近105年文献,分析最新声音识别的方法和应用。 关键字:模式识别声音识别方法应用 随着人工智能的迅速发展,语音识别的技术越来越成为国内外研究机构的焦点。人们致力于能使机器能够听懂人类的话语指令,并希望通过语音实现对机器的控制。语音识别的研究发展将在不远的将来极大地方便人们的生活。 语音识别大致的流程包括:特征提取、声学模型训练、语音模型训练以及识别搜索算法。作为一项人机交互的关键技术,语音识别在过去的几十年里取得了飞速的发展,人们在研究和探索过程中针对语音识别的各部流程进行了各种各样的尝试和改造,以期发现更好的方法来完成语音识别流程中的各步骤,以此来促进在不同环境下语音识别的效率和准确率。本文通过查阅近10年国内外文献,分析目前语音识别流程中的技术进展和趋势,并在文章最后给出几项语音识别在日常生活中的应用案例,从而分析语音识别之后的市场走势和实际利用价值。 一、语音识别的改进方法 (一)特征提取模块改进 特征提取就是从语音信号中提取出语音的特征序列。提取的语音特征应该能完全、准确地表达语音信号,特征提取的目的是提取语音信号中能代表语音特征的信息,减少语音识别时所要处理的数据量。语音信号的特征分析是语音信号处理的前提和基础,只有分析出可以代表语音信号本质特征的参数,才能对这些参数进行高效的语音通信,语音合成,和语音识别等处理,并且语音合成的好坏,语音识别率的高低,也都取决于语音特征提取的准确性和鲁棒性。目前,针对特定应用的中小词汇量、特定人的语音识别技术发展已较为成熟,已经能够满足通常应用的要求,并逐步投入了实用。而非特定人、大词汇量、连续语音识别仍是

电子商务加密解密方法比较分析

电子商务加密解密方法比较分析 摘要:本文主要对私有密钥加密法和公开密钥加密法的概念阐述和算法原理进行分析,并对两种加密法的优缺点进行了比较。 关键词:电子商务;;算法;DES;RSA;网络银行;私有密钥加密法;公开密钥加密法 对数据进行有效加密与解密,其目的是为了隐蔽数据信息,将明文伪装成密文,使机密性数据在网络上安全地传递而不被非法用户截取和破译。伪装明文的操作称为加密,合法接收者将密文恢复出原明文的过程称为解密,非法接收者将密文恢复出原明文的过程称为破译。密码是明文和加密密钥相结合,然后经过加密算法运算的结果。加密包括两个元素,加密算法和密钥。加密时所使用的信息变换规则称为加密算法,是用来加密的数学函数,一个加密算法是将普通的文本与一串字符串即密钥结合运算,产生不可理解的密文的步骤。密钥是借助一种数学算法生成的,它通常是由数字、字母或特殊符号组成的一组随机字符串,是控制明文和密文变换的唯一关键参数。对于相同的加密算法,密钥的位数越多,破译的难度就越大,安全性就越好。目前,电子商务通信中常用的有私有(对称)密钥加密法和公开(非对称)密钥加密法。 一、私有密钥加密法 (一)定义 私有密钥加密,指在计算机网络上甲、乙两用户之间进行通信时,发送方甲为了保护要传输的明文信息不被第三方窃取,采用密钥A对信息进行加密而形成密文M并发送给接收方乙,接收方乙用同样的一把密钥A对收到的密文M进行解密,得到明文信息,从而完成密文通信目的的方法。这种信息加密传输方式,就称为私有密钥加密法。上述加密法的一个最大特点是,信息发送方与信息接收方均需采用同样的密钥,具有对称性,所以私有密钥加密又称为对称密钥加密。 (二)常用算法 世界上一些专业组织机构研发了许多种私有密钥加密算法,比较著名的有DES算法及其各种变形、国际数据加密算法IDEA等。DES算法由美国国家标准局提出, 1977年公布实施,是目前广泛采用的私有密钥加密算法之一,主要应用于银行业中的电子资金转账、军事定点通信等领域,比如电子支票的加密传送。经过20多年的使用,已经发现DES很多不足之处,随着计算机技术进步,对DES的破解方法也日趋有效,所以更安全的高级加密标准AES将会替代DES成为新一代加密标准。 (三)优缺点 私有密钥加密法的主要优点是运算量小,加解密速度快,由于加解密应用同一把密钥而应用简单。在专用网络中由于通信各方相对固定、所以应用效果较好。但是,私有密钥加密技术也存在着以下一些问题:一是分发不易。由于算法公开,其安全性完全依赖于对私有密钥的保护。因此,密钥使用一段时间后就要更换,而且必须使用与传递加密文件不同的途径来传递密钥,即需要一个传递私有密钥的安全秘密渠道,这样秘密渠道的安全性是相对的,通过电话通知、邮寄软盘、专门派人传送等方式均存在一些问题。二是管理复杂,代价高昂。私有密

DES数据加密算法

上海电力学院 实验报告 课程名称信息安全/计算机安全实验项目实验一DES数据加密算法 姓名张三学号班级专业电子信息工程 同组人姓名指导教师姓名魏为民实验日期2011年月日 一、实验目的 通过本实验的学习,深刻理解DES加密标准,提高算法设计能力,为今后继续学习密码技术和数字签名奠定基础。 二、实验内容 根据DES加密标准,用C++设计编写符合DES算法思想的加、解密程序,能够实现对字符串和数组的加密和解密。 三、实验步骤 1. 在操作系统环境下启动VC++集成环境(Microsoft Visual C++ 6.0 ,其中6.0为版本号,也可为其它版本),则产生如图1所示界面。 图1 VC++ 集成环境界面 2. 选择“文件”菜单下的“新建”命令,出现如图2所示界面(不可直接按“新建”按钮,此按钮是新建一个文本文件)。此界面缺省标签是要为新程序设定工程项目,但编辑小的源程序也可以不建立项目,可以直接选择其左上角的“文件”标签,产生如图3所示界面。 3. 在图3所示的界面中左边选定文件类型为“C++ Source File”,右边填好文件名并选定文件存放目录,

然后单击“确定”按钮,出现如图4所示编程界面,开始输入程序。 4. 输入完源程序后,按"编译"菜单下的编译命令,对源程序进行编译。系统将在下方 的窗口中显示编译信息。如果无此窗口,可按"Alt + 2"键或执行"查看"菜单下的"输出"命令。 如果编译后已无提示错误,则可按"编译"菜单下的"构件"命令来生成相应的可执行文件,随后可按"编译"菜单下的"执行"命令运行的程序。 图2 新建VC++工程项目界面 图3 新建VC++源程序文件界面

DES加密算法与解密(带流程图)

一、DES加密及解密算法程序源代码: #include using namespace std; const static char IP_Table[] = { //IP_T able置换58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7 }; const static char Final_Table[] = { //最终置换40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31, 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, 34, 2, 42, 10, 50, 18, 58, 26,

33, 1, 41, 9, 49, 17, 57, 25 }; const static char S_Box[8][64] = { //s_box /* S1 */ {14, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7, 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8, 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0, 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13}, /* S2 */ {15, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10, 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5, 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15, 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9}, /* S3 */ {10, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8, 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1, 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7, 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12}, /* S4 */ {7, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15, 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9,

加密算法

加密算法介绍 褚庆东 一.密码学简介 据记载,公元前400年,古希腊人发明了置换密码。1881年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。 随着信息化和数字化社会的发展,人们对信息安全和保密的重要性认识不断提高,于是在1997年,美国国家标准局公布实施了“美国数据加密标准(DES)”,民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DES、RSA、SHA等。随着对加密强度需求的不断提高,近期又出现了AES、ECC等。 使用密码学可以达到以下目的: 保密性:防止用户的标识或数据被读取。 数据完整性:防止数据被更改。 身份验证:确保数据发自特定的一方。 二.加密算法介绍 根据密钥类型不同将现代密码技术分为两类:对称加密算法(秘密钥匙加密)和非对称加密算法(公开密钥加密)。 对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。 非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。 对称加密算法 对称加密算法用来对敏感数据等信息进行加密,常用的算法包括: DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。 AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;

AES 2000年10月,NIST(美国国家标准和技术协会)宣布通过从15种侯选算法中选出的 一项新的密匙加密标准。Rijndael被选中成为将来的AES。Rijndael是在 1999 年下半年,由研究员 Joan Daemen和 Vincent Rijmen 创建的。AES 正日益成为加密各种形式的电子 数据的实际标准。 美国标准与技术研究院 (NIST) 于 2002 年 5 月 26 日制定了新的高级加密标 准 (AES) 规范。 算法原理 AES 算法基于排列和置换运算。排列是对数据重新进行安排,置换是将一个数据单元替换为另一个。AES 使用几种不同的方法来执行排列和置换运算。 AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并 且用 128位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。 非对称算法 常见的非对称加密算法如下: RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的; DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准); ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。 ECC

语音识别综述

山西大学研究生学位课程论文(2014 ---- 2015 学年第 2 学期) 学院(中心、所):计算机与信息技术学院 专业名称:计算机应用技术 课程名称:自然语言处理技术 论文题目:语音识别综述 授课教师(职称): 研究生姓名: 年级: 学号: 成绩: 评阅日期: 山西大学研究生学院 2015年 6 月2日

语音识别综述 摘要随着大数据、云时代的到来,我们正朝着智能化和自动化的信息社会迈进,作为人机交互的关键技术,语音识别在五十多年来不仅在学术领域有了很大的发展,在实际生活中也得到了越来越多的应用。本文主要介绍了语音识别技术的发展历程,国内外研究现状,具体阐述语音识别的概念,基本原理、方法,以及目前使用的关键技术HMM、神经网络等,具体实际应用,以及当前面临的困境与未来的研究趋势。 关键词语音识别;隐马尔科夫模型;神经网络;中文信息处理 1.引言 语言是人类相互交流最常用、有效的和方便的通信方式,自从计算机诞生以来,让计算机能听懂人类的语言一直是我们的梦想,随着大数据、云时代的到来,信息社会正朝着智能化和自动化推进,我们越来越迫切希望能够摆脱键盘等硬件的束缚,取而代之的是更加易用的、自然的、人性化的语音输入。语音识别是以语音为研究对象,通过对语音信号处理和模式识别让机器自动识别和理解人类口述的语言。 2.语音识别技术的发展历史及现状 2.1语音识别发展历史 语音识别的研究工作起源与上世纪50年代,当时AT&T Bell实验室实现了第一个可识别十个英文数字的语音识别系统——Audry系统。1959年,J.W.Rorgie和C.D.Forgie采用数字计算机识别英文元音及孤立字,开始了计算机语音识别的研究工作。 60年代,计算机应用推动了语音识别的发展。这时期的重要成果是提出了动态规划(DP)和线性预测分析技术(LP),其中后者较好的解决了语音信号产生模型的问题,对后来语音识别的发展产生了深远的影响。 70年代,LP技术得到了进一步的发展,动态时间归正技术(DTW)基本成熟,特别是矢量量化(VQ)和隐马尔科夫(HMM)理论的提出,并且实现了基于线性预测倒谱和DTW技术的特定人孤立语音识别系统。 80年代,实验室语音识别研究产生了巨大的突破,一方面各种连接词语音识别算法被开发,比如多级动态规划语音识别算法;另一方面语音识别算法从模板匹配技术转向基于统计模型技术,研究从微观转向宏观,从统计的角度来建立最佳的语音识别系统。隐马尔科夫模型(HMM)就是其典型代表,能够很好的描述语音信号的时变性和平稳性,使大词汇量连

加密存储算法和模式研究

加密存储算法和模加密存储算法和模式研究式研究 梁 敏1,常朝稳1,樊雪竹2 (1. 解放军信息工程大学电子技术学院,郑州 450004;2. 解放军61655部队,重庆 402764) 摘 要:为提高全盘加密系统的性能,研究现有的磁盘加密算法和模式,测试不同加密算法和模式组合的性能。介绍加密存储的主要方式,对现有磁盘加密算法和模式进行分析,将不同加密算法和模式结合进行性能测试与分析,针对全盘加密系统给出相应的建议,为加密存储设计者提供参考和依据。 关键词关键词::存储安全;加密存储;全盘加密;加密算法;加密模式 Research of Encryption Storage Algorithms and Modes LIANG Min 1, CHANG Chao-wen 1, FAN Xue-zhu 2 (1. School of Electronic Technology, PLA Information Engineering University, Zhengzhou 450004, China; 2. PLA 61655 Army, Chongqing 402764, China) 【Abstract 】In order to improve the performance of the full disk encryption system, this paper studies and analyzes the existing disk encryption algorithms and modes, and tests the performance of different combinations of encryption algorithms and modes. The ways of encryption storage are introduced. The existing encryption algorithms and modes are analyzed. The performances of encryption algorithms and modes are tested and analyzed. A suggestion is proposed for full disk encryption. Result provides referential basis for designers of encryption storage. 【Key words 】storage security; encryption storage; full disk encryption; encryption algorithm; encryption mode DOI: 10.3969/j.issn.1000-3428.2011.13.032 计 算 机 工 程 Computer Engineering 第37卷 第13期 V ol.37 No.13 2011年7月 July 2011 ·安全技术安全技术·· 文章编号文章编号::1000—3428(2011)13—0101—03 文献标识码文献标识码::A 中图分类号中图分类号::TP309.2 1 概述 数据的安全存储已经成为计算机安全领域中的主要问题 之一。因磁盘被盗、丢失或者未授权的访问和使用而造成的信息大量泄漏已经给国家、企业和个人带来了巨大的损失。2009年,美国弗罗里达州的一家海军医院发现存有近千份军人个人信息的笔记本电脑丢失。同年,美国国民警卫队宣布存有13万个人信息的笔记本电脑被盗。全球几乎每个月都有政府、组织或者企业发生存有敏感信息的存储设备丢失或者被盗事件。最近的一个调查显示,2/3的IT 行业专家工作使用的移动存储设备没有经过加密保护。另外,内部人员的非法访问或者窃取信息也时有发生。除了防止存储设备的丢失或者被盗,使用加密方法保证存储设备的安全是一种常用并且有效的方式。按实现的层次不同,现有的基于软件的加密存储方法可以分为:应用层加密,操作系统内核层加密和全磁盘加密(FDE)。在广泛部署存储加密软件之前,必须解决一些关键的问题,如选择合适的加密模式、加密算法和密钥管理方式。为解决这些问题,美国电气及电子工程师学会(IEEE)已经提出了一个新的标准P1619TM /D16。 加密算法和加密模式对加密存储的安全和性能有着重要的影响。本文介绍了AES 、Twofish 和RC6 3种加密算法和LRW 、XTS 和CBC+Elephant diffuser 3种加密模式,并基于全盘加密系统对算法和模式的组合进行了性能分析。 2 加密存储 基于软件的加密存储方法大体上可以分为3类:应用层加密,操作系统内核层加密和全磁盘加密。应用层加密是一种最简单的文档加密形式,如PGP 公司的邮件加密软件。由用户指定需要加密的单个文档和指定加密后的目标文件名,程序全部在应用层实现。当一个文档需要加密存放时,选择 加密操作,存为密文文档。需要读取的时候,需要先解密成明文文档。这个方法的优点是实现起来比较容易,可以针对单个文档选择加密处理。缺点是需要用户干预较多,操作不便,不利于大量文件的加密处理,而且安全性较差。 为了解决应用层加密用户操作步骤繁琐、安全性差等问题,人们提出了内核层加密。所谓内核层加密,就是在操作系统内核中实现对数据的加/解密操作。根据实现方式的不同又分为:过滤驱动加密和虚拟磁盘加密。过滤驱动加密是在I/O 管理器与文件系统之间插入一个文件过滤加密驱动程序,这样就可以对指定的文件或文件夹进行加密和解密,从而达到安全存储的目的。虚拟磁盘文件加密系统的基本设计思想是:在原有系统的文件系统和磁盘驱动程序之间,加入一层虚拟磁盘驱动程序,虚拟磁盘驱动程序将本地磁盘上的一块存储区映射为虚拟磁盘分区,用户需要加密存储的数据文件都通过虚拟磁盘分区进行存储,在虚拟磁盘驱动程序中动态地对存储到磁盘上的文件进行加密。操作系统内核层加密可以有效地避免用户态加密存在的各种不足,方便控制文件的操作粒度,相对提高了安全性,同时加解密操作对用户透明。但它也有一些局限性,如不能对系统文件、页文件和临时文件加密,在诸如断电或出现应用故障的情况下,这些文件可能被漏掉,导致敏感数据文件以明文形式存储在硬盘上。 与前2种方法相比,全磁盘加密是最安全可靠的方法,几乎对写入磁盘的所有数据都进行加密处理,包括操作系统文件和页文件,提供了最全面的加密保护措施,给攻击者设 基金项目基金项目::国家“863”计划基金资助项目(2007AA01Z479) 作者简介作者简介::梁 敏(1986-),男,硕士研究生,主研方向:安全存储;常朝稳,教授;樊雪竹,助理工程师 收稿日期收稿日期::2011-01-06 E-mail :lm7186345@https://www.360docs.net/doc/6f16769810.html,

语音增强算法的研究与实现

语音增强算法的研究与实现 目录 目 录 ..................................................................... ............................................................ I 河西学院本科生毕业论文(设计)诚信声 明 ................................... 错误~未定义书签。I 河西学院本科生毕业论文(设计)任务 书 ...................................... 错误~未定义书签。II 河西学院本科毕业论文(设计)开题报 告 ..................................... 错误~未定义书签。IV 摘 要 ..................................................................... .................................................................. I Abstract ........................................................... ....................................................................... I 1 引 言 ..................................................................... .. (1) 2 语音增强算法概 述 ..................................................................... (1)

文件加密与解密算法

文件加密与解密算法的分析与应用 摘要:随着信息社会的到来,人们在享受信息资源所带来的巨大的利益的同时,也面临着信息安全的严峻考验。信息安全已经成为世界性的现实问题,已威胁到国家的政治、经济、军事、文化、意识形态等领域,同时,信息安全问题也是人们能否保护自己的个人隐私的关键。信息安全是社会稳定安全的必要前提条件。解决信息安全的方法是加密,所以加密解密就显得日益重要。本课题重点研究常用文件加密解密算法的基本思想及实现过程中所用到的方法、技术。同时对公钥密码体制和私钥密码体制进行了分析和研究,并对公钥密码体制和私钥密码体制的代表aes算法和des算法进行了研究和比较,最后结合常用算法设计实现了简易加密解密应用软件。 关键词:解密文件加密密码体制 des aes 中图分类号:tp314 文献标识码:a 文章编 号:1672-3791(2012)06(b)-0019-01 1 引言 1.1 文件加密与解密算法应用的意义 随着因特网、全球贸易和其它活动的增长,密码技术越来越多地用于个人的标识和认证等,它是取得信息安全性最有效的一种方法,是信息安全的核心技术。通过数据加密,人们可以有效地保证通信线路上的内容不被泄露,而且还可以检验传送信息的完整性。

对称密码算法主要用于保证数据的机密性,通信双方在加密解密过程中使用它们共享的单一密钥。最常用的是数据加密标准(des)算法,但由于des的密钥长度较短,不适合于数据加密安全性的要求。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据。 本文在研究分析了aes加密原理的基础上着重说明了aes算法实现的具体步骤:扩展密钥的异或运算、列变换、行变换、s盒变换等,以及各步骤的轮换顺序、密钥扩展程序keyexpansion、优化等。 2 加密/解密算法的原理分析[1] 2.1 原理 对于aes算法,输入分组、输出分组、状态长度均为128比特。nb=4,该值反应了状态中32位字的列数。对于aes算法,密钥k的长度是128、192或256 bits。密钥长度表示为nk=4、6或8,反应了密钥中32位字的个数。对于aes算法,算法的轮数依赖于密钥长度。将轮数表示为nr,当nk=4时nr=10;当nk=6时nr=12;当nk=8时nr =14。对于加密和解密变换,aes算法使用的轮函数由4个不同的以字节为基本单位的变换复合而成。 (1)字节替代,利用一个替代表。(2)将状态矩阵的每一行循环移位不同的位移量。(3)将状态矩阵中每一列的数据进行混合。(4)将轮密钥加到状态上。 2.1.1 s盒变换:对输入矩阵的任一个元素a做如下变换s[a]

相关文档
最新文档