RSA加密算法的分析与实现毕业设计论文

RSA加密算法的分析与实现毕业设计论文
RSA加密算法的分析与实现毕业设计论文

河南科技大学毕业设计(论文)

题目:__RSA加密算法的分析与实现__

摘要

随着信息产业的迅速发展,人们对信息和信息技术的需要不断增加,信息安全也显得越来越重要。基于对网络传输数据安全性的考虑,保障网络信息安全的加密产品具有广泛的应用前景,密码技术则是保障信息安全的一个重要手段。密码学是信息安全技术的核心,现代密码体制分为公钥体制和私钥体制两大类:私钥体制又称单钥体制,其加密密钥和解密密钥相同;公钥体制又称为双钥体制,其加、解密密钥不同,可以公开加密密钥,而仅需保密解密密钥,从而具有数字签名、鉴别等新功能,被广泛应用于金融、商业等社会生活各领域。RSA是目前公认的在理论和实际应用中最为成熟和完善的一种公钥密码体制,不仅可以进行加密,还可以用来进行数字签名和身份验证,是公钥密码体制的代表。大数模幂乘运算是实现RSA等公钥密码的基本运算,该算法存在的问题是在实现时耗时太多,这也是制约其广泛应用的瓶颈。

本论文的第一章介绍了国内外密码学和RSA的有关动态以及本论文的意义,第二章介绍密码学的有关知识,第三章对RSA算法进行分析、介绍,第四章是RSA 加密与解密的实现的代码和测试,第五章对本课题的结论。最后是致谢和参考文献。

关键词:密码学,RSA公钥密码体制,信息安全

ABSTRACT

With the rapid development of IT technology, people depend on it increasingly, As a result, information security is getting more and more important. Meanwhile, Products that ensure network information show a great prospect due to the importance .Of transmitting data by network safely, and as an important means of information Security, cryptography must be lifted.Cryptography is the core of the information security. Modern cryptograph is, Divided into the public key system and the private key system. The private key system, Is also called the single key system, in which the encryption process is the same as the. Decryption process. The public key system is also called the double key system, Where the encryption process is different with the decryption process. Since the Public key system can publish its public key and keep its private key secret, it has, Many new applications such as the digital signature and authentication, which is. ideally used in every field of the society.Among the various public key cryptosystem, RSA algorithm is the best choice in, Both theory and application, and it is open used in digital signature and identificationSystem. Modular exponentiation and modular multiplication are the basic algorithms. For implementing the public key algorithms such as RSA, etc. However the, Time-consuming modulo exponentiation computation, which has always been the, Bottle-neck of RSA restricts its wider application.

The first chapter introduces the domestic and foreign progress of cryptograph; The RSA related tendency as well as the meaning of the research. The second chapter Explains cryptograph. The third chapter describes and analyzes the RSA algorithm. The

fourth chapter discusses the improvement of the RSA algorithm including the big, Number restore and operation, and the improvement algorithm of the” Square multiply" algorithm. The fifth chapter reprints an improved algorithm and Comparisons.

KEY WORDS: cryptography, RSA, public key cryptosystem, information security

目录

摘要 (1)

ABSTRACT (2)

第一章引言 (6)

1.1研究背景 (6)

1.2信息加密技术 (6)

1.3密码技术研究现状 (8)

1.4研究本课题的意义 (9)

第二章密码学概论 (11)

2.1密码学的基本概念 (11)

2.2古典密码体制 (14)

2.3对称密码体制 (14)

2.3.1 DES (Data Encryption Standard) (16)

2.3.2 AES(Advanced Encryption Standard) (18)

2.4公钥密码体制 (19)

2.5密码分析技术 (21)

第三章 RSA公钥密码体制 (24)

3.1RSA的数学基础知识 (24)

3.1.1 因子的概念 (24)

3.1.2 素数与合数 (25)

3.1.3 公约数与最大公约数 (26)

3.1.4 互质数 (27)

3.2RSA算法 (28)

3.2.1 RSA体制描述 (28)

3.2.2 RSA工作原理 (29)

第四章 RAS的加密与解密技术的实现 (2)

4.1RSA加密与解密代码 (2)

4.2测试的环境与工具 (4)

4.3测试的结果 (5)

第五章结论 (6)

5.1结论 (6)

致谢 (7)

参考文献 (8)

第一章引言

1.1 研究背景

自20世纪90年代以来,计算机网络技术得到了空前飞速的发展和广泛的应用,但网络在带给我们方便快捷的同时,也存在着种种安全危机,随着计算机应用的日益广泛和深入,信息交流和资源共享的范围不断扩大,计算机应用环境日趋复杂,计算机的数据安全问题也越来越重要。在计算机网络日益扩大和普及的今天,计算机对安全的要求更高、涉及面更广。其内容主要包括: (1)实体安全。实体安全是指对场地、环境、设施、设备、载体、人员采取的各种安全对策和措施; (2)数据传输网络安全。是指信息、在数据传输网络中传输时,如何保证其安全性的问题,避免在传输途中遭受非法窃取、篡改等; (3)软件安全。它涉及信息在存储和处理状态下的保护问题; (4)信息安全。即数据安全,是指系统有能力抵抗外来非法入侵者对信息的恶意访问、泄漏、修改和破坏等,即:机密性、完整性、可用性。所以,如何实现计算机网络中数据安全传输近年来一直是人们研究的课题之一。

1.2 信息加密技术

信息加密技术是信息安全技术l2]的核心技术,其主要目的是防止恶意攻击者非法破译系统中的机密信息。数据加密技术可以提高信息系统及数据的安全性和保密性,防止秘密数据被外部破译所采用的主要技术手段之一。而密码学是研究

通信安全保密的科学,其目的是保护信息在信道上传输过程中不被他人窃取、解读和利用,它主要包括密码编码学和密码分析学两个相互独立又相互促进的分支。前者研究将发送的信息(明文)变换成没有密钥不能解或很难解的密文的方法;而后者则研究分析破译密码的方法。其发展经历了相当长的时期。第一次世界大战之前,密码学的重要进展根本是不为人知的,很少有文献披露这方面的信息。直到1918年由WF.Friendlunn论述了重合指数及其在密码学中的应用以及转轮机专利的发表才引起了人们的重视,但仅仅由军事和秘密部门所控制。

第一次世界大战之后到20世纪40年代末期,密码学家们将信息理论、密码学和数学结合起来研究,使信息论成为了研究密码编码学和密码分析学的重要理论基础。完全处于秘密工作状态的研究机构开始在密码学方面取得根本性的进展,最具代表性的有Shannon(香农)的论文—《保密系统的通信理论》和《通信的数学理论》,他将安全保密的研究引入了科学的轨道,从而创立了信息论的一个新学科。

从20世纪50年代初期到60年代末期的20年中,在密码学的研究方面公开发表的论文极少,但David Kahn于1967年出版的著作—《破译者》使密码学的研究涉及到了相当广泛的领域,使不知道密码学的人了解了密码学,因此密码学的研究有了新的进展。自20世纪70年代初期到现在,随着计算机科学与技术的发展,促进了密码学研究的兴起和发展,人们使用密码学技术来保护计算机系统中信息的安全。因此,在密码学的研究和应用等方面取得了许多惊人的成果和理论。具有代表性的有:

(l)由Daffier和Hellman于1976年发表的“密码学的新方向”一文提出了公开

