加密解密原理

加密解密原理
加密解密原理

加密类型CA:

对称:加密解密使用同一个密钥

公钥:一对儿密钥,公钥,私钥,其中一个加密,只能用另一个解密;公钥隐含于私钥中,可以提取出来,并公开出去;

公钥加密是用于加密,私钥加密是用来生成验证的;其实是加密的MD5校验码;

公钥加密速度慢,因此,真正加密时只是加密数据完整性验证码;

单向加密算法:MD5算法,用于生成128位校验码,用于校验数据完整性,原数据1字节变化,生成的密文面目全飞,无规律且不能反向还原数据;

公钥私钥加解密原理:

1.首先,我们用单向加密算法将一个数据包用MD5算法算出校验码,MD5校验码很短,只有128位,然后再用自已私钥加密这段MD5校验码,紧跟在数据包后面,对方再用公钥解密这段被私钥加密的校验码,即验证了来源是合法的;

2.其次,我们用MD5算法计算数据包得出校验码,与用公钥解密的校验码对比,来确定数据的完整性;

公钥密码实现认证和用于保密的区别。最主要的不同在于加解密密钥的使用上,当用公钥密码实现保密功能时,是用接收方的公钥对消息进行加密,接收方用自己的私钥对消息进行解密;而当用公钥密码实现认证功能时,是用发送方的私钥对消息进行加密,接收方收到之后,用发送方的公钥恢复出明文消息M。由于只有发送方A拥有私钥,因此只要接收方B能够正确解密出密文C,就可以认为消息的确是由发送方A发出的。这样就实现了对发送方的身份的认证。不过,这种简单的公钥认证模型的问题是:第一,这种方式只能对发送端进行认证;第二,由于攻击者也可以知道A的公钥,因此攻击者也可以解密出密文消息C,也就是说,这里只能实现认证能力,而无法实现保密能力。如果要同时实现保密和认证功能,需要对消息进行两次加密。

简单讲解加密技术

简单讲解加密技术 加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。 加密技术包括两个元素:算法和密钥。算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解密的一种算法。在安全保密中,可通过适当的钥加密技术和管理机制来保证网络的信息通信安全。 什么是加密技术呢?加密技术是电子商务采取的主要安全保密措施,是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术包括两个元素:算法和密钥。算法是将普通的文本(或者可以理解的信息)与一窜数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的一种算法。在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通讯安全。密钥加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。相应地,对数据加密的技术分为两类,即对称加密(私人密钥加密)和非对称加密(公开密钥加密)。对称加密以数据加密标准(DES,Data Enc ryption Standard)算法为典型代表,非对称加密通常以RSA(Rivest Shamir Ad 1eman)算法为代表。对称加密的加密密钥和解密密钥相同,而非对称加密的加密密钥和解密密钥不同,加密密钥可以公开而解密密钥需要保密。 加密技术的种类:对称加密(私人密钥加密),非对称加密(公开密钥加密),单项加密。 对称加密:对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DNS的加密性好,而且对计算机功能要求也没有那么高。IDEA加密标准由PGP(Pretty Good Privacy)系统使用。 对称加密的种类:DES(数据加密的标准)使用56位的密钥。AES:高级加密标准。3 DES:三圈加密标准它作为现在加密算法的标准。 非对称加密:即公钥加密,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对

RSA加密算法加密与解密过程解析

RSA加密算法加密与解密过程解析 1.加密算法概述 加密算法根据内容是否可以还原分为可逆加密和非可逆加密。 可逆加密根据其加密解密是否使用的同一个密钥而可以分为对称加密和非对称加密。 所谓对称加密即是指在加密和解密时使用的是同一个密钥:举个简单的例子,对一个字符串C做简单的加密处理,对于每个字符都和A做异或,形成密文S。 解密的时候再用密文S和密钥A做异或,还原为原来的字符串C。这种加密方式有一个很大的缺点就是不安全,因为一旦加密用的密钥泄露了之后,就可以用这个密钥破解其他所有的密文。 非对称加密在加密和解密过程中使用不同的密钥,即公钥和私钥。公钥用于加密,所有人都可见,私钥用于解密,只有解密者持有。就算在一次加密过程中原文和密文发生泄漏,破解者在知道原文、密文和公钥的情况下无法推理出私钥,很大程度上保证了数据的安全性。 此处,我们介绍一种非常具有代表性的非对称加密算法,RSA加密算法。RSA 算法是1977年发明的,全称是RSA Public Key System,这个Public Key 就是指的公共密钥。 2.密钥的计算获取过程 密钥的计算过程为:首先选择两个质数p和q,令n=p*q。 令k=?(n)=(p?1)(q?1),原理见4的分析 选择任意整数d,保证其与k互质 取整数e,使得[de]k=[1]k。也就是说de=kt+1,t为某一整数。

