密 码 学 的 发 展 满分!.doc_第1页
密 码 学 的 发 展 满分!.doc_第2页
密 码 学 的 发 展 满分!.doc_第3页
密 码 学 的 发 展 满分!.doc_第4页
密 码 学 的 发 展 满分!.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程论文题 目 密 码 学 的 发 展 一、引言1.研究背景近几年来,信息安全成为全社会的需求,信息安全保障成为国际社会关注的焦点。而密码学是信息安全的核心,应用密码学技术是实现安全系统的核心技术。应用密码学研究如何实现信息的机密性、完整性和不可否认性。随着信息系统及网络系统的爆炸性增长,形形色色的安全威胁严重阻碍了当前的信息化进程,因此,亟待使用密码学来增强系统的安全性。而密码学课程设计正是为这方面做出了具体的实践。2.开发意义密码技术是一门古老而十分有用的技术,随着计算机通信技术的迅猛发展,大量的敏感信息通过公共设施或计算机网络进行交换。特别是Internet的广泛应用、电子商务和电子政务的迅速发展,越来越多的信息需要严格的保密,如:银行账号、个人隐私等。正是这种对信息的机密性和真实性的需求,密码学才逐成为比较热门的学科。在当今密码学不仅用于国家军事安全上,人们已经将重点更多的集中在实际应用,在你的生活就有很多密码,例如为了防止别人查阅你文件,你可以将你的文件加密;为了防止窃取你钱物,你在银行账户上设置密码,等等。随着科技的发展和信息保密的需求,密码学的应用将融入了你的日常生活。二、密码学的发展史1.古典密码世界上最早的一种密码产生于公元前两世纪。是由一位希腊人提出的,人们称之为棋盘密码,原因为该密码将26个字母放在55的方格里,i,j放在一个格子里,具体情况如下表所示 123451abcde2fghijk3lmnop4qrstu5vwxyz这样,每个字母就对应了由两个数构成的字符,是该字母所在行的标号,是列标号。如c对应13,s对应43等。如果接收到密文为 :43 15 13 45 42 15 32 15 43 43 11 22 15 ,则对应的明文即为secure message。 另一种具有代表性的密码是凯撒密码。它是将英文字母向前推移k位。如k=5,则密文字母与明文与如下对应关系 a b c d e f g h i j k l m n o p q r s t u v w x y z F G H I J K L M N O P Q R S T U V W X Y Z A B C D E 于是对应于明文secure message,可得密文为XJHZWJRJXXFLJ。此时,k就是密钥。为了传送方便,可以将26个字母一一对应于从0到25的26个整数。如a对1,b对2,y对25,z对0。这样凯撒加密变换实际就是一个同余式 :cm+k mod 26 。其中m是明文字母对应的数,c是与明文对应的密文的数。 随后,为了提高凯撒密码的安全性,人们对凯撒密码进行了改进。选取k,b作为两个参数,其中要求k与26互素,明文与密文的对应规则为 :ckm+b mod 26 。可以看出,k=1就是前面提到的凯撒密码。于是这种加密变换是凯撒野加密变换的推广,并且其保密程度也比凯撒密码高。 以上介绍的密码体制都属于单表置换。意思是一个明文字母对应的密文字母是确定的。根据这个特点,利用频率分析可以对这样的密码体制进行有效的攻击。方法是在大量的书籍、报刊和文章中,统计各个字母出现的频率。例如,e出现的次数最多,其次是t,a,o,I等等。破译者通过对密文中各字母出现频率的分析,结合自然语言的字母频率特征,就可以将该密码体制破译。 鉴于单表置换密码体制具有这样的攻击弱点,人们自然就会想办法对其进行改进,来弥补这个弱点,增加抗攻击能力。法国密码学家维吉尼亚于1586年提出一个种多表式密码,即一个明文字母可以表示成多个密文字母。其原理是这样的:给出密钥K=k1k2kn,若明文为M=m1m2mn,则对应的密文为C=c1c2cn。其中Ci=(mi+ki) mod 26。例如,若明文M为data security,密钥k=best,将明文分解为长为4的序列data security,对每4个字母,用k=best加密后得密文为 :C=EELT TIUN SMLR 。从中可以看出,当K为一个字母时,就是凯撒密码。而且容易看出,K越长,保密程度就越高。显然这样的密码体制比单表置换密码体制具有更强的抗攻击能力,而且其加密、解密均可用所谓的维吉尼亚方阵来进行,从而在操作上简单易行。该密码可用所谓的维吉尼亚方阵来进行,从而在操作上简单易行。该密码曾被认为是三百年内破译不了的密码,因而这种密码在今天仍被使用着。 古典密码的发展已有悠久的历史了。尽管这些密码大都比较简单,但它在今天仍有其参考价值。 2.近代密码1834年,伦敦大家的实验物理学教授惠斯顿发明了电机,这是通信向机械化、电气化跃进的开始,也是密码通信能够采用在线加密技术提供了前提条件。前面已经讲过,密码技术的成果首先被用于战争,下面的例子就是一个明证。1914年第一次世界大战爆发,德俄相互宣战。在交战过程中,德军破译了俄军第一军经给第二军的电文,从中得知,第一军的给养已经中断。根据这一重要情报,德军在这次战役中取得了全胜。这说明当时交战双方已开展了密码战,又说明战争刺激了密码的发展。 1920年,美国电报电话公司的弗纳姆发明了弗纳姆密码。共原理是利用电传打字机的五单位码与密钥字母进行模2相加。如若信息码(明文)为11010,密钥码为11101,则模2相加得00111即为密文码。接收时,将密文码再与密钥码模2相加得信息码(明文)11010。 这种密码结构在今天看起来非常简单,但由于这种密码体制第一次使加密由原来的手工操作进入到由电子电路来实现,而且加密和解密可以直接由机器来实现,因而在近代密码学发展史上占有重要地位。随后,美国人摩波卡金在这种密码基础上设计出一种一次一密体制。该体制当通信业务很大时,所需的密钥量太过庞大,给实际应用带来很多困难。之后,这种一次一密制又有了进一步改进,但历史事实证明,这种密码体制是不安全的,在太平洋战争中日本使用的九七式机械密码就属于这一种。1940年,美国陆军通信机关破译了这种密码。在中途岛海战中,日本海军大将山本五十六因密码电报被美国截获破译而被击毙在飞机上。 3.现代密码学直到1949年香农发表了一篇题为“保密系统的通信理论”的著名论文,该文首先将信息论引入了密码,从而把已有数千年历史的密码学推向了科学的轨道,奠定了密码学的理论基础。该文利用数学方法对信息源、密钥源、接收和截获的密文进行了数学描述和定量分析,提出了通用的秘密钥密码体制模型。 需要提出的是,由于受历史的局限,七十年代中期以前的密码学研究基本上是秘密地进行,而且主要应用于军事和政府部门。密码学的真正蓬勃发展和广泛的应用是从七十年代中期开始的。1977年美国国家标准局颁布了数据加密标准DES用于非国家保密机关。该系统完全公开了加密、解密算法。此举突破了早期密码学的信息保密的单一目的,使得密码学得以在商业等民用领域的广泛应用,从而给这门学科以巨大的生命力。 在密码学发展的进程中的另一件值得注意的事件是,在1976年,美国密码学家迪菲和赫尔曼在一篇题为“密码学的新方向”一文中提出了一个崭新的思想,不仅加密算法本身可以公开,甚至加密用的密钥也可以公开。但这前不意味着保密程度的降低。因为如果加密密钥和解密密钥不一样。而将解密密钥保密就可以。这就是著名的公钥密码体制。若存在这样的公钥体制,就可以将加密密钥象电话簿一样公开,任何用户当它想经其它用户传送一加密信息时,就可以从这本密钥薄中查到该用户的公开密钥,用它来加密,而接收者能用只有它所具有的解密密钥得到明文。任何第三者不能获得明文。1978年,由美国麻省理工学院的里维斯特,沙米尔和阿德曼提出了RSA公钥密码体制,它是第一个成熟的、迄今为止理论上最成功的公钥密码体制。它的安全性是基于数论中的大整数因子分解。该问题是数论中的一个困难问题,至今没有有效的算法,这使得该体制具有较高的保密性。 按照人们对密码的一般理解,密码是用于将信息加密而不易破译,但在现代密码学中,除了信息保密外,还有另一方面的要求,即信息安全体制还要能抵抗对手的主动攻击。所谓主动攻击指的是攻击者可以在信息通道中注入他自己伪造的消息,以骗取合法接收者的相信。主动攻击还可能窜改信息,也可能冒名顶替,这就产生了现代密码学中的认证体制。该体制的目的就是保证用户收到一个信息时,他能验证消息是否来自合法的发送者,同时还能验证该信息是否被窜改。在许多场合中,如电子汇款,能对抗主动攻击的认证体制甚至比信息保密还重要。 三、密码体制概述1.密码算法和密钥密码算法也叫密码函数,是用于加密和解密的数学函数。通常情况下,有两个相关的函数,一个用作加密,另一个用作解密。如果算法本身是保密的,这种算法称为受限制算法。受限制的密码算法不可能进行质量控制或标准化,每个用户组织必须有他们自己的唯一的算法,这样的阻止不可能采用流行的硬件或软件产品。但是,窃听者却可以买到这些流行产品并学习其中的算法,进而破解密码。尽管有一定的缺陷,但是受限制的算法对低密级的应用来说还是很流行的。2.密码学体制分类现今的密码体制的技术分为私用密钥加密技术(对称加密)和公开密钥加密技术(非对称加密)。加密算法的组织结构图如图四、概要设计1.对称密码体制及其算法(1)对称密码对称算法又称为传统的加密算法或私钥加密算法,它是一种传统密码体制。在对称加密系统中,加密密钥能够从解密密钥中推算出来,反之也是一样。对称算法要求发送者和接受者在通信之前,协商一个共同的密钥,这是对称密码体制的最大特点,即在大多数对称算法中,加密与解密的密钥是相同的。(2)DES概述对称密码体制中较为典型的算法主要是DES加密算法,DES的中文释义为数据加密标准,该算法是由美国国家标准局提出,主要应用于银行业的电子资金转帐(EFT)领域。DES算法的加密由四部分完成,分别为:初始置换函数IP,子密钥Ki及获取,密码函数F,逆置换函数IP-1 。DES的分组长度是64位(比特)。初始置换函数IP接受长度为64位的明文输入,逆置换函数IP-1输出64位的密文。在子密钥的获取过程中,通过密钥置换获取从K1到K16共16个子密钥。子密钥用于16次的迭代运算中。DES的加解密算法完全相同,只需将子密钥的顺序相反应用即可。(3)DES算法的安全性DES算法的安全性不是很高,利用计算机Internet技术就可以用穷举法找到加密的密钥。早在1993年,两位美国人给出了一个非常详细的密钥搜索机器的设计方案,它是基于并行的密钥搜索芯片,此种芯片每秒能测试5107个密钥,用5760个这样的芯片组成的系统平均1.5天即可找到密钥。由此可见该算法是较为不安全的。2.非对称密码体制及其算法(1)非对称密码非对称密码体制也称公钥加密技术,该技术就是针对私钥密码体制的缺陷被提出来的。在公钥加密系统中,加密和解密是相对独立的,也就是说加密和解密会使用两把不同的密钥,加密密钥(公开密钥)向公众公开,任何人都可以使用,解密密钥(秘密密钥)只有收信人自己知道,非法的使用者根据公开的加密密钥无法推算出解密密钥,因此其可称为公钥密码体制。(2)RSA概述RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在美国麻省理工学院开发的。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。RSA数据加密体制可以简单描述如下:(1) 生成两个大素数p和q;(2) 计算这两个大素数的乘积n=pq;(3) 计算小于n并且与n互素的整数的个数,即欧拉函数(n)=(p-1)(q-1);(4) 选择一个随机的数e满足1e(n),并且e和(n)互素;(5) 计算de=1 mod(n);(6) 将p和q保密,公开n和e;利用RSA加密时,明文以分组的方式加密,即每一个分组的比特数应该小于log2n。加密明文x时,利用公钥(e,n)计算密文c=xe mod n就可以得到相应的密文。解密时,通过计算明文x=cd mod n就可以得到相应的明文。在RSA系统中,(e,n)构成加密密钥,即公钥,(d,n)构成解密密钥,即私钥。(3)RAS算法的安全性事实上,RSA算法的安全性是依赖于大素数分解的困难性假定,之所以为假定是由于至今为止还没有人在数学上证明从c和n计算m需要对n进行因式分解。到目前为止RSA算法的一些变种算法已经被证明等价于大素数的分解问题,但无论如何,分解n还是最直接的攻击方式。因此,模数n必须选大一些,这样才能防止密码被破译。五、详细设计1密码算法原理基于DES和RSA的混合加密系统采用了两种密码算法体质,在二者的基础上编写的这一混合加密系统。我们利用二者的各自优点,采用对称加密系统加密文件,采用公开密钥加密系统加密“加密文件”的密钥,这就是混合加密系统,较好地解决了运算速度问题和密钥分配管理问题。该系统的加密特点较为符合实际,有较强的安全性。它的原理是首先通过素数的生成算法,得到两个大的素数P和Q,利用RSA加密算法中密钥生成算法,生成一把公开密钥和私有密钥,其中将RSA公钥通过某种方式公布出去,而把RSA私钥保存。然后,通过线性同余法产生一个64位的随机数作为DES的会话密钥,对明文进行DES加密和解密;最后,是利用RSA的公钥对会话密钥进行RSA加密,并将会话密钥进行加密保存,并与DES加密后的密文合并。接收方对传送过来的密文用RSA生成的私钥进行解密。2.功能模块设计系统主要分为加密核心代码模块、文件读取模块、文件存储模块、帮助模块四个模块,每个模块所对应的功能如下: 加/解密核心算法模块该模块主要实现了DES算法与RSA算法的加密与解密部分。 文件读取模块该模块主要实现了将文本文档中的内容读出并将其赋给系统中的某些指定的控件。 文件存储模块该模块与文件存储模块功能相反,它主要实现了将控件中的值存入指定的文本文档中。 帮助模块该模块主要为用户提供了系统加密与解密原理的介绍。其中加/解密核心代码模块是该系统的核心部分,其他三个模块均是围绕该模块进行设计和编写的,因此我们在后面着重对此模块进行描述。3.系统模块图4.加、解密核心算法(1) DES算法的实现DES算法主要为整个系统提供了DES加密支持,它是整个加密和解密系统的基础的一部分。首先,设计该模块时需要完全遵循DES算法,DES算法需要用到初始IP置换表、逆初始IP置换表、选择置换PC-1表、选择置换PC-2表、为选择函数E、置换函数P以及S盒,而这些均为常量,因此需要在程序中进行定义,这里考虑用const静态常量定义其相应的函数表。其次DES算法在加密的过程中是以二进制的形式进行运算的,因此需要将待加密或解密的字符串转化成二进制的数组进行操作,因此在程序中需要定义相应的函数实现,同样待加密的明文以及待解密的密文都需要进行查表运算,则也需要在程序中定义相应的函数实现查表运算的操作。在定义了所需的函数后就需要对相应的明文或是密文进行加密和解密运算,这里需要定义一个标准DES操作的函数对字符串进行操作。由于加密过程和解密过程是互为逆过程,因此这里只需要定义一个函数来完成加密和解密的过程,在函数中设定一个接口,用来判断此时调用函数是实现解密过程还是解密过程,这样就不会造成内存泄露等问题。(2) RSA算法的实现RSA算法主要为整个混合加密提供了RSA加密技术的支持,它是整个系统核心算法的另一部分。RSA首先需要产生两个随即的大素数,我们这里考虑了素数的长度可以由使用系统的用户自己设定,设定后调用函数生成大素数。其次,需要根据生成的大素数计算相应的密钥,这里的密钥包括公钥e,私钥d以及模n。将生成的密钥导出存在一个文本文档中,以便使用。然后选择所需要加密或解密的文件,系统根据文件的类型自动分配加密或解密的算法对其进行操作。在进行加密或解密操作时算法是较为类似的,都是进行了一个模运算的操作,只是计算的系数有所不同,加密时的系数为公钥e,而解密时用的则是私钥d。因此在设计RSA算法时只需要编写一个函数,在程序调用此函数时传不同的参数即可实现加密与解密的功能。(3) 混合加密设计混合加密算法利用了两种加密算法对文件进行加密,该算法的主要思想如下:首先,通过素数的生成算法,得到两个大的素数p和q,利用RSA加密算法中密钥生成算法,生成一把公开密钥和私有密钥,其中将rsa公钥通过某种方式公布出去,而把RSA私钥保存。然后,通过线性同余法产生一个64位的随机数作为DES的会话密钥,对明文进行DES加密和解密。最后,是利用RSA的公钥对会话密钥进行RSA加密,并将会话密钥进行加密保存,并与DES加密后的密文合并。接收方对传送过来的密文用RSA生成的私钥进行解密。(4) 功能函数的定义a) DES算法部分关键函数 标准DES加密/解密函数static void SDES(char Out8, char In8, const PSubKey pSubKey, bool Type);函数共带有四个形参,Out8为输出字符串,In8为输入字符串,pSubKey为密钥,Type是用来判断调用标准加(解)密函数时是为了加密还是解密。 设置密钥函数static void SetKey(const char* Key, int len);函数共有两个形参,Key表示初始密钥,len表示密钥的长度。 设置子密钥函数static void SetSubKey(PSubKey pSubKey, const char Key8); 函数共有两个参数,pSubKey是PSubKey类型的密钥,Key8是用于一个分组中的密钥。值得说明的是PSubKey类型是之前在程序中以结构体形式定义的bool类型的数据类型,其目的用于规定标准密钥的长度。 查表变换函数static void Transform(bool *Out, bool *In, const char *Table, int len); 函数共有四个形参,分别为查表前的输入bool *In、查表后的输出bool *Out、选择的表const char *Table以及返回值长度int len。b) RSA算法部分 获取随即大素数函数 GetPrime(BigInt &P,UINT len) 函数有两个参数,分别为大数P,以及大数的长度。 RSA加密函数 Encrypt(char *Out,char *In,UINT len,char *KeyStr,char *ModStr) 函数共有五个参数,分别为输出加密后的结果Out,输入加密前的文件In,加密文件的长度len,密钥Key以及模n的值n。 RSA解密函数Decrypt(char *Out,char *In,UINT len,char *KeyStr,char *ModStr)return Encrypt(Out,In,len,KeyStr,ModStr); RSA解密函数的参数与加密函数的参数完全相同,且返回值为加密函数的返回值。c) 混合加密算法部分 加密函数Encrypt(char *OutFile,char *InFile,char *RsaKeyStr,c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论