密钥密码学(即公开密钥或双密钥体制),打破了长期沿用单密钥体制的束缚,提出了一种新的密码体制。公开密钥体制可使收、发信息的双方无须事先交换密钥就可秘密通信。(2)由Horst Festal研究小组于20世纪70年代初着手研究美国数据加密标准(Data Encryption standard,DES),并于1973年发表了“密码学与计算机保密”等有价值的论文,该文论述了他们的研究成果并被美国标准局伽BS)采纳,于1977年正式公布实施为美因数据加密标准并被简称为Desk标准。上述密码学的发展可粗略的划分为三个阶段:第一阶段(194·9年之前)的密码学可以说不是什么学科,仅为一门艺术;第二阶段(1949年到1975年)可以说是密码学研究的“冬天”,成果和论文少且为单密钥体制,但在这一阶段有如Shaman的理论和Dave记Kahn的著作并为密码学奠定了坚实的理论基础;第三阶段(1976年到现在)可以说是密码学研究的“春天”,密码学的各种理论和观点百花齐放,应用成果累累。

1.3 密码技术研究现状

密码技术是信息安全技术的核心,它主要由密码编码技术和密码分析技术两大分支组成。密码编码技术的主要任务是寻求产生安全性高的有效密码算法和协议,以满足对消息进行加密或认证的要求。密码分析技术的主要任务是破译密码或伪造认证信息,实现窃取机密信息或进行诈骗破坏话动。这两个分支既相互对立又相互依存,正是由于这种对立统一关系,才‘推动了密码学自身的发展。目前人们将密码理论与技术分成两大类,一类是基于数学的密码理论与技术,包括公钥密码、分组密码、序列密码、认证码、数字签名、Hash函数、身份识别、密

钥管理、PKI技术、VPN技术等;另一类是非数学的密码理论与技术,包括信息隐藏、量子密码、基于生物特征的识别理论与技术等。现在世界上的一些大国都非常重视密码学研究I3jI4]。在美国国家安全局(Nast)和国家标准技术研究所(Mist)的共同推动下,20世纪70年代以来陆续建立了国家数据加密标准(DES)和数字签名标准(D55),2001年又确定了高级加密标准算法(AES)以作为21世纪的应用基础。美国政府为了适应信息社会发展的需要,加强政府司法机构的社会管理执法的高技术支撑能力和情报部门的对抗信息战的能力,正通过Nast提出并推动着密钥托管、密钥恢复、证书授权认证、公开密钥基础设施、公开密钥管理基础设施等一系列技术手段、技术标准和相关理论基础的研究。国际上对在分组密码和序列密码设计和分析的理论和技术已经比较成熟。除了算法的设计之外,美国、欧洲、日本发达国家在加密算法的标准化方面做了大量的工作。我们国内的学者也设计了很多对称加密算法,但是目前的问题是,国内还没有一个统一的加密标准。可喜的是,目前有关部门正在组织对加密标准的讨论和征集。

1.4 研究本课题的意义

加密技术按照密码使用方法不同可以分为对称密钥算法和非对称密钥算法。对称密钥算法中,加密、解密都使用相同的密钥。非对称密钥算法又称公钥密码算法,即加密、解密使用两个不同的密钥。由于公钥密码算法在保证数据的机密性、完整性以及签名和认可等方面的突出优点,它已经成为当今网络安全中最重要的解决方法。在众多的公钥密码体制中,1978年由Rivets,Shamir和Adelman 在美国MIT提出的Rosa算法15][6]被公认为是目前理论和实际应用中最为成热和

完善的一种公钥密码体制,可以用来进行数字签名和身份验证。该算法的安全性依赖于大整数的素数因子分解的困难性,其最基本最核心的算术操作是模乘运算,再由一系列的模乘来完成模幂运算。

RSA体制算法完善(既可用于数据加密,又可用于数字签名),安全性良好,易于实现和理解。使用RSA体制作为课题算法和方案的实现基础,我们可以有效地利用RSA体制的优点。同时,关于RSA体制的大量的研究工作的文献和成果为本文研究工作的开展提供了良好的基础。

RSA体制是最具代表性的公钥密码体制。RSA体制的特点使得它成为公钥密码体制研究的一个标准模板。同时,由于RSA算法发展至今,在实现技术上己经相当成熟,因此本文算法的实现在许多方面都可以利用己有的技术,这对增强算法的实用性是非常有益的。

RSA算法计算复杂,实现的难度大。软件实现主要问题是加密、解密操作要计算位数达十进制百位以上的模幂乘函数。执行的时间长,难以满足实际使用要求。在实际应用中,其加密和解密的速度是主要的问题,所以研究RSA的快速算法具有非常重要的现实意义。

本论文主要研究了密码学尤其是RSA的发展历程,及目前RSA在应用中面临的问题。在大量阅读国内外重要文献资料的基础上,深入剖析了RSA算法的精要。

第二章密码学概论

密码学[7]的历史极为久远,其起源可以追溯到远古时代,人类有记载的通信密码始于公元前400年。虽然密码是一门古老的技术,但自密码诞生直至第二次世界大战结束,对于公众而言,密码始终处于一种未知的黑暗当中,常常与军事、机要、间谍等工作联系在一起,让人在感到神秘之余,又有几分畏惧。信息技术的发展迅速改变了这一切。随着计算机和通信技术的迅猛发展,大量的敏感信息常常通过公共通信设施或计算机网络进行交换,特别是intermit的广泛应用、电子商务和电子政务的迅速发展,越来越多的个人信息需要严格保密,如:银行账号、个人隐私等。正是这种对信息的秘密性与真实性的需求,密码学才逐渐揭去了神秘的面纱,走进公众的日常生活当中。本章回顾了密码学的基础知识,包括密码学的基本概念、密码理论与技术基础、认证理论与技术基础以及密码分析学基础。这些基础概念和知识是本课题研究工作的理论与技术基础。

2.1 密码学的基本概念

首先我们明确一下本文所使用的密码学的一些基本概念。它们将贯穿本文的由始至终。

定义1密码学 (Cryptology)是研究信息系统安全保密的科学。它包括两个分支,即密码编码学和密码分析学。

定义2密码编码学(Cryptography)是对信息进行编码实现信息隐蔽的技术和科学。

定义3密码分析学(Cryptanalysis)是研究分析破译密码的技术与科学。

定义4明文(Plaintext)是指发送方想要发送给接受方的消息。

定义5密文(Cipher text)是指明文被加密后的消息。

定义6加密(Encryption)将明文变换为密文的过程。

定义7解密(Decryptions)将密文恢复为明文的过程。

定义1.8一个密码体制是满足以下条件的五元组(P ,C ,K ,E ,D):

1.P 表示所有可能的明文组成的有限集。

2.C 表示所有可能的密文组成的有限集。

3.K 代表密钥空间,是由所有可能的密钥组成的有限集。

4.对任意的k k ?,都存在一个加密法则k e E ?和相应的解密法则k d D ?。 并且对每一k e :p c ?和k d :c p ?对任意的明文x p ?,均有()()

k k e x d x =。通常人们用香农(Salmon)的密码模型来说明密码体制。Shalom 提出的保密系统的模型[8}如图2-1所示:

它由以下几部分组成:明文空间P ,密文空间C ,密钥空间K1和k2单钥体制下

K1=k2=k3密钥K 需通过安全的密钥通道由发送方传给接密变换EK1:p c ?,由加密器完成,其中12k k ?;解密变换DK2:c p ?密器完成,其中11k k ?。称五元组(P ,c ,K ,E ,D)为一保密系统。