3.RSA加密算法的使用过程 同样以一个字符串来进行举例,例如要对字符串the art of programming 进行加密,RSA算法会提供两个公钥e和n,其值为两个正整数,解密方持有一个私钥d,然后开始加密解密过程过程。 1. 首先根据一定的规整将字符串转换为正整数z,例如对应为0到36,转化后形成了一个整数序列。 2. 对于每个字符对应的正整数映射值z,计算其加密值M=(N^e)%n. 其中N^e表示N的e次方。 3. 解密方收到密文后开始解密,计算解密后的值为(M^d)%n,可在此得到正整数z。 4. 根据开始设定的公共转化规则,即可将z转化为对应的字符,获得明文。 4.RSA加密算法原理解析 下面分析其内在的数学原理,说到RSA加密算法就不得不说到欧拉定理。 欧拉定理(Euler’s theorem)是欧拉在证明费马小定理的过程中,发现的一个适用性更广的定理。 首先定义一个函数,叫做欧拉Phi函数,即?(n),其中,n是一个正整数。?(n)=总数(从1到n?1,与n互质整数) 比如5,那么1,2,3,4,都与5互质。与5互质的数有4个。?(5)=4再比如6,与1,5互质,与2,3,4并不互质。因此,?(6)=2

汇编加密解密

目录 一.设计目标及目的 (3) 1.1主界面 (3) 1.2设计要求 (3) 1.3菜单栏说明 (4) 1.4显示目录下的文件 (4) 1.5加密文件 (5) 1.6原文件与加密文件 (5) 参考文献: (6) 1.7系统结构设计 (7) 二.设计的意义及代码 (7) 2.1 小结 (7) 2.2 程序代码 (8) 三.实验心得 (14)

一.设计目标及目的 功能: 1、按指定文件名读取文件。 2、使用算法对读取的文件进行加密。 3、加密文件写入磁盘。 设计目的: 1、学生增进对汇编语言的认识,加强用汇编语言编程的能力。 2、使学生了解和掌握汇编语言程序设计过程、方法及其实现,为以后微机原理课程的学习打下良好基础。 3、进一步掌握屏幕输出显示的设计方法。 1.1主界面 程序运行主界面如图所示。 1.2设计要求 1、巩固和加深学生对汇编语言课程基本知识的理解和掌握。 2、学会查阅和汇编语言相关的规范、手册等技术资料。 3、能正确地绘制和使用程序流程图。

1.3菜单栏说明 d显示当前目录文件名 t显示文件内容(提示:filename:键入文件全名,若该文件不存在,则提示:file not found!;若该文件存在,显示该文件内容。) s加密文件内容(提示:键入文件全名,若该文件不存在,则提示:error!若该文件存在,则提示键入加密或解密的KEY,KEY为小于等于255) 注:加密解密使用同一方法,且文件加密后会自动退出菜单! q退出主菜单。 1.4显示目录下的文件

1.5加密文件 1.6原文件与加密文件原文件: 加密后:

参考文献: 沈美明等《IBM-PC汇编语言程序设计》清华大学出版社,2001.8第二版沈美明《IBM-PC汇编语言程序设计实验教程》清华大学出版社,1992.9第一版 杨路明汇编语言程序设计中南大学出版社出版 杨秀文80x86汇编语言程序设计教程清华大学出版社 《微型计算机原理及应用》第四版周明德清华大学出版社

加密狗的概述与破解原理

加密狗的概述与破解原理 加密狗的概述: 加密狗是外形酷似U盘的一种硬件设备,正名加密锁,后来发展成如今的一个软件保护的通俗行业名词,"加密狗"是一种插在计算机并行口上的软硬件结合的加密产品(新型加密狗也有usb口的)。一般都有几十或几百字节的非易失性存储空间可供读写,现在较新的狗内部还包含了单片机。软件开发者可以通过接口函数和软件狗进行数据交换(即对软件狗进行读写),来检查软件狗是否插在接口上;或者直接用软件狗附带的工具加密自己EXE文件(俗称"包壳")。这样,软件开发者可以在软件中设置多处软件锁,利用软件狗做为钥匙来打开这些锁;如果没插软件狗或软件狗不对应,软件将不能正常执行。 加密狗通过在软件执行过程中和加密狗交换数据来实现加密的.加密狗内置 单片机电路(也称CPU),使得加密狗具有判断、分析的处理能力,增强了主动的反解密能力。这种加密产品称它为"智能型"加密狗.加密狗内置的单片机里包含有专用于加密的算法软件,该软件被写入单片机后,就不能再被读出。这样,就保证了加密狗硬件不能被复制。同时,加密算法是不可预知、不可逆的。加密算法可以把一个数字或字符变换成一个整数,如DogConvert(1)=12345、DogConver t(A)=43565。 加密狗是为软件开发商提供的一种智能型的软件保护工具,它包含一个安装在计算机并行口或USB 口上的硬件,及一套适用于各种语言的接口软件和工具软件。加密狗基于硬件保护技术,其目的是通过对软件与数据的保护防止知识产权被非法使用。 加密狗的工作原理: 加密狗通过在软件执行过程中和加密狗交换数据来实现加密的.加密狗内置 单片机电路(也称CPU),使得加密狗具有判断、分析的处理能力,增强了主动的反解密能力。这种加密产品称它为"智能型"加密狗.加密狗内置的单片机里包含有专用于加密的算法软件,该软件被写入单片机后,就不能再被读出。这样,就保证了加密狗硬件不能被复制。同时,加密算法是不可预知、不可逆的。加密算法可以把一个数字或字符变换成一个整数,如DogConvert(1)=12345、DogConver t(A)=43565。下面,我们举个例子说明单片机算法的使用。比如一段程序中有这样一句:A=Fx(3)。程序要根据常量3来得到变量A的值。于是,我们就可以把原程序这样改写:A=Fx(DogConvert(1)-12342)。那么原程序中就不会出现常量3,而取之以DogConvert(1)-12342。这样,只有软件编写者才知道实际调用的常量是3。而如果没有加密狗,DogConvert函数就不能返回正确结果,结果算式A=F x(DogConvert(1)-12342)结果也肯定不会正确。这种使盗版用户得不到软件使用价值的加密方式,要比一发现非法使用就警告、中止的加密方式更温和、更隐蔽、

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