如果一个密码体制的12k k ?,或由其中一个很容易推出另一个,钥密码体制或对称密码体制或传统密码体制(one- key Cryptosystem ,其是美国的数据加密标准Desk(Data Encryption Standard):

a a p =? 其中0p a >= (3.2)

否则,称为双体制或非对称密码体制。进而,如果在计算上K2不能由K1推出,这公开也不会损害K2的安全,于是便可以将K1公开。这种密码体制称码体制(public 一key Cryptosystem),其典型代表是Rosa 密码体制。

根据对明文的划分与密钥的使用方法的不同可将密码体制分为分序列密码体制。

①分组密码是将明文M 划分为一系列明文块M1,M2,…,Mn ,通常若干字符,并且对每一块Mi 都用同一个密钥Kill 进行加密,即C=(C1,C2…,Cn)。

②序列密码将M 划分为一系列的字符或位m1,m2,…,mn ,并且对于这每一个mi 用密钥序列KI=(Kl1,Kl2,…,Kln)的第I 个分量Kli 来加密,即C=(C1,C2,…,Cn),其中Ci=E(mi ,kli),i=l ,2,…,n 分组密码一次加密一个明文块,而序列密码一次加密一个字符或一个位。两种密码在计算机系统中都有广泛应用。为了实现信息的保密性,抗击密码分析,保密系统应当满足下述要求:

①即使达不到理论上是不可破解的,也应当是实际上是不可破解的。也就是说,从截获的密文或某些己知明文密文对,要确定密钥或任意明文在计算上是不可行的;②保密系统的安全性应依赖于密钥,而不是依赖于密码体制或算法本身的

细节的安全性;③加密解密算法实用于所有密钥空间中的元素;④系统应该易于实现和使用方便。

2.2 古典密码体制

古典密码是密码学的渊源,这些密码都是由基于字符的密码算法构成的,可用手工或机械操作实现加解密。不同的密码算法是字符之间互相代换或者是互相置换,好的密码算法是结合这两种方法,每次进行多次运算。虽然现在己经很少采用了,但原理还是没变。重要的变化是算法对位而不是对字符进行变换,实质上这只是字母表长度的改变。

古典密码的基本运算有两种代替(substitution)和换位(Transposition)。代替是指每一个或一组字符被另一个或另一个或一组字符所取代;换位是不改变明文字符,而按一定规则重新安排字符次序。实际的密码算法是执行一系列这两种基本运算的不同组合,即得到所谓的乘积密码。

比较有名的古典密码包括J恺撒(Kaiser)密码、维吉利亚(viewers)密码、维尔南(Velma)、普莱费厄(pl即fair)密码和希尔(Hill)密码等。

2.3 对称密码体制

对称密码体制[10]又叫私钥密码算法,是指能够从解密密钥中推算出加密密钥,反过来也成立。在大多数的对称密码体制中,加密密钥和解密密钥的,它要求发送者和接收者在通信之前协商一个安全的密钥,因此有时码也称为单钥密码。单钥密码体制的安全性主要取决于算法和密钥的长漏密钥就意味着任何人都能对

消息进行加、解密。

对称密码体制不仅可以用于数据加密,也可以用于消息认、证。但是码体制存在着严重的缺陷:在进行安全通信之前,通信的双方必须通过道商定和传送密钥,而在实际的通讯网中,通信双方很难确定一条合理通道;另外一个问题就是密钥的管理。在拥有大量用户的计算机通信网个相互进行保密通信的用户需要N(N 一1)/2个密钥;当N值比较大的钥管理的开销极大,密钥只能记录在计算机内存或外存上,这.本身就是全的。

分组密码一般的设计原则包括:

①分组长度n要足够大,使分组代替字母表中的元素个数2n足够大明文穷举攻击法奏效。

②密钥量要足够大(即置换子集中的元素足够多),尽可能消除弱密钥有密钥无特殊性可分析,以防止密钥穷举攻击奏效。但密钥又不能过长于密钥的管理。

③由密钥确定代替的算法要足够复杂,充分实现明文和密文的扩散没有简单的关系可循,要能抗击各种己知的攻击,如差分攻击和线性攻

④加密和解密运算简单,易于软件和硬件的快速实现。

⑤数据扩展。一般无数据扩散,在采用同态置换和随机化加密技术入数据扩展。

⑥差错传播尽可能地小。

为了抗击统计分析破译法,需要实现三条要求,Shannon曾建议采用扩散(Diffusion)和混淆(confusedly)法。所谓扩散,就是将明文及密钥的每一位数字的影响尽可能迅速地扩散到输出密文的较多个数字中,以便隐蔽明文数字的统计

特性。在理想情况下,明文的每一位bit和密钥的每一bit应影响密文的每一bit 即实现所谓的“完备性”。Sharman提出的“混淆”概念目的在于使作用于文明的密钥和密文之间的关系复杂化,使明文和密文之间、密文和密钥之间的统计相关性极小化,从而使统计分析攻击法不能奏效。扩散和混淆原则是设计分组密码的基本准则,到达良好的扩散和混淆效果是分组密码设计的核心问题Shannon还提出了“乘积”的方法,所谓“乘积密码”,是将若干个密码复合。例如,设有两个子密码T和S,我们先以T对明文进行加密,然后再以S对所得的结果进行加密,则乘积密码可表示为F二ST。利用这种方法常可将简单易于实现的密码组合成复杂的更为安全的密码。分组密码的特点是将明文消息编码后的数字序列在密钥的控制下变换成等长的数字序列。分组密码的输入输出序列长度预先己确定(一般二者相等),故从本质上看,这种密码可看作是字长为分组长度的数字序列的代换密码。

著名的数据加密标准(Data Encryption Standard,DES)是分组密码家族的一个成员,它作为世界范围的标准己经有20多年的历史了。其他比较有名的分组密码算法还有国际数据加密算法(IDEA)Ghost算法等。

2.3.1 DES (Data Encryption Standard)

数据加密标准DES(Data Encryption standard)算法由IBM公司开发,并被美国国家标准局困(NIST)于1977年2月采纳作为“非密级”应用的一个标准,此后, DES成为全世界使用最广泛的加密标准。DES是迄今为止最为广泛应用的一种加密算法,也是最具代表性的一种分组密码体制。DES对于推动密码理论的发展

和应用起了重大作用,掌握和了解这一算法的基本原理、设计思想、安全性分析等问题,对于研究分组密码理论和其实际应用具有重要意义。

DES是一种对二元数据进行加密的方法,数据分组长度为64位,密文分组长度也是64位,没有数据扩展。其算法的基本思想是:通过循环或迭代,将简单的基本运算(例如左移、右移、模2加法等)和变换(选择函数、置换函数)构造成数据流的非线性变换(加密变换或解密变换)。DES算法的数据流程的基本框架是固定的,通过密钥分解将一个实际上是56位 (二进制)(64位密钥去掉奇偶校验位,刚好是56位)的密钥分解成16个48位(二进制)的子密钥,每个子密钥控制一次循环或迭代。加密与解密的密钥和流程是完全相同的,区别仅仅是加密与解密使用子密钥序列的操作顺序刚好相反。DES算法在历史上曾发挥重要作用,但也存在以下问题:①DES密钥空间的规模256对实际安全而言太小。②DES的密钥存在弱密钥、半弱密钥和互补密钥。③DES里的所有计算,除去S盒,全是线性的。S盒的设计对密码算法的安全性至关重要。然而,美国国家安全局并没有公布S盒的设计原则,因此,有人怀疑S盒里隐藏了“陷门(trapdoors)”,如果是这样,美国国家安全局就能轻易地解密消息。由于DES的密钥空间小,针对DES算法进行穷举攻击就可以取得成1998年7月,电子前沿基金会(EFF)使用一台25万美元的电脑在56小时了DES密钥。1999年1月RSA数据安全会议期间,EFF通过遍布全世万台计算机的协同工作,用22小时巧分钟就宣告破解了一个DES的密外,关于DES 的攻击还有差分密码分析方法和线性密码分析方法。

2.3.2 AES(Advanced Encryption Standard)

从各方面来看,DES已走到了它生命的尽头,为了替代己经超龄服役DES算法,Nils于1997年1月开始了公开筛选DES替代者—高级加密标准(AES)的工作。其目的是为了确定一个非保密的、全球免费使用的分组密码算法,用于保护下一世纪政府的敏感信息,并希望成为秘密和公开部门的数据加密标准.最终,2000年10月2日,NIST宣布比利时的密码学家Joan Diemen 和Vincent Rijmen设计的“Roundel算法”最终获胜。

Roundel之所为能当选AES,主要是因为:

①运算速度快。在无论有无反馈模式的计算环境下的软硬件中,Rijndael表现出非常好的性能。

②对内存的需求非常低,使它很适合用于受限制的环境。

③算法可靠。使用非线性结构的S一盒,表现出有足够的安全余地。

④Irondale算法的设计策略是宽轨迹策略(Wide Trail Strategy),这种策略会有效抵抗差分分析和线性分析攻击。

⑤Irondale是一个分组迭代密码,被设计成128/192/256比特三种密匙标准可用于加密长度为128/192/256比特的分组,相应的轮数为10/12/14,分组长度和密钥长度设计灵活。

⑥密钥安装的时间很好,也具有很高的灵活性。

⑦操作简单,并可抵御时间和能量攻击,此外,它还有许多未被特的防御性能。由上可见,助deal汇聚了安全性能、效率、可实现性和灵活性等。

2.4 公钥密码体制

对称密码体制的特点是解密密钥与加密密钥相同或者很容易从加密密钥导出解密密钥。在对称密码体制中,加密密钥的暴露会使系统变得不安全。对称密码系统的一个严重缺陷是在任何密文传输之前,发送者和接收者必须使用一个安全信道预先商定和传送密钥。在实际的通讯网中,通信双方则很难确定一条合理的安全通道。

由Dime和Hellman首先引入的公钥密码体制克服了对称密码体制的缺点。它的出现是密码学研究中的一项重大突破,也是现代密码学诞生的标志之一。在公钥密码体制中,解密密钥和加密密钥不同,从一个难以计算出另一个,解密运算和加密运算可以分离。通信双方无须事先交换密钥就可建立起保密通信。公钥密码体制克服了对称密码体制的缺点,特别适用于计算机网络中的多用户通信,它大大减少了多用户通信所需的密钥量,节省了系统资源,也便于密钥管理。1978年Rivets,Shamir:和Adelman提出了第一个比较完善的公钥密码算法,这就是著名的RSA算法。自从那时起,人们基于不同的计算问题,提出了大量的公钥密码算法。比较重要的有RSA算法、Mermen- Hellman背包算法、Mealier算法、Enigmas 算法和椭圆曲线密码算法等。

设计公钥密码体制的关键是先要寻找一个合适的单向函数,大多数的公钥密码体制都是基于计算单向函数的逆的困难性建立的。例如,RSA体制就是典型的基于单向函数模型的实现。这类密码的强度取决于它所依据的问题的计算复杂性。值得注意的是,公钥密码体制的安全性是指计算安全性,而绝不是无条件安全性,

毕业设计(论文)-数据库加密系统的设计与实现

1 引言 随着计算机信息技术的蓬勃发展,作为信息采集、存储、处理和传输的媒体,计算机及网络应用逐步延伸到社会生活的方方面面。当人类越来越感受到计算机系统功能的强大,不得不感叹于信息技术带来的方便快捷的同时,各种忧虑也渐渐产生:已经习惯性依赖于计算机的人们离开它还能生存吗?信息战将对国防安全、军事领域产生什么影响?信息诈骗和其他信息犯罪将如何改变人们的日常生活? 这些问题都属于计算机信息安全的范畴。 起初,计算机系统的安全主要是指硬件的安全保护。随着信息所发挥的价值日益为人们所了解,人们的目光转移到在计算机系统中存储、传输的信息的安全,包括防止信息泄漏和非法慕改等。数据库集中存放和管理大量信息,其安全性对于整个计算机信息系统至关重要。为了保证数据安全,人们在不同层面运用了各种安全措施,这些防范措施分别可以在一定程度上防止某种安全威胁。但是,在操作系统、数据库和网络的层层防护之下,仍然无法保证数据库数据的安全。因为通常数据库中的数据最终是以文件形式存储在计算机上的,这些文件大部分是多个用户可读可写的,一旦网上黑客通过某种途径进入系统就可以直接读取数据文件或存储介质,从中窃取数据或利用非法软件篡改数据库文件内容。近几年,类似案件在世界范围内频繁出现。因此计算机信息安全人员和数据库开发商们不得不求助于另外一种安全措施一一加密技术。 1.1 课题现状 密码学是一门古老而深奥的学科,对一般人来说是非常陌生的。长期以来,只在很小的范围内使用,如军事、外交、情报等部门。计算机密码学是研究计算机信息加密、解密及其变换的科学,是数学和计算机的交叉学科,也是一门新兴的学科。随着计算机网络和计算机通讯技术的发展,计算机密码学得到前所未有的重视并迅速普及和发展起来。在国外,它已成为计算机安全主要的研究方向。 数据库系统的安全问题是信息系统安全的一个大问题。由于数据库系统中集中存储了大量的信息,而且数据库的最大特点是实现数据的共享,其中必然带来数据库的安全性问题。数据库中放置了组织、企业、个人的大量数据,其中许多数据可能是非常关键的、机密的或者涉及隐私的。例如军事秘密、国家机密、科研数据、市场分析、营销策略、销售计划、客户档案、医疗档案、银行储蓄数据等。数据拥有者往往只容许一部分人访问这些数据,如果数据库管理系统不能严格的保护数据库中的数据的数

文件加密与解密—Java课程设计报告

JAVA课程设计题目:文件的加密与解密 姓名: 学号: 班级: 日期:

目录 一、设计思路 (3) 二、具体实现 (3) 三、运行调试与分析讨论 (8) 四、设计体会与小结 (11) 五、参考文献 (12) 六、附录 (12)

一、设计思路 自从Java技术出现以业,有关Java平台的安全性用由Java技术发展所引发的安全性问题,引起了越来越多的关注。目前,Java已经大量应用于各个领域,研究Java的安全性对于更好地利用Java具有深远的意义。使用Java的安全机制设计和实现安全系统更具有重要的应用价值。 本课程设计,主要实践Java安全中的JCE模块,包括密钥生成,Cipher对象初始化、加密模式、填充模式、底层算法参数传递,也涉及文件读写与对象输入输出流。 二、具体实现 本系统通过用户界面接收三个参数:明文文件、密文文件、口令。采用DES加密算法,密码分组链(Cipher Block Chaining,CBC)加密模式,PKCS#5-Padding的分组填充算法。因为CBC涉及到底层算法参数的解密密钥的传递,所以将明文文件中的字节块以密封对象(Sealed Object)的方式加密后,用对象流输出到密文文件,这样就将密文、算法参数、解密密钥三都密封到一个对象中了。口令的hash值作为产生密钥的参数。设计流程图如下所示: 文件加密与解密设计流程图

本系统中,包含Default,Shares,SecretKey,EncAndDec四个包共6个类组成。定义的几个参数:MAX_BUF_SIZE为每次从文件中读取的字节数,也是内存缓冲区的大小;加密算法为DES;加密模式是密码分组链(CBC)模式;分组填充方式是PKCS#5Padding。包和类结构图如下所示: 本课程设计,包和类结构图: 以下为包中的类的方法实现说明 Package Shares类结构图

RSA加密解密的设计与实现

RSA加密解密的设计与实现

上海电力学院 《应用密码学》课程设计 题目: RSA加密解密的设计与实现 院系:计算机科学与技术学院 专业年级:级 学生姓名:李正熹学号: 3273 指导教师:田秀霞 1月 8日 目录

目录 1.设计要求 2.开发环境与工具 3.设计原理(算法工作原理) 4.系统功能描述与软件模块划分 5.设计核心代码 6.参考文献 7. 设计结果及验证 8. 软件使用说明 9. 设计体会 附录 1.设计要求

1 随机搜索大素数,随机生成公钥和私钥 2 用公钥对任意长度的明文加密 3 用私钥对密文解密 4 界面简洁、交互操作性强 2.开发环境与工具 Windows XP操作系统 Microsoft Visual C++ 6.0 1.创立rsa工程

2.在rsa工程中创立 3273 李正熹cpp文件 3.设计原理 RSA算法简介 公开密码算法与其它密码学完全不同,它是基于数学函数而不是基于替换或置换。与使用一个密钥的对称算法不同,公开密钥算法是非对称的,而且它使用的是两个密钥,包括用于加密的公钥和用于解密的私钥。公开密钥算法有RSA、Elgamal等。 RSA公钥密码算法是由美国麻省理工学院(MIT)的Rivest,Shamir和Adleman在1978年提出来的,并以她们的名字的有字母命名的。RSA是第一个安全、实用的公钥密码算法,已经成为公钥密码的国际标准,是当前应用广泛的公钥密码体制。

RSA的基础是数论的Euler定理,其安全性基于二大整数因子分解问题的困难性,公私钥是一对大素数的函数。而且该算法已经经受住了多年深入的密码分析,虽然密码分析者既不能证明也不能否定RSA的安全性,但这不恰恰说明该算法有其一定的可信度。 4.系统功能描述与软件模块划分 功能:

实验报告_密码学

信息安全实验报告 学号: 学生姓名: 班级:

实验三密码学实验 一、古典密码算法实验 一、实验目的 通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。 二、编译环境 运行windows 或linux 操作系统的PC 机,具有gcc(linux)、VC (windows)等C语言编译环境。 三、实验原理 古典密码算法历史上曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。下面介绍两种常见的具有代表性的古典密码算法,以帮助读者对密码算法建立一个初步的印象。 1.替代密码 替代密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文。例如:明文字母a、b、c、d ,用D、E、F、G做对应替换后形成密文。 替代密码包括多种类型,如单表替代密码、多明码替代密码、多字母替代密码、多表替代密码等。下面我们介绍一种典型的单表替代密码,恺撒(caesar)密码,又叫循环移位密码。它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代。它的加密过程可以表示为下面的函数:E(m)=(m+k) mod n 其中:m 为明文字母在字母表中的位置数;n 为字母表中的字母个数;k 为密钥;E(m)为密文字母在字母表中对应的位置数。例如,对于明文字母H,其在字母表中的位置数为8,设k=4,则按照上式计算出来的密文为L:E(8) = (m+k) mod n = (8+4) mod 26 = 12 = L

2.置换密码 置换密码算法的原理是不改变明文字符,只将字符在明文中的排列顺序改 变,从而实现明文信息的加密。置换密码有时又称为换位密码。 矩阵换位法是实现置换密码的一种常用方法。它将明文中的字母按照给的 顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中字母,从而 形成密文。例如,明文为attack begins at five,密钥为cipher,将明文按照每行 6 列的形式排在矩阵中,形成如下形式: a t t a c k b e g i n s a t f i v e 根据密钥cipher中各字母在字母表中出现的先后顺序,给定一个置换: 1 2 3 4 5 6 f = 1 4 5 3 2 6 根据上面的置换,将原有矩阵中的字母按照第 1 列,第 4 列,第 5 列,第 3 列, 第2列,第 6 列的顺序排列,则有下面形式: a a c t t k b i n g e s a I v f t e 从而得到密文:abatgftetcnvaiikse 其解密的过程是根据密钥的字母数作为列数,将密文按照列、行的顺序写出,再根据由密钥给出的矩阵置换产生新的矩阵,从而恢复明文。 四、实验内容和步骤 1、根据实验原理部分对替代密码算法的介绍,自己创建明文信息,并选择 一个密钥k,编写替代密码算法的实现程序,实现加密和解密操作。 2、根据实验原理部分对置换密码算法的介绍,自己创建明文信息,并选择一个密钥,编写置换密码算法的实现程序,实现加密和解密操作。 五、总结与思考 记录程序调试过程中出现的问题,分析其原因并找出解决方法。记录最终实现的程序执行结果。

计算机科学与技术专业毕业设计选题

计算机科学与技术专业毕业设计选题参考 一、毕业设计选题范围 计算机专业毕业设计选题范围包括:计算机应用(相当广泛的领域)、硬件与软件设计、程序设计理论和方法。具体范围包括: 1.数据通信技术与应用 2.多媒体技术与应用 3.计算机辅助教学软件 4.信息管理系统 5.数据库研究与应用 6.工业控制系统 7.网络实用软件 8.智能算法研究与应用 9.系统软件、工具分析及研究 10.程序设计理论及方法 11.计算机网络及应用、网络安全 12.智能仪器仪表设计 13.图像处理技术与应用 14.计算机仿真技术与应用 15.信息可视化技术与应用 16. 电子商务,电子政务 毕业设计地点可以在学校内、科学研究单位、公司、企业等,只要有研究、开发环境即可。时间一般要求在一个学期内完成。毕业设计原则上一人一题。 二、毕业设计选题参考 1.网络题库建立与考试系统的设计2.嵌入式计算机系统的设计 3.等级考试网上辅导系统4.网上自动答疑系统的实现 5.《***》课程自动组卷软件系统6.小局域网的组建方法 7.办公自动化系统的分析及编程实现8.利用汇编语言编写音乐程序 9.网络操作系统安全性能研究10.用户信息数据库加密 11.《***》课程远程学习网站12.机房自动计费系统 13.《***》网络课件设计与实现14.基于局域网的分布式数据采集系统 15.单片机多功能数字钟设计16.网站的设计、管理与维护 17.WWW浏览器软件设计18.路由器的配置仿真 19.教学质量自动评估系统的开发20.机房供电欠压过压自动断电系统 21.自动应答留言对讲式语音门铃22.基于单片机的智能电度表 23.利用Delphi设计人员管理系统数据库24.JA V A网络程序设计 25.电脑故障辅助诊断系统26.机房管理系统 27.数据采集系统设计28.单片机定时系统 29.网络通信程序的简单实现30.公司工资管理系统 31.远程信息采集监控系统32.学生成绩管理系统 33.基于PCI总线的温度测试系统34.虚拟电子商务系统 35.基于USB的图形扫描信息处理系统36.基于CAN的高性能MCU控制解决方案 37.基于ISA总线的采样控制卡38.单片机实验系统研究与开发 39.Windows环境下集散系统串行通信实验研究40.12位A/D、D/A采集控制显示卡 41.基于ACCEES数据库的个人信息管理系统42.科研信息管理系统 43.图书信息管理系统44.教学软件中的人工智能方法 45.单片机反汇编软件设计46.网络性能的实时监控 47.嵌入式实时操作系统设计48.数据、信息可视化方法与实现 49.算法实现过程可视化研究50.网络测试系统

微机原理课程设计加密解密算法

加密解密程序设计 1设计算法概述 本设计主要采用对密码符号的ASCII码进行变换和反变换来实现加密和解密。将ASCII码从33到126(除控制字符外)的字符分成2部分:ASCII码从33到63的字符为第一部分,ASCII码在64到128之间的字符为第二部分。每个字符加密后均变为2个字符。 第一部分通过查表法加密和解密,先建立62字节的密码表。加密时,因为一个字符加密后变为两个字符,所以ASCII码从33到63的31个字符密码对应62个字符,即62个字节的数据,计算待加密字符ASCII码对33的偏移量,在密码表中,以这个偏移量乘以2为偏移量的字节数据和下一字节数据就是对应密码;解密时,在表中找到相同字型数据时,计算它对表首的偏移,再加33,就是解密后的字符的ASCII码。 第二部分通过判断字符ASCII码的特性来加密和解密。先判断输入字符的ASCII码是否为3的倍数,若是则对应密码的高位字节为35 ('#'),低位字节为本身ASCII码减一;再判断输入字符的ASCII码是否为5的倍数,若是则对应密码的高位字节为37(‘%’),低位字节为本身ASCII码减3;最后判断输入字符的ASCII码是偶数还是寄数,偶数的密码高字节为38(‘&’),低字节为本身ASCII码加1,奇数的密码高字节为39(‘'’),低字节为本身ASCII码加3 。解密的时候先判断高字节数据,若高字节数据位35、37、38、39则舍去高位字节,低位字节分别进行相应的解密,就得到原码。 2主程序设计 2.1主程序的功能 主程序主要是人机交互部分,提示输入信息和功能选择。程序开始,提示用

户选择相应的功能:按E、e调用加密子程序,进入加密状态,按R、r调用解密子程序,进入解密状态,按Esc退出程序,若输入错误则再次提示输入功能选择。 2.2主程序流程图 主程序流程图如图1所示。 图1 主程序流程图

RSA算法实验报告

实验二非对称密码算法RSA 一、实验目的 通过实际编程了解非对称密码算法RSA的加密和解密过程,加深对非对称密码算法的认识。 二、实验环境 运行Windows或Linux操作系统的PC机,具有JDK1.6版本的Java语言编译环境。 三、实验内容和步骤 1. 对RSA算法的理解 RSA算法(公开密钥算法)的原理: (1).选择两个大的素数p和q(典型情况下为1024位) (2).计算n = p * q 和z =(p-1)*(q-1). (3).选择一个与z互素的数,将它称为d (4).找到e,使其满足e*d = 1 mod z 提前计算出这些参数以后,我们就可以开始执行加密了。首先将明文分成块,使得每个明文消息P落在间隔0*P

基于RSA加密算法毕业设计

摘要 数据通信是依照一定的通信协议,利用数据传输技术在两个终端之间传递数据信息的一种通信方式和通信业务。随着数据通信的迅速发展而带来了数据失密问题。信息被非法截取和数据库资料被窃的事例经常发生,在日常生活中信用卡密码被盗是常见的例子。所以数据加密成为十分重要的问题,它能保证数据的安全性和不可篡改性。RSA加密算法以它难以破译的优点,被广泛的使用在电子商务和VPN中。 本文针对非对称性加密RSA算法,采用软件Visual C++6.0进行程序编写。根据模乘法运算和模指数运算的数学原理所编写的程序在进行测试后,能够通过输入两个素数进行运算从而实现明文与密文之间的转换,然后通过对公钥和私钥的管理,对所传输的数据进行保护,让数据只能由发送者和接收者阅读,以达到数据通信中数据无法被他人破译的目的。 关键词:RSA算法,数据通信,加密, 解密。 Data communication of the RSA encryption algorithm in the Design

and Implementation Teacher:Chen Fei student:Lu Hui Abstract Data communications in accordance with certain communication protocols, the use of data transmission technology in the transmission of data between two terminals as a means of communication of information and communication business. With the rapid development of data communications and has brought the issue of data compromise. Unlawful interception of information and database information on frequent instances of theft, credit card in their daily lives stolen passwords is a common example. Therefore, data encryption has become a very important issue, it can ensure data security and can not be tamper with nature. RSA encryption algorithm to the merits of it difficult to decipher, was widely used in the e-commerce and VPN. In this paper, asymmetric RSA encryption algorithm, the use of software for Visual C + +6.0 programming. According to Die multiplication and modular exponentiation by the mathematical principles in the preparation of test procedures can be adopted for the importation of two prime numbers and computing in order to achieve explicit conversion between the ciphertext, and then through a public key and private key management, for the transmission of data protection, so that data can only be made by the sender and the recipient to read, in order to achieve data communications data can not be the purpose of deciphering the others. Keywords: RSA algorithms, data communication, encryption, decryption. 目录

加密解密课程设计

兰州商学院陇桥学院工学系课程设计报告 课程名称: Java 设计题目:加密与解密 系别:工学系 专业 (方向):信息管理与信息系统 年级、班:2012级(2)班 学生姓名:费亚芬 学生学号: 208

指导教师:张鑫 2014年7 月 1日 目录 一、系统开发的背景................................. 错误!未定义书签。 二、系统分析与设计................................. 错误!未定义书签。(一)............................................. 系统功能要求错误!未定义书签。(二)......................................... 系统模块结构设计错误!未定义书签。 三、系统的设计与实现............................... 错误!未定义书签。(一)图形用户界面模块 ........................... 错误!未定义书签。(二)加密操作模块 ............................... 错误!未定义书签。 (三)解密操作模块................................ 错误!未定义书签。(四)文件保存模块 ............................... 错误!未定义书签。

(五)文件选择模块 ............................... 错误!未定义书签。 四、系统测试....................................... 错误!未定义书签。(一)测试加密..................................... 错误!未定义书签。(二)测试选择加密文件............................. 错误!未定义书签。(三)测试生成加密文件............................. 错误!未定义书签。(四)测试浏览加密文件............................. 错误!未定义书签。(五)测试解密文件................................. 错误!未定义书签。 五、总结........................................... 错误!未定义书签。 六、附件(代码、部分图表) ......................... 错误!未定义书签。

数据加密实验报告

实验报告 课程:计算机保密_ _ 实验名称:数据的加密与解密_ _ 院系(部):计科院_ _ 专业班级:计科11001班_ _ 学号: 201003647_ _ 实验日期: 2013-4-25_ _ 姓名: _刘雄 _ 报告日期: _2013-5-1 _ 报告评分:教师签字:

一. 实验名称 数据加密与解密 二.运行环境 Windows XP系统 IE浏览器 三.实验目的 熟悉加密解密的处理过程,了解基本的加密解密算法。尝试编制基本的加密解密程序。掌握信息认证技术。 四.实验内容及步骤 1、安装运行常用的加解密软件。 2、掌握加解密软件的实际运用。 *3、编写凯撒密码实现、维吉尼亚表加密等置换和替换加解密程序。 4、掌握信息认证的方法及完整性认证。 (1)安装运行常用的加解密软件,掌握加解密软件的实际运用 任务一:通过安装运行加密解密软件(Apocalypso.exe;RSATool.exe;SWriter.exe等(参见:实验一指导))的实际运用,了解并掌握对称密码体系DES、IDEA、AES等算法,及非对称密码体制RSA等算法实施加密加密的原理及技术。 ?DES:加密解密是一种分组加密算法,输入的明文为64位,密钥为56位,生成的密文为64位。 ?BlowFish:算法用来加密64Bit长度的字符串或文件和文件夹加密软件。 ?Gost(Gosudarstvennyi Standard):算法是一种由前苏联设计的类似DES算法的分组密码算法。它是一个64位分组及256位密钥的采用32轮简单迭代型加密算法. ?IDEA:国际数据加密算法:使用128 位密钥提供非常强的安全性; ?Rijndael:是带有可变块长和可变密钥长度的迭代块密码(AES 算法)。块长和密钥长度可以分别指定成128、192 或256 位。 ?MISTY1:它用128位密钥对64位数据进行不确定轮回的加密。文档分为两部分:密钥产生部分和数据随机化部分。 ?Twofish:同Blowfish一样,Twofish使用分组加密机制。它使用任何长度为256比特的单个密钥,对如智能卡的微处理器和嵌入在硬件中运行的软件很有效。它允许使用者调节加密速度,密钥安装时间,和编码大小来平衡性能。 ?Cast-256:AES 算法的一种。 (同学们也可自己下载相应的加解密软件,应用并分析加解密过程) 任务二:下载带MD5验证码的软件(如:https://www.360docs.net/doc/b315765660.html,/downloads/installer/下载(MySQL):Windows (x86, 32-bit), MSI Installer 5.6.11、1.5M;MD5码: 20f788b009a7af437ff4abce8fb3a7d1),使用MD5Verify工具对刚下载的软件生成信息摘要,并与原来的MD5码比较以确定所下载软件的完整性。或用两款不同的MD5软件对同一文件提取信息摘要,而后比较是否一致,由此可进行文件的完整性认证。

(完整版)公开密钥加密算法RSA的Matlab实现毕业设计

公开密钥加密算法RSA的Matlab实现 [摘要]RSA算法是基于数论的公开密钥加密算法,它已经成为现在最流行的公钥加密算法和数字签名算法之一。其算法的安全性基于数论中大素数分解的困难性,所以RSA公钥密码体制算法的关键是如何产生大素数和进行大指数模幂运算。本文首先介绍了RSA 公开密钥加密算法的数学原理,并介绍了几种流行的产生大素数的算法。然后用matlab具体实现公钥加密算法RSA的加密和解密,从而实现了数据的安全传输。 [关键词] RSA算法;加密;素数

The Realization of RSA Algorithm for Public Key Encryption Based on Matlab (Grade 07,Class 3,Major electronics and information engineering ,Communication engineering Dept.,Tutor: [abstract]:The algorithm is based on the theory of RSA public key encryption algorithm, it has become the most popular public key encryption algorithm and digital signature algorithm of one. The safety of the algorithm based on number theory cuhk the difficulty of prime decomposition, so the RSA public key cryptography algorithms is key to how to produce large prime Numbers DaZhi and transmit power operation. This paper first introduced the RSA public key encr -yption algorithm of mathematical theory, and introduces several popular produce large prime Numbers of the algorithm. Then use matlab RSA public key encryption algorithm re -alization of encryption and decryption is realized, and the safety of the data trans -mission. [Key words]:RSA algorithm; encryption; prime number

java文件加密解密课程设计

软件学院 课程设计报告书 课程名称面向对象程序设计 设计题目文本文档的加密与解密 专业班级财升本12-1班 学号 1220970120 姓名王微微 指导教师徐娇月 2013年 1 月

1 设计时间 2013年1月14日-2013年1月18日 2 设计目的 面向对象程序设计是一门实践性很强的计算机专业基础课程。通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。 3 设计任务 对文件进行加密解密 4 设计内容 4.1 需求分析 (1)给定任意一个文本文件,进行加密,生成另一个文件。 (2)对加密后的文件还原。 4.2 总体设计 4.2.1 包的描述 导入了java.awt; java.awt.event; java.io; javax.swing等包。 4.2.2 类的描述 Myframe类;E1类。其中Myframe类继承Frame类;可以扩展Frame的功能并且可以实例化的多种功能,这个类也实现了ActionListener这个接口,它是Java中关于事件处理的一个接口,ActionListener用于接收操作事件的侦听器接口。对处理操作事件感兴趣的类可以实现此接口,而使用该类创建的对象可使用组件的addActionListener 方法向该组件注册。在发生操作事件时,调用该对象的actionPerformed 方法。 4.3 页面设计

图4.3-1 显示页面 代码实现: addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } });

网络安全RSA算法的实现实验报告

网络安全基础教程报告 题目:RSA加密算法 学号:1108040205 专业及班级:计网1102班 姓名:雪飞 日期:2013.11.26

一、RSA算法介绍与应用现状 RSA公开密钥加密算法自20世纪70年代提出以来,已经得到了广泛认可和应用。发展至今,电子安全领域的各方面已经形成了较为完备的国际规。RSA作为最重要的公开密钥算法,在各领域的应用数不胜数。RSA在硬件方面,以技术成熟的IC应用于各种消费类电子产品。 RSA在软件方面的应用,主要集中在Internet上。加密连接、数字签名和数字证书的核心算法广泛使用RSA。日常应用中,有比较著名的工具包Open SSL(SSL,Security Socket Layer,是一个安全传输协议,在Internet上进行数据保护和身份确认。Open SSL是一个开放源代码的实现了SSL及相关加密技术的软件包,由加拿大的Eric Yang等发起编写的。Open SSL应用RSA实现签名和密钥交换,已经在各种操作系统得到非常广泛的应用。另外,家喻户晓的IE浏览器,自然也实现了SSL协议,集成了使用RSA技术的加密功能,结合MD5和SHA1,主要用于数字证书和数字签名,对于习惯于使用网上购物和网上银行的用户来说,几乎天天都在使用RSA技术。 RSA更出现在要求高度安全稳定的企业级商务应用中。在当今的企业级商务应用中,不得不提及使用最广泛的平台j2ee。事实上,在j2se的标准库中,就为安全和加密服务提供了两组API:JCA和JCE。JCA (Java Cryptography Architecture)提供基本的加密框架,如证书、数字签名、报文摘要和密钥对产生器;JCA由几个实现了基本的加密技术功能的类和接口组成,其中最主要的是java.security包,此软件包包含的是一组核心的类和接口,Java中数字签名的方法就集中在此软件包中。JCE(Java Cryptography Extension) 在JCA的基础上作了扩展,JCE也是由几个软件包组成,其中最主要的是javax.crypto包,此软件包提供了JCE加密技术操作API。javax.crypto中的Cipher类用于具体的加密和解密。在上述软件包的实现中,集成了应用RSA算法的各种数据加密规(RSA算法应用规介绍参见:.rsasecurity./rsalabs/node.asp?id=2146 ,这些API部支持的算法不仅仅只有RSA,但是RSA是数字签名和证书中最常用的),用户程序可以直接使用java标准库中提供的API 进行数字签名和证书的各种操作。 二、算法原理 1.选择两个不同的大素数p、q (目前两个数的长度都接近512bit是安全的); 2. 计算n = p*q。 3. 计算n的欧拉函数t=(p-1)(q-1)。 4. 选择整数e作为公钥,使e与t互素,且1

DES加密解密课程设计报告

D E S加密解密课程设计报 告 Prepared on 22 November 2020

成都信息工程学院课程设计报告 DES算法加密与解密的设计与实现课程名称:密码算法程序设计 学生姓名: 学生学号: 专业班级: 任课教师: XX年 XX 月 XX 日

目录

1背景 DES算法概述 DES(Data Encryption Standard)是由美国IBM公司于20世纪70年代中期的一个密码算(LUCIFER)发展而来,在1977年1月15日,美国国家标准局正式公布实施,并得到了ISO的认可,在过去的20多年时间里,DES被广泛应用于美国联邦和各种商业信息的保密工作中,经受住了各种密码分析和攻击,有很好的安全性。然而,目前DES算法已经被更为安全的Rijndael算法取代,但是DES加密算法还没有被彻底的破解掉,仍是目前使用最为普遍的对称密码算法。所以对DES的研究还有很大价值,在国内DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路收费站等领域被广泛应用,以此来实现关键的数据保密,如信用卡持卡人的PIN 码加密传输,IC卡与POS机之间的双向认证、金融交易数据包的MAC校验等,均用到DES算法。 DES算法是一种采用传统的代替和置换操作加密的分组密码,明文以64比特为分组,密钥长度为64比特,有效密钥长度是56比特,其中加密密钥有8比特是奇偶校验,DES的加密和解密用的是同一算法,它的安全性依赖于所用的密钥。它首先把需要加密的明文划分为每64比特的二进制的数据块,用56比特有效密钥对64比特二进制数据块进行加密,每次加密可对64比特的明文输入进行16轮的替换和移位后,输出完全不同的64比特密文数据。由于DES算法仅使用最大为64比特的标准算法和逻辑运算,运算速

密码学实验报告(AES,RSA)

华北电力大学 实验报告| | 实验名称现代密码学课程设计 课程名称现代密码学 | | 专业班级:学生姓名: 学号:成绩: 指导教师:实验日期:

[综合实验一] AES-128加密算法实现 一、实验目的及要求 (1)用C++实现; (2)具有16字节的加密演示; (3)完成4种工作模式下的文件加密与解密:ECB, CBC, CFB,OFB. 二、所用仪器、设备 计算机、Visual C++软件。 三. 实验原理 3.1、设计综述 AES 中的操作均是以字节作为基础的,用到的变量也都是以字节为基础。State 可以用4×4的矩阵表示。AES 算法结构对加密和解密的操作,算法由轮密钥开始,并用Nr 表示对一个数据分组加密的轮数(加密轮数与密钥长度的关系如表2所示)。AES 算法的主循环State 矩阵执行1 r N 轮迭代运算,每轮都包括所有 4个阶段的代换,分别是在规范中被称为 SubBytes(字节替换)、ShiftRows(行位移变换)、MixColumns(列混合变换) 和AddRoundKey ,(由于外部输入的加密密钥K 长度有限,所以在算法中要用一个密钥扩展程序(Keyexpansion)把外部密钥 K 扩展成更长的比特串,以生成各轮的加密和解密密钥。最后执行只包括 3个阶段 (省略 MixColumns 变换)的最后一轮运算。 表2 AES 参数 比特。

3.2、字节代替(SubBytes ) AES 定义了一个S 盒,State 中每个字节按照如下方式映射为一个新的字节:把该字节的高4位作为行值,低4位作为列值,然后取出S 盒中对应行和列的元素作为输出。例如,十六进制数{84}。对应S 盒的行是8列是4,S 盒中该位置对应的值是{5F}。 S 盒是一个由16x16字节组成的矩阵,包含了8位值所能表达的256种可能的变换。S 盒按照以下方式构造: (1) 逐行按照升序排列的字节值初始化S 盒。第一行是{00},{01},{02},…,{OF}; 第二行是{10},{l1},…,{1F}等。在行X 和列Y 的字节值是{xy}。 (2) 把S 盒中的每个字节映射为它在有限域GF(k 2)中的逆。GF 代表伽罗瓦域,GF(82) 由一组从0x00到0xff 的256个值组成,加上加法和乘法。 ) 1(] [2)2(3488++++= x x x x X Z GF 。{00}被映射为它自身{00}。 (3) 把S 盒中的每个字节记成),,,,,,,,(012345678b b b b b b b b b 。对S 盒中每个字节的每位 做如下变换: i i i i i i c b b b b b i b ⊕⊕⊕⊕⊕='++++8mod )7(8mod )6(8mod )5(8mod )4( 上式中i c 是指值为{63}字节C 第i 位,即)01100011(),,,,,,,,(012345678=c c c c c c c c c 。符号(')表示更新后的变量的值。AES 用以下的矩阵方式描述了这个变换: ?? ? ?? ? ? ? ? ? ??? ? ????????????+???????????????????????????????????????? ????????????=??????????????????????????0110001111111000011111000011111000011111100011111100011111100011111100017654321076543210b b b b b b b b b b b b b b b b 最后完成的效果如图:

网络安全毕业设计 (1)

北京市西城经济科学大学毕业设计题目:SSL协议的分析实现及应用 姓名:李军 学号: K009271012 学院:北京市西城经济科学大学专业:计算机网络与安全管理 指导教师:万缨 2011年5 月30 日

本人声明 声明内容如下:我声明,本设计及其研究工作是由本人在导师指导下独立完成的,在完成设计时所利用的一切资料均已在参考文献中列出。

北京市西城经济科学大学计算机系毕业设计 摘要 目前,随着Internet的快速发展,互联网上的信息安全越来越引起人们的关注。特别是近年来网上银行、电子商务和电子政务的发展,如何保证传输信息,特别是交易信息的保密性、完整性已成为继续解决的问题。安全套接层协议(Security Socket Layer Protocol , 简称SSL)是Internet上进行保密通信的一个安全协议。 关键词:加密算法,数据传输,SSL协议,SSL实现,SSL缺陷

SSL协议的分析及实现 目录: 1 .引言 (1) 1.1 SSL协议概述 (1) 1.2 SSL协议的体系结构 (1) 2 .SSL协议工作原理 (2) 3 .SSL记录协议 (3) 4. SSL握手协议 (4) 5. SSL协议的实现 (6) 5.1 OpenSSL初始化 (6) 5.2选择会话协议 (6) 5.3创建会话环境 (6) 5.4 建立SSL套接字 (7) 5.5 完成SSL握手 (7) 5.6 进行数据传输 (7) 5.7 结束SSL通信 (7) 6. SSL协议的缺陷 (8) 6.1密钥管理问题 (8) 6.2加密强度问题 (8) 6.3数字签名问题 (8) 6.4必须建立在可靠连接基础上 (8) 6.5多方通信表现欠佳 (8) 7.结束语 (9) 参考文献 (10)

RSA课程设计

理工大学 课程设计 题目:RSA加密算法 院、系:计算机科学与技术学院网络工程系 班级: 学号: 姓名: 同组成员: 指导教师: 成绩: 2014年06月27日

一.系统设计的目标 通过运用RSA加密算法,实现对信息的加密和解密,掌握RSA算法的实现原理以及实现过程。 二.系统原理: RSA是在1978年,由美国麻省理工学院(MIT)的Rivest、Shamir和Adleman在题为《获得数字签名和公开钥密码系统的方法》的论文中提出的。它是一个基于数论的非对称(公开钥)密码体制,是一种分组密码体制。其名称来自于三个发明者的首字母。它的安全性是基于大整数素因子分解的困难性,而大整数因子分解问题是数学上的著名难题,至今没有有效的方法予以解决,因此可以确保RSA算法的安全性。RSA系统是公钥系统的最具有典型意义的方法,大多数使用公钥密码进行加密和数字签名的产品和标准使用的都是RSA算法。 RSA算法是第一个既能用于数据加密也能用于数字签名的算法,因此它为公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对R SA 密钥,其中之一是密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册,人们用公钥加密文件发送给个人,个人就可以用私钥解密接受。为提高强度,RSA密钥至少为500位长,一般推荐使用1024位。 该算法基于下面的两个事实,这些事实保证了RSA算法的安全有效性: 1)已有确定一个数是不是质数的快速算法; 2)尚未找到确定一个合数的质因子的快速算法。 目前,日益激增的电子商务和其它因特网应用需求使公钥体系得以普及,这些需求量主要包括对服务器资源的访问控制和对电子商务交易的保护,以及权利保护、个人隐私、无线交易和容完整性(如保证新闻报道或股票行情的真实性)等方面。公钥技术发展到今天,在市场上明显的发展趋势就是PKI与操作系统的集成,PKI是“Public Key Infrastructure”的缩写,意为“公钥基础设施”。公钥体制广泛地用于CA认证、数字签名和密钥交换等领域。公钥加密算法中使用最广的是RSA。RSA算法研制的最初理念与目标是努力使互联网安全可靠,旨在解决DES算法秘密密钥的利用公开信道传输分发的难题。而实际结果不但很好地解决了这个难题;还可利用RSA来完成对电文的数字签名以抗对电文的否认与抵赖;同时还可以利用数字签名较容易地发现攻击者对电文的非法篡改,以保护数据信息的完整性。目前为止,很多种加密技术采用了RSA算法,该算法也已经在互联网的许多方面得以广泛应用,包括在安全接口层(SSL)标准(该标准是网络浏览器建立安全的互联网连接时必须用到的)方面的应用。此外,RSA加密系统还可应用于智能IC卡和网络安全产品。 RSA算法的编程思路

相关文档
最新文档