一、DES加密及解密算法程序源代码: #include usingnamespacestd; conststaticcharIP_Table[]={//IP_Table置换 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 }; conststaticcharFinal_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 }; conststaticcharS_Box[8][64]={ //s_box /*S1*/

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, 10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4, 3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14}, /*S5*/ {2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9, 14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6, 4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14, 11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3}, /*S6*/ {12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11,

加密技术及密码破解实验报告

第九章、实验报告 实验一、设置Windows启动密码 一、实验目的:利用Windows启动密码保存重要文件。 二、实验步骤: 1、在Windows XP系统中选择开始——运行,在打开输入框中“syskey.exe”,点击确定,打开“保证Windows XP账户数据库的安全”对话框。 2、单击【更新】,打开【启动密码】对话框,然后输入密码,在【确认】文本框中再次输入密码,单击【确定】

实验二、为word文档加密解密 一、实验目的:保护数据的安全 二、实验步骤: 1、打开一个需要加密的文档,选择【工具】——【选项】——【安全性】然后输入想要设置打开文件时所需的密码 2、单击【高级(A)】打开加密类型对话框,选中【加密文档属性】复选框,单击【确定】。

3、打开文件的【确认密码】对话框,输入打开文件时需要的密码,单击【确定】,随即打开【确认密码】对话框,输入密码。 4、保存文件后,重新打开Word文档,打开【密码】,输入打开文件所需的密码,单击【确定】输入修改的密码,单击【确定】 破解word密码 (1)安装Advanced Office Password Recovery软件,安装完成后打开需要破解的word 文档,进行暴力破解,结果如图所示: 实验三、使用WinRAR加密解密文件

一.实验目的:加密文件,保证文件的安全性。 二.实验步骤: 1、在需要加密的文件夹上右击,选中【添加到压缩文件】打开【压缩文件名和参数】 2、选中【压缩文件格式】组合框中的【RAR】并在【压缩选项】中选中【压缩后删除源文件】然后切换到【高级】,输入密码,确认密码。 3、关闭对话框,单击确定,压缩完成后,双击压缩文件,系统打开【输入密码对话框】 破解WinRAR加密的文件 (1)安装Advanced RAR Password Recovery软件,打开WinRAR加密文件,进行暴力破解,获得密码。结果如图:

RSA加密算法的基本原理

RSA加密算法的基本原理 1978年RSA加密算法是最常用的非对称加密算法,CFCA 在证书服务中离不了它。但是有不少新来的同事对它不太了解,恰好看到一本书中作者用实例对它进行了简化而生动的描述,使得高深的数学理论能够被容易地理解。我们经过整理和改写特别推荐给大家阅读,希望能够对时间紧张但是又想了解它的同事有所帮助。 RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名。RSA以它的三个发明者Ron Rivest,Adi Shamir,Leonard Adleman的名字首字母命名,这个算法经受住了多年深入的密码分析,虽然密码分析者既不能证明也不能否定RSA的安全性,但这恰恰说明该算法有一定的可信性,目前它已经成为最流行的公开密钥算法。 RSA的安全基于大数分解的难度。其公钥和私钥是一对大素数(100到200位十进制数或更大)的函数。从一个公钥和密文恢复出明文的难度,等价于分解两个大素数之积(这是公认的数学难题)。 RSA的公钥、私钥的组成,以及加密、解密的公式可见于下表: 可能各位同事好久没有接触数学了,看了这些公式不免一头雾水。别急,在没有正式讲解RSA加密算法以前,让我们先复习一下数学上的几个基本概念,它们在后面的介绍中要用到: 一、什么是“素数”? 素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整数的乘积。例如,15=3*5,所以15不是素数;又如,12=6*2=4*3,所以12也不是素数。另一方面,13除了等于13*1以外,不能表示为其它任何两个整数的乘积,所以13是一个素数。素数也称为“质数”。 二、什么是“互质数”(或“互素数”)? 小学数学教材对互质数是这样定义的:“公约数只有1的两个数,叫做互质数。”这里所说的“两个数”是指自然数。 判别方法主要有以下几种(不限于此): (1)两个质数一定是互质数。例如,2与7、13与19。 (2)一个质数如果不能整除另一个合数,这两个数为互质数。例如,3与10、5与26。(3)1不是质数也不是合数,它和任何一个自然数在一起都是互质数。如1和9908。(4)相邻的两个自然数是互质数。如15与16。 (5)相邻的两个奇数是互质数。如49与51。 (6)大数是质数的两个数是互质数。如97与88。 (7)小数是质数,大数不是小数的倍数的两个数是互质数。如7和16。 (8)两个数都是合数(二数差又较大),小数所有的质因数,都不是大数的约数,这两个数是互质数。如357与715,357=3×7×17,而3、7和17都不是715的约数,

加密解密软件的设计与实现

课程设计任务书 2010—2011学年第二学期 专业:计算机科学与技术学号:080101010 姓名:刘海坤 课程设计名称:计算机网络课程设计 设计题目:加密解密软件的设计与实现 完成期限:自2011 年 6 月21 日至2011 年 6 月26 日共 1 周 设计目的: 本程序设计所采用的就是DES算法,同时利用Java的GUI编程,生成文本对话框,对文件的路径进行选择、提供密钥框、加密和解密按钮。 功能要求:根据DES算法,设计加密解密软件来为各种文件加密解密。 一、设计的任务:根据设计整体需求,本人负责窗体的设计与实现和目标文件 的导入模块。 二、进度安排: 三、主要参考资料: [1] 谢希仁.计算机网络教程.北京: 人民邮电出版社,2006. [2] 耿祥义.Java2使用教程:清华大学出版社,2006. [3] 方敏,张彤.网络应用程序设计.西安:电子科技大学出版社,2005. [4] 黄超.Windows下的网络编程.北京:人民邮电出版社,2003. 指导教师(签字):教研室主任(签字): 批准日期:年月日

摘要 随着计算机的应用和网络技术的不断发展,网络间的通讯量不断的加大,人们的个人信息、网络间的文件传递、电子商务等方面都需要大力的保护,文件加密技术也就随之产生。文件的加密主要是由加密算法实现,加密算法有多种,常见的有RSA、DES、MD5等。本程序设计对文件的加密使用的是DES加密算法。 DES是分块加密的。DES用软件进行解码需要用很长时间,而用硬件解码速度非常快,1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密,而且需要12个小时的破解才能得到结果。所以,当时DES被认为是一种十分强壮的加密方法。但今天,只需二十万美元就可以制造一台破译DES的特殊的计算机,所以现在 DES 对要求“强壮”加密的场合已经不再适用了。 Java语言具有简单、安全、可移植、面向对象、健壮、多线程、体系结构中立、解释执行、高性能、分布式和动态等主要特点。利用Java语言中秘密密钥工厂对DES算法的支持,使程序实现文件加密、解密两大功能更简单。 本程序设计所采用的就是DES算法。同时利用Java的GUI编程,生成文本对话框,对文件的路径进行选择、提供密钥框、加密和解密按钮。 使用本程序可以对txt,word等多种文件进行加密解密,使用便捷实用,功能完善,满足了用户对文件安全性的需求。 关键词:JA V A ,DES,加密,解密。

set加解密过程

3.4.5 SE丁协议的加解密过程 1。加密过程 首先,甲方要产生一个数字签名来向乙方证明信息确实是他发出的。他需要执行以 下步骤: ①将所发送信息通过哈希算法,形成信息摘要。 ②使用RSA算法,用私人签名密钥加密信息摘要,形成数字签名。 其次,甲方需要加密信息,使得它在网上传输时没有人能读懂它。 ③甲方通过软件,随机生成对称密钥,作大信息量加密之用,SET缺省的对称密钥 算法是DES o ④甲方用对称密钥加密所要发送的信息(即明文)、数字签名和证书。发送证书的目 的是为了乙方可从证书中得到公开签名密钥,以解开甲方的数字签名。 ⑥到目前为止,甲方可安全地发送信息了,同时也证明了他的身份。但为了使乙方 能读懂这些信息,甲方还需将对称密钥送给乙方。甲方用乙方的公开密钥加密该对称密钥,形成所谓的数字信封。最后甲方将数字信封和加密信息一同发给乙方。 2.解密过程 ①乙方用自己的私人密钥交换密钥将数字信封打开,取出对称密钥。 ②乙方用对称密钥解密信息,得到明文信息、数字签名和甲方的公开签名密钥(从 甲方的证书中获得)。 ③乙方用甲方的公开签名密钥解密数字签名,得到信息摘要。 3.验证过程 到目前为止,乙方还不知道收到的信息是否确实来自甲方,为了证实是甲方发送的信息,乙方还要完成以下步骤: ①将得到的明文信息进行哈希运算,得到新的信息摘要。 ②比较新的信息摘要和原信息摘要(上述解密过程中得到的),如果两者一致,说明 收到的信息确实来自拥有与证书中公开签名密钥成对的私人签名密钥一方,而且信息是完整的。一旦乙方将证书送到发证机构CA认证,就可确定甲方的真实身份和证书是否有效。 3.4.6 SE丁协议分析 SET是基于信用卡的安全支付协议,用于保证信息的机密性、交易方身份的认证和信息的完整性。 (1)信息的机密性 在SET协议中,传输的信息都进行了加密处理,以保证信息的机密性。DES中SET 协议中默认的对称加密算法,用于保护敏感的金融数据;商用数据隐蔽设备CDMF(Commercial Data Mashing Facility)是另一种对称加密算法,用于SET中收单行和持卡者的信息保护它以DES为底层加密算法,采用40位密钥代替DES的64位密钥。为了保证信用卡信息不被商家非法获取,SET采用双重数据签名技术,以提供订购信息和支付消息的机密性,使商家只能看到订购信息,不能看到用户的信用卡信息,而银行只能看到信用卡信息,不能看到订购信息。 (2)数据的完整性 SET使用数字签名来保证数据的完整性。SET使用安全Hash算法SHA-1( Secure Hash Algorithm -1)及RSA来实现数字签名。SHA-1对于任意长度的消息都生成一个160位的消息摘要。如果消息中有一位发生变化,则消息摘要中的数据也会发生变化,两个不同的消息的摘要完全相同的概率几乎是零。 SET协议中还应用双重签名来保证信息的完整性。双重签名的目的是连接两个不同

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.系统功能描述与软件模块划分 功能:

几种常用的数据加密技术

《Network Security Technology》Experiment Guide Encryption Algorithm Lecture Code: 011184 Experiment Title:加密算法 KeyWords:MD5, PGP, RSA Lecturer:Dong Wang Time:Week 04 Location:Training Building 401 Teaching Audience:09Net1&2 October 10, 2011

实验目的: 1,通过对MD5加密和破解工具的使用,掌握MD5算法的作用并了解其安全性; 2,通过对PGP加密系统的使用,掌握PGP加密算法的作用并了解其安全性; 3,对比MD5和PGP两种加密算法,了解它们的优缺点,并总结对比方法。 实验环境: 2k3一台,XP一台,确保相互ping通; 实验工具:MD5V erify, MD5Crack, RSA-Tools,PGP8.1 MD5加密算法介绍 当前广泛存在有两种加密方式,单向加密和双向加密。双向加密是加密算法中最常用的,它将明文数据加密为密文数据,可以使用一定的算法将密文解密为明文。双向加密适合于隐秘通讯,比如,我们在网上购物的时候,需要向网站提交信用卡密码,我们当然不希望我们的数据直接在网上明文传送,因为这样很可能被别的用户“偷听”,我们希望我们的信用卡密码是通过加密以后,再在网络传送,这样,网站接受到我们的数据以后,通过解密算法就可以得到准确的信用卡账号。 单向加密刚好相反,只能对数据进行加密,也就是说,没有办法对加密以后的数据进行解密。这有什么用处?在实际中的一个应用就是数据库中的用户信息加密,当用户创建一个新的账号或者密码,他的信息不是直接保存到数据库,而是经过一次加密以后再保存,这样,即使这些信息被泄露,也不能立即理解这些信息的真正含义。 MD5就是采用单向加密的加密算法,对于MD5而言,有两个特性是很重要的,第一是任意两段明文数据,加密以后的密文不能是相同的;第二是任意一段明文数据,经过加密以后,其结果必须永远是不变的。前者的意思是不可能有任意两段明文加密以后得到相同的密文,后者的意思是如果我们加密特定的数据,得到的密文一定是相同的。不可恢复性是MD5算法的最大特点。 实验步骤- MD5加密与破解: 1,运行MD5Verify.exe,输入加密内容‘姓名(英字)’,生成MD5密文;

AES算法加解密原理及安全性分析

AES算法加解密原理及安全性分析 刘帅卿 一、AES算法简介 AES算法是高级加密标准算法的简称,其英文名称为Advanced Encryption Standard。该加密标准的出现是因为随着对称密码的发展,以前使用的DES(Data Encryption Standard数据加密标准)算法由于密钥长度较小(56位),已经不适应当今数据加密安全性的要求,因此后来由Joan Daeman和Vincent Rijmen提交的Rijndael算法被提议为AES的最终算法。 AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations)和替换(substitutions)输入数据。加之算法本身复杂的加密过程使得该算法成为数据加密领域的主流。 二、AES算法的基本概念 1、有限域(GF) 由于AES算法中的所有运算都是在有限域当中进行的,所以在理解和实现该算法之前先得打好有限域这一基石才行。通常的数学运算都是在实数域中进行,而AES算法则是在有限域中进行,我们可以将有限域看成是有确定边界范围的正整数集合,在该集合当中,任意两个元素之间的运算结果都仍然落在该集合当中,也即满足运算封闭性。 那么如何才能保证这样的“有限性”(也即封闭性)呢? GF(2w)被称之为伽罗华域,是有限域的典型代表。随着w(=4,8,16,…)的取值不同所形成的有限域范围也不同。AES算法中引入了GF域当中对数学运算的基本定义:将两数的加减法定义为两者的异或运算;将两数的乘法定义为多

数据加密技术分析及应用_郭敏杰

第21卷第5期2005年10月 赤峰学院学报(自然科学版) Journal of Chifeng College(Natural Science Edition) Vol.21No.5 Oct.2005数据加密技术分析及应用 郭敏杰 (内蒙古伊泰丹龙药业有限责任公司,内蒙古 赤峰 024000) 摘 要:数据加密技术是实现网络安全的关键技术之一.本文系统地介绍了当前广泛使用的几种数据加密技术:对称密钥加密、公开密钥加密以及混合式加密,对它们进行了客观上的分析并介绍了在网络及其他方面的应用状况. 关键词:数据加密;密钥;网络安全 中图分类号:TP309.7文献标识码:A文章编号:1673-260X(2005)05-0041-01 伴随微机的发展与应用,数据的安全越来越受到高度的重视.数据加密技术就是用来保证信息安全的基本技术之一.数据加密实质是一种数据形式的变换,把数据和信息(称为明文)变换成难以识别和理解的密文并进行传输,同时在接收方进行相应的逆变换(称为解密),从密文中还原出明文,以供本地的信息处理系统使用.加密和解密过程组成为加密系统,明文和密文统称为报文. 1 对称密钥加密算法 对称式密钥加密技术是指加密和解密均采用同一把秘密钥匙,而且通信双方必须都要获得这把钥匙,并保持钥匙的秘密.当给对方发信息时,用自己的加密密钥进行加密,而在接收方收到数据后,用对方所给的密钥进行解密. 对称密钥加密有许多种算法,但所有这些算法都有一个共同的目的———以可还原的方式将明文(未加密的数据)转换为暗文.暗文使用加密密钥编码,对于没有解密密钥的任何人来说它都是没有意义的.由于对称密钥加密在加密和解密时使用相同的密钥,所以这种加密过程的安全性取决于是否有未经授权的人获得了对称密钥.这就是它为什么也叫做机密密钥加密的原因.希望使用对称密钥加密通信的双方,在交换加密数据之前必须先安全地交换密钥. 加密算法中最简单的一种就是“置换表”算法,这种算法也能很好达到加密的需要.每一个数据段(总是一个字节)对应着“置换表”中的一个偏移量,偏移量所对应的值就输出成为加密后的文件.加密程序和解密程序都需要一个这样的“置换表”.事实上,80×86cpu系列就有一个指令`xlat'在硬件级来完成这样的工作.这种加密算法比较简单,加密解密速度都很快,但是一旦这个“置换表”被对方获得,那这个加密方案就完全被识破了.更进一步讲,这种加密算法对于黑客破译来讲是相当直接的,只要找到一个“置换表”就可以了.这种方法在计算机出现之前就己经被广泛的使用. 对这种“置换表”方式的一个改进就是使用2个或者更多的“置换表”,这些表都是基于数据流中字节的位置的,或者基于数据流本身.这时,破译变的更加困难,因为黑客必须正确地做几次变换.通过使用更多的“置换表”,并且按伪随机的方式使用每个表,这种改进的加密方法已经变的很难破译. 2 基于公钥的加密算法 基于公钥的加密算法有两种方式:对称密钥算法和非对称密钥算法.所谓对称密钥加密方法中,对信息的加密和解密都使用相同的密钥,或者可以从一个密钥推导出另一个密钥,而且通信双方都要获得密钥并保持密钥的秘密.当需要对方发送信息时,用自己的加密密钥进行加密,而在接受方收到数据后,用对方所给的密钥进行解密. 非对称密钥算法就是加密解密使用不同的密钥.这种算法的基本原理是利用两个很大的质数相乘所产生的乘积来加密,这两个质数无论哪个先与原文件编码相乘、对文件加密,均可由另一个质数再相乘来解密,但要用一个质数来求出另一个质数则是十分困难的. 非常著名的pgp公钥加密以及rsa加密方法都是非对称加密算法. 3 对称密钥和公钥相结合的加密技术 根据对称密钥和公钥加密特点,在实际应用中将二者相结合,即使用DES/IDE A和RSA结合使用.首先发信者使用DES/IDEA算法用对称钥将明文原信息加密获得密文,然后使用接受的RSA公开钥将对称钥加密获得加密的DES或IDE A密钥,将密文和密钥一起通过网络传送给接收者.接受方接受到密文信息后,先用自己的密钥解密而获得DES或IDEA密钥,再用这个密钥将密文解密而后获得明文原信息.由此起到了对明文信息保密作用. 4 加密技术的应用及发展 随着网络互联技术的发展,信息安全必须系统地从体系结构上加以考虑.ORI(开放系统互联)参考模型的七 (下转第44页) · 41 · DOI:10.13398/https://www.360docs.net/doc/a516760086.html, ki.issn1673-260x.2005.05.024

凯撒密码的加密和解密

关于凯撒密码的实现原理 班级:姓名:学号:指导老师: 一、设计要求说明 1、设计一个凯撒密码的加密和解密的程序,要求输入一段字符和密码,输出相应的密文,完成加密过程; 若输入被加密的密文及解密密钥,能还原出原文,完成解密。 2、语言不限,工具不限,独立完成,参加答辩。 3、严格按照格式的要求完成文档,在第六部分的运行结果分析中,要求抓图说明。 二、基础知识介绍 凯撒密码的历史 凯撒密码(caeser)是罗马扩张时期朱利斯?凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。 古罗马随笔作家修托尼厄斯在他的作品中披露,凯撒常用一种“密表”给他的朋友写信。这里所说的密表,在密码学上称为“凯撒密表”。用现代的眼光看,凯撒密表是一种相当简单的加密变换,就是把明文中的每一个字母用它在字母表上位置后面的第三个字母代替。古罗马文字就是现在所称的拉丁文,其字母就是我们从英语中熟知的那26个拉丁字母。因此,凯撒密表就是用d代a,用e代b,……,用z代w。这些代替规则也可用一张表格来表示,所以叫“密表”。 基本原理 在密码学中存在着各种各样的置换方式,但所有不同的置换方式都包含2个相同的元素。密钥和协议(算法)。凯撒密码的密钥是3,算法是将普通字母表中的字母用密钥对应的字母替换。置换加密的优点就在于它易于实施却难于破解. 发送方和接收方很容易事先商量好一个密钥,然后通过密钥从明文中生成密文,即是敌人若获取密文,通过密文直接猜测其代表的意义,在实践中是不可能的。 凯撒密码的加密算法极其简单。其加密过程如下: 在这里,我们做此约定:明文记为m,密文记为c,加密变换记为E(k1,m)(其中k1为密钥),解密变换记为D(k2,m)(k2为解密密钥)(在这里k1=k2,不妨记为k)。凯撒密码的加密过程可记为如下一个变换:c≡m+k mod n (其中n为基本字符个数) 同样,解密过程可表示为: m≡c+k mod n (其中n为基本字符个数) 对于计算机而言,n可取256或128,m、k、c均为一个8bit的二进制数。显然,这种加密算法极不安全,即使采用穷举法,最多也只要255次即可破译。当然,究其本身而言,仍然是一个单表置换,因此,频率分析法对其仍是有效的。 加密解密算法 恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3): 明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ 密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC 使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。例如: 明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ 恺撒密码的加密、解密方法还能够通过同余数的数学方法进行计算。首先将字母用数字代替,A=0,B=1,...,Z=25。此时偏移量为n的加密方法即为:

实验四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;

实现加密解密程序

目录 一.摘要 (1) 二.网络安全简 (2) 安全技术手段 (3) 三.现代密码技术分类 (3) 1.对称密码体制 (4) 2.非对称密码体制 (4) 四.RSA加密解密体制 (5) 1.RSA公钥密码体制概述 (5) 2.RSA公钥密码体制的安全性 (6) 3.RSA算法工作原理 (6) 五.实现RSA加密解密算法 (7) 六.RSA的安全性 (11) 七.结语 (13)

实现加密解密程序 摘要:随着计算机网络的广泛应用,网络信息安全的重要性也日渐突出,计算机信息的保密问题显得越来越重要,无论是个人信息通信还是电子商务发展,都迫切需要保证Internet网上信息传输的安全,需要保证信息安全;网络安全也已经成为国家、国防及国民经济的重要组成部分。密码技术是保护信息安全的最主要手段之一。使用密码技术可以防止信息被篡改、伪造和假冒。加密算法:将普通信息(明文)转换成难以理解的资料(密文)的过程;解密算法则是其相反的过程:由密文转换回明文;密码机包含了这两种算法,一般加密即同时指称加密与解密的技术。 关键字:密码技术、加密算法、解密算法、密码机、RSA 正文 一、网络安全简介 网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。网络安全从其本质上来讲就是网络上的信息安全。从广义来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论都是网络安全的研究领域。网络安全是一门涉及计算机科学、网络技术、通信技术、密码技术、信息安全技术、应用数学、数论、信息论等多种学科的综合性学科。 网络安全的具体含义会随着“角度”的变化而变化。比如:从用户(个人、企业等)的角度来说,他们希望涉及个人隐私或商业利益的信息在网络上传输时受到机密性、完整性和真实性的保护,避免其他人或对手利用窃听、冒充、篡改、抵赖等手段侵犯用户的利益和隐私。 二、安全技术手段

相关文档
最新文档