RSA公开密钥密码系统的数学原理

合集下载

RSA公钥密码算法

RSA公钥密码算法

RSA公钥密码算法RSA公钥密码算法是一种常见的加密算法,常用于网络通信、数据传输等领域,它采用公钥与私钥相结合的方式进行加密解密,具有高度的安全性和可靠性。

下面我们将详细介绍RSA公钥密码算法的原理和实现。

RSA公钥密码算法中,每个用户都有一对不同的密钥,公钥和私钥。

公钥是公开的,可以向所有人公开,而私钥只有用户本人知道,保密性极高。

加密时使用公钥进行加密,解密时使用私钥进行解密。

RSA公钥密码算法的原理主要涉及到以下几个方面:1. 随机选择两个素数p和qRSA公钥密码算法的核心是基于数学难题,即大数分解问题。

在算法中,首先需要随机选择两个大质数p和q,它们是算法的核心秘密。

p和q不能太小,否则易被破解,也不能太大,否则计算量太大。

通常,取素数的位数越多,安全性越高。

当p和q选好后,计算N=pq。

2. 计算N和欧拉函数在算法中,N和欧拉函数φ(N)是两个重要的参数。

N=pq是两个质数的积,φ(N)表示小于N的正整数中与N互质的数目。

当p和q是不同的质数时,φ(N)=(p-1)(q-1)。

在实际应用中,我们通常选择的是越大的质数越好。

3. 选择加密密钥e在算法中,需要选定一个加密密钥e,它必须满足1<e<φ(N),且e与φ(N)互质。

加密密钥e可以公开,任何人都可以知道。

4. 计算解密密钥d在算法中,需要计算一个解密密钥d,它必须满足ed mod φ(N)=1。

解密密钥d只有用户本人知道,保密性极高。

根据扩展欧几里得算法,可以求得模φ(N)下e的逆元d。

5. 加密和解密过程在加密时,明文M先被转化为一个整数m,然后计算出密文C=me mod N,其中e是加密密钥,N是公钥中的参数。

在解密时,密文C首先被解密为明文m=Cd mod N,其中d是解密密钥,N是公钥中的参数。

6. 安全性分析RSA公钥密码算法基于大质数分解问题,因此,只有在分解N为p和q这两个质数的乘积时,才有可能破解该算法。

基于RSA的公钥密码理论分析

基于RSA的公钥密码理论分析

基于R SA的公钥密码理论分析张萍萍(滨州学院教学与信息科学系山东滨州256603);●●[摘要】对R S^公钥密码体制的理论进行分析,介绍R s^公钥密码体制的特点和算法以及R s^的应用与发展,并分析攻击l i SA算法的可能性。

[关键词】R S A公开密钥密码体制加密算法攻击中图分类号:T P3文献标识码:^文章编号t1671—7597(2009)1210037-02所谓密码技术,就是对信息进行重新编码.从而达到隐藏信息内容使非法用户无法获取信息真实内容的一种手段。

密钥,是密码体制的关键。

公开密钥密码体制是由St a ndf a m d大学的研究人员Di f f i e和Hel l m an于1976年提出的.即使用不同的加密密钥和解密密钥,是一种由已知加密密密钥推导出解密密钥在计算上是不可行的密码体制,公开密钥密码体制的产生主要是由于常规密钥密密体制的密钥分配问题和数字签名的需求。

D i f i e和H e l m a n所提出的方法是使用一个加密算法E和一个解密算法D;对于所选的E和D,即使完全知道了E也不可能从其推导出D,此算法有三个条件需要满足[1]:(1)D(E(P))=P;(2)从E导出D极其困难;(3)由一段明文不可能破译出E.如果满足上述条件,就没有任何理由不公开E.D i f i f e和H e l ni a n方法的基本思想是:任何想要接收报文的个人或单位首先要设计两个算法即E和D。

这两个算法必须满足上述的三个条件。

然后。

公开加密算法E(或密钥).这就是公开密钥加密算法名称的由来.i、公开密钥密码体一的特点公开密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。

由于加密钥匙是公开的,密钥的分配和管理就很简单,比如对于具有n个用户的网络,仅需要2n个密钥。

公开密钥加密系统还能够很容易地实现数字签名.因此,最适合于电子商务应用需要。

这些算法有以下重要特性:(1)仅仅知道密码算法和加密密钥而要确定解密密钥,在计算上是不可能的.(2)两个相关密钥中任何一个都可以用作加密而让另外一个用作解密.毗占垒t一■■醵,‘■■,硅一置一茸E,图l公开密钥加密过程图1给出了公开密钥加密过程。

第六讲 公钥密码原理与数学基础

第六讲 公钥密码原理与数学基础
公钥(加密密钥):e 私钥(解密密钥):d
2
一、公钥密码原理
一、公钥密码原理
一、公钥密码原理
一、公钥密码原理
一、公钥密码原理
二、数论知识
3
二、数论知识
二、数论知识
二、数论知识
二、数论知识
二、数论知识
4
二、数论知识
二、数论知识
3版P96,四版P86
二、数论知识
二、数论知识
Fermat定理
二、数论知识
一、公密码原理
Bob的 公钥环
Mike Joy
Ted Alice
Alice的公钥
Alice的私钥
传输密文
明文输入 加密算法,如RSA 图4-1 通信保密
解密算法 明文输出
一、公钥密码原理
(2) 数字签名:将私钥作为加密密钥,公钥 作为解密密钥,可实现由一个用户对数据加密 而使多个用户解读。如图4-2所示,Bob用私 钥对明文进行加密并发布,Alice收到密文后 用Bob公布的公钥解密。由于Bob的私钥只有 Bob本人知道,因此,Alice看到的明文肯定是 Bob发出的,从而实现了数字签名。
(3) 密钥交换:通信双方交换会话密钥,以 加密通信双方后续连接所传输的信息。每次逻 辑连接使用一把新的会话密钥,用完就丢弃。
一、公钥密码原理
Alice的 公钥环
Bob的私钥
Mike Joy
Ted Bob
Bob的公钥
传输密文
明文输入 加密算法,如RSA
解密算法 明文输出
图4-2 数字签名
一、公钥密码原理
Tel : 029-88202600 Email : jjmu@
mujianjun88@
第六讲 RSA公钥密码体制

现代密码算法实验报告(3篇)

现代密码算法实验报告(3篇)

第1篇一、实验目的1. 了解现代密码学的基本原理和数论基础知识;2. 掌握非对称密码体制的著名代表RSA加密算法的工作原理和流程;3. 设计实现一个简单的密钥系统;4. 掌握常用加密算法AES和DES的原理及实现。

二、实验内容1. RSA加密算法实验2. AES加密算法实验3. DES加密算法实验三、实验原理1. RSA加密算法RSA算法是一种非对称加密算法,由罗纳德·李维斯特、阿迪·沙米尔和伦纳德·阿德曼三位密码学家于1977年提出。

其基本原理是选择两个大质数p和q,计算它们的乘积n=pq,并计算欧拉函数φ(n)=(p-1)(q-1)。

选择一个整数e,满足1<e<φ(n)且e与φ(n)互质。

计算e关于φ(n)的模逆元d。

公开密钥为(e,n),私有密钥为(d,n)。

加密过程为C=Me mod n,解密过程为M=Cd mod n。

2. AES加密算法AES(Advanced Encryption Standard)是一种分组加密算法,采用128位分组大小和128、192或256位密钥长度。

AES算法主要分为四个阶段:初始轮、密钥扩展、中间轮和最终轮。

每个轮包括字节替换、行移位、列混淆和轮密钥加。

3. DES加密算法DES(Data Encryption Standard)是一种分组加密算法,采用64位分组大小和56位密钥长度。

DES算法主要分为16轮,每轮包括置换、置换-置换、S盒替换和密钥加。

四、实验步骤及内容1. RSA加密算法实验(1)选择两个大质数p和q,计算n=pq和φ(n)=(p-1)(q-1);(2)选择一个整数e,满足1<e<φ(n)且e与φ(n)互质,计算e关于φ(n)的模逆元d;(3)生成公开密钥(e,n)和私有密钥(d,n);(4)用公钥对明文进行加密,用私钥对密文进行解密。

2. AES加密算法实验(1)选择一个128、192或256位密钥;(2)初始化初始轮密钥;(3)进行16轮加密操作,包括字节替换、行移位、列混淆和轮密钥加;(4)输出加密后的密文。

rsa密钥密码体制

rsa密钥密码体制

RSA是一种公钥密码体制,它是由三位计算机科学家(Ron Rivest、Adi Shamir和Leonard Adleman)于1977年提出的,也因此得名。

RSA算法基于两个大素数的乘积,利用了素数分解问题的难解性来保证其安全性。

RSA密钥密码体制包含以下几个关键要素:
1. 公钥(Public Key):公钥用于加密数据,可以公开传输给其他人使用。

公钥由两个部分组成,包括一个大素数对和一个公开的指数。

2. 私钥(Private Key):私钥用于解密数据,只能由密钥的持有者保管和使用。

私钥由两个部分组成,即与公钥中的素数对相对应的素数和一个私密的指数。

3. 加密(Encryption):使用公钥对数据进行加密的过程,只有对应的私钥才能解密。

4. 解密(Decryption):使用私钥对密文进行解密的过程,从而恢复原始数据。

RSA密钥密码体制的基本原理是,利用公钥加密的数据只能由私钥解密,而私钥只有密钥的持有者拥有,其他人无法直接获得私钥。

这个
非对称的加密方式在安全通信和数字签名等领域得到了广泛应用。

需要注意的是,RSA密钥密码体制的安全性是基于大素数分解问题的难解性,即通过已知的公钥无法有效地计算出对应的私钥。

随着计算机算力的提升,加密算法的研究也在不断发展,因此在实际应用中需要密钥的合适长度以确保安全性。

总的来说,RSA密钥密码体制以公钥和私钥的配对为基础,利用了数学上的难解问题来实现数据的加密和解密,为信息安全提供了一种重要的加密技术和框架。

RSA公钥密码体制的原理及应用

RSA公钥密码体制的原理及应用

RSA公钥密码体制的原理及应用暴金雨摘要近些年来随着科技丝发展和数学理论研究的不断深入,信息安全和密码学逐渐成为人们关注的焦点.公钥密码算法相对于传统时私钥算法更加安全可靠,为了深入了解其数学原理,文章针对RSA算法的加解密过程以及其在数字签名中的应用进行原理分析和实验探索,并对密码学领域的现状和未来进行分析和展望.关键词公钥密码;RSA算法;数字签名中图分类号01文献标识码A文章编号1674-6708(2019)231-0137-03随着科技发展和计算机技术的不断普及,信息安全问题逐渐成为公民关注的问题之一。

无论是国家安全还是个人信息的安全,都十分重要。

密码学则是保障信息安全的核心技术。

自从1976年公钥密码思想的提出以来,世界各国的计算机和数学学者们致力于公钥密码体制的研发。

1977年,三位美国的数学家提出了第一个使用的公钥算法——RSA 算法。

其算法的安全性依赖于大整数因子分解的困难性。

目前,密钥长度大于1024位的RSA算法体制被认为是安全的[11o1RSA算法1.1数论基础⑷RSA算法加密和解密过程中均运用到了数论的相关知识,因此我们说,数论是RSA算法的基础。

整数对于加法、减法、乘法运算都是封闭的,即任意两个整数的和、差、积仍然是整数。

但是对除法运算不再是封闭的,例如,4除以3就不是整数了。

定义1整数的带余除法:给定整数a,b且b> 0,则存在唯一的一对整数q,r,使得a=qb+r。

其中,OWrWb。

这里r称为a除以b的余数。

定义2同余:同余n是一个大于1的自然数,若a,b是整数且整除a-b,则称整数a和b模是同余的,记作a三b(mod n)。

定义3互质关系:若两个正整数a,b的公因子只有1,则称a和b互质。

互质的性质:1)任意两个质数构成互质关系;2)设a是质数,任取整数b,若b不是a的倍数,则a和b互质。

3)所有的自然数都和1互质;4)若p是大于1的整数,则p和p-1互质;5)若p是大于1的奇数,则p和p-2互质。

rsa 公钥密码算法

rsa 公钥密码算法

rsa 公钥密码算法摘要:1.什么是RSA公钥密码算法2.RSA算法的基本原理3.RSA算法的应用领域4.RSA算法的安全性5.RSA算法的发展趋势正文:RSA公钥密码算法是一种非对称加密算法,由三位数学家Ron Rivest、Adi Shamir和Leonard Adleman于1977年发明。

该算法以其公开密钥和私有密钥的组合而闻名,允许用户以一种安全的方式进行加密和解密。

RSA算法的基本原理是利用两个大素数的乘积来生成公钥和私钥。

公钥由两个大素数的乘积以及一个与这两个素数互质的整数构成。

私钥则由两个大素数的乘积以及一个与这两个素数互质的整数构成。

公钥用于加密数据,私钥用于解密数据。

RSA算法的应用领域非常广泛,主要包括网络安全、电子商务、数字签名等。

在网络安全领域,RSA算法常用于保护数据的机密性和完整性;在电子商务领域,RSA算法常用于保护用户的账户信息和安全支付;在数字签名领域,RSA算法常用于验证文件的完整性和身份认证。

RSA算法的安全性主要取决于密钥的长度和生成方式。

如果密钥足够长,那么破解RSA算法将变得非常困难。

此外,RSA算法还采用了一种称为“公钥加密”的方式,使得即使密钥被盗,数据的安全性也不会受到影响。

随着计算机技术的发展,RSA算法的安全性面临着越来越大的挑战。

为了应对这些挑战,研究人员不断地提出了新的改进方案,如RSA-2048、RSA-4096等。

此外,一些新的非对称加密算法,如椭圆曲线密码算法,也在逐渐取代RSA算法。

总之,RSA公钥密码算法是一种非常重要的非对称加密算法,在现代通信和网络安全领域发挥着重要作用。

RSA算法公钥加密算法new

RSA算法公钥加密算法new

RSA1978年,MIT的Rivest、Shamir、Adleman提出RSA算法非对称加密(公开密钥加密)密码学的一次革命,定义:KA≠KB ,KA、E和D公开特点:基于数论原理(大数分解难题)是目前应用最广泛的公钥加密算法属于块加密算法在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目。

此函数以其首名研究者欧拉命名,它又称为Euler's totient function、φ函数、欧拉商数等。

RSA算法原理l 定义:RSA加密算法确定密钥:1. 找到两个大质数,p,q2. Let n=pq3. let m=(p-1)(q-1);Choose e and d such that de=1(%m).4. Publish n and e as public key. Keep d and n as secret key.加密:C=M^e(%n)解密:M=(C^d)%n其中C=M^e(%n) 为C%n=(M^e)%n存在的主要问题是大数计算和大数存储的问题。

什么是RSARSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。

RSA是被研究得最广泛的公钥算法,从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。

即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题。

RSA的缺点主要有:A)产生密钥很麻烦,受到素数产生技术的限制,因而难以做到一次一密。

B)分组长度太大,为保证安全性,n 至少也要600 bits以上,使运算代价很高,尤其是速度较慢,较对称密码算法慢几个数量级;且随着大数分解技术的发展,这个长度还在增加,不利于数据格式的标准化。

目前,SET(Secure Electronic Transaction)协议中要求CA采用2048比特长的密钥,其他实体使用1024比特的密钥。

公钥密码系统及RSA公钥算法

公钥密码系统及RSA公钥算法

公钥密码系统及RSA公钥算法摘要:本文简单介绍了公开密钥密码系统的思想和特点,并具体介绍了RSA算法的理论基础,工作原理和具体实现过程,并通过一个简单例子说明了该算法是如何实现。

在本文的最后,概括说明了RSA算法目前存在的一些缺点和解决方法。

关键词:公钥密码体制,公钥,私钥, RSA中图分类号:TP309.7§1引言随着计算机联网的逐步实现,Internet前景越来越美好,全球经济发展正在进入信息经济时代,知识经济初见端倪。

计算机信息的保密问题显得越来越重要,无论是个人信息通信还是电子商务发展,都迫切需要保证Internet网上信息传输的安全,需要保证信息安全。

信息安全技术是一门综合学科,它涉及信息论、计算机科学和密码学等多方面知识,它的主要任务是研究计算机系统和通信网络内信息的保护方法以实现系统内信息的安全、保密、真实和完整。

其中,信息安全的核心是密码技术。

密码技术是集数学、计算机科学、电子与通信等诸多学科于一身的交叉学科。

它不仅能够保证机密性信息的加密,而且能够实现数字签名、身份验证、系统安全等功能。

是现代化发展的重要科学之一。

本文将对公钥密码系统及该系统中目前最广泛流行的RSA 算法做一些简单介绍。

§2公钥密码系统要说明公钥密码系统,首先来了解一下不同的加密算法:目前的加密算法按密钥方式可分为单钥密码算法和公钥密码算法。

2.1. 单钥密码又称对称式密码,是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码)。

因此,通信双方都必须获得这把钥匙,并保持钥匙的秘密。

单钥密码系统的安全性依赖于以下两个因素:第一,加密算法必须是足够强的,仅仅基于密文本身去解密信息在实践上是不可能的;第二,加密方法的安全性依赖于密钥的秘密性,而不是算法的秘密性,因此,我们没有必要确保算法的秘密性(事实上,现实中使用的很多单钥密码系统的算法都是公开的),但是我们一定要保证密钥的秘密性。

非对称密码算法RSA原理

非对称密码算法RSA原理

非对称密钥加密算法-RSA一.非对称密钥加密概述前面讲述了对称密钥加密体制。

使用对称密钥加密体制进行保密通信时,任意不同的两个用户之间都应该使用互不相同的密钥。

这样,如果一个网络中有n个用户,他们之间彼此可能需要进行秘密通信,这时网络中将共需要n(n-1)/2个密钥(其中,每个用户都需要保存n-1个密钥),这样巨大的密钥量给密钥分配和管理带来了极大的困难。

另外,随着计算机网络,特别是因特网的发展,网络上互不相识的用户可能需要进行保密的会话(例如,如果用户在进行电子商务活动时,需要保密的连接,这时的客户对象可能根本不是固定的对象)。

最后,对称密钥加密机制难以解决签名验证问题。

非对称密钥加密也称为公开密钥加密,或者叫做公钥加密算法。

使用公开密钥密码的每一个用户都分别拥有两个密钥:加密密钥和解密密钥,它们两者并不相同,并且由加密密钥得到解密密钥在计算机上是不可行的。

每一个用户的加密密钥都是公开的(因此,加密密钥也称为公开密钥)。

所有用户的公开密钥都将记录在作用类似于电话号码薄的密钥本上,而它可以被所有用户访问,这样每一个用户都可以得到其他所有用户的公开密钥。

同时,每一个用户的解密密钥将由用户保存并严格保密(因此,解密密钥也称为私有密钥)。

非对称密码算法解决了对称密码体制中密钥管理的难题,并提供了对信息发送人的身份进行验证的手段,是现代密码学最重要的发明。

公钥加密算法一般是将对密钥的求解转化为对数学上的困难问题的求解,例如RSA算法的安全性是建立在“大数分解和素性检测”这个数论难题的基础上,已知两个大素数a、b,求出a*b是容易计算的,而已知a*b,想知道其是哪两个大素数的乘积目前还没有好的计算方法,另外也有一些非对称加密算法(如ELGamal算法)的安全性是基于求“离散对数”这个数学难题上的。

在公钥密码系统中每个实体都有自己的公钥和相应的私钥。

公钥密码系统的加密变换和解密变换分别用E和D表示。

任何实体B要向实体A发送信息m的步骤如下:实体B首先获得实体A的真实公钥的拷贝(eA),实体B使用eA计算密文 c=E(m)并发送给实体A ,实体A使用自己的私钥dA,计算m=D(c)解密密文,恢复出明文m。

RSA加密原理

RSA加密原理

RSA加密原理RSA加密算法是一种非对称加密算法,它是由三位数学家――Rivest、Shamir和Adleman所发明的,因此得名为RSA算法。

RSA算法在密码学中有着广泛的应用,特别是在保证数据传输的安全性方面起着重要的作用。

本文将详细介绍RSA加密原理以及其应用。

一、RSA算法基本原理RSA算法的基本原理是基于大数的因数分解。

其中,生成RSA密钥的过程分为密钥生成、加密和解密三个步骤。

1. 密钥生成:密钥生成是RSA加密算法的第一步,主要包括选择两个不同的大素数p和q,计算n = p * q,并求解与(n)互质的一个整数e。

其中,n 为公开的大整数,e为加密密钥。

2. 加密:加密过程是RSA算法的第二步,主要利用公钥(n, e)对待加密的信息进行加密。

具体的加密过程是将明文M转化为整数m,通过加密公式C ≡ m^e (mod n)将明文加密成密文。

3. 解密:解密过程是RSA算法的第三步,主要利用私钥(n, d)对密文进行解密。

具体的解密过程是将密文C通过解密公式M ≡ C^d (mod n)将密文解密成明文m。

通过以上三个步骤,RSA算法实现了加密和解密的过程。

其中,公钥(n, e)可以公开,而私钥(n, d)必须保密。

二、RSA算法优势和应用1. 优势:RSA算法具有以下几个优势:1) 安全性高:RSA算法的安全性基于大数的因数分解,目前任何有效的破译RSA算法的方法都需要耗费非常巨大的计算资源。

2) 高效性:RSA算法的加解密速度非常快,尤其适合对短数据进行加密。

3) 可靠性:RSA算法经过了广泛的应用和严格的测试,其算法的可靠性得到了验证。

2. 应用:RSA算法在安全通信、数字签名和数字证书等领域有广泛的应用:1) 安全通信:RSA算法能够保护网络通信的安全,例如,可以用于电子邮件、网络传输等领域,确保信息的机密性和完整性。

2) 数字签名:RSA算法能够对数据进行加密和签名,确保数据的来源可信,防止数据被篡改。

公钥加密技术的原理和RSA算法分析

公钥加密技术的原理和RSA算法分析

公钥加密技术的原理和RSA算法分析公钥加密技术的原理和RSA算法分析院系:计算机与信息工程学院专业:信息管理与信息系统姓名:张欢学号:20084070321Email:ahuanmagic@摘要网络安全从本质上来讲,就是网络上的信息安全,就是指网络系统中流动和保存的数据,不受到偶然的或者恶意的破坏、泄露、更改,系统连续正常的工作,网络服务不中断。

从广义上来说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控性的相关技术和理论都是网络安全所要研究的领域。

在这样一个全球电子互联,电脑病毒和电子黑客充斥,电子窃听和电子欺诈肆虐的时代,安全不再是问题的时代已经过去。

随着社会的发展,如何保证计算机数据安全一直是研究的热点。

信息安全的关键技术是密码技术,密码技术有对称加密技术和非对称加密技术之分。

本文主要阐述公钥加密技术的原理,并对RSA公钥加密算法进行具体分析。

关键词:公钥非对称加密RSA公钥加密一、加密的概念数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示明文,通过这种途径来达到保护数据不被非法窃取、阅读的目的。

该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程【1】。

二、公钥加密的方法计算机加密技术主要分为两大类:“对称式”和“非对称式”。

对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key”这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法。

非对称式加密算法就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,两个必需配对使用,缺一不可以打开加密文件。

“公钥”以对外公布,“私钥”由持有人一个人秘密保存。

因为对称式的加密方法假如是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。

05_密码学基础(四)_公开密钥密码算法

05_密码学基础(四)_公开密钥密码算法

密钥分配
使用对称密码算法 保密通信双方需共享密钥:A&B,B&C,C&A N个用户集需要N(N-1)/2个共享密钥 共享密钥需要经常更换,更换方式有

A选择密钥并手工传递给B 第三方C选择密钥分别手工传递给A,B 用A,B原有共享密钥传送新密钥 与A,B分别有共享密钥的第三方C传送新密钥给A和/ 或B
数论简介
欧拉定理 表述1: 将Z/(n)表示为 Zn,其中n=pq; p,q为素数且相异。 若Z*n={g∈ Zn|gcd(g,n)=1},易见Z*n为(n)阶的乘 法群,且有 g(n)1(mod n),而 (n)=(p-1)(q-1)。 表述2: 若整数g和n互素,则g(n) ≡1(mod n);其中(n)为比 n小,但与n互素的正整数个数, 称为(n)的欧拉函数 表述3: 给定两个素数p和q,以及两个整数m、n,使得n=pq ,且0<m<n,对于任意整数k下列关系成立,
公钥密码学的历史


76年Diffie和Hellman发表了“密码学的新方向 ”,奠定了公钥密码学的基础 公钥技术是二十世纪最伟大的思想之一

改变了密钥分发的方式 可以广泛用于数字签名和身份认证服务

78年,RSA算法 PKI
公钥加密模型
公开密钥的加密
公开密钥密码的重要特性 加密与解密由不同的密钥完成 加密: X –>Y:Y = EKU(X) 解密: Y –>X: X = DKR(Y) = DKR(EKU(X)) 知道加密算法,从加密密钥得到解密密钥在计算上是 不可行的; 两个密钥中任何一个都可以用作加密而另一个用作解 密 X = DKR(EKU(X)) = EKU(DKR(X))

毕业设计(论文)-rsa加密算法的分析与实现[管理资料]

毕业设计(论文)-rsa加密算法的分析与实现[管理资料]

河南科技大学毕业设计(论文)题目:__RSA加密算法的分析与实现__姓名:__考号:_院系:_信系工程系_专业:计算机及应用指导教师:__2011年04月24日摘要随着信息产业的迅速发展,人们对信息和信息技术的需要不断增加,信息安全也显得越来越重要。

基于对网络传输数据安全性的考虑,保障网络信息安全的加密产品具有广泛的应用前景,密码技术则是保障信息安全的一个重要手段。

密码学是信息安全技术的核心,现代密码体制分为公钥体制和私钥体制两大类:私钥体制又称单钥体制,其加密密钥和解密密钥相同;公钥体制又称为双钥体制,其加、解密密钥不同,可以公开加密密钥,而仅需保密解密密钥,从而具有数字签名、鉴别等新功能,被广泛应用于金融、商业等社会生活各领域。

RSA是目前公认的在理论和实际应用中最为成熟和完善的一种公钥密码体制,不仅可以进行加密,还可以用来进行数字签名和身份验证,是公钥密码体制的代表。

大数模幂乘运算是实现RSA等公钥密码的基本运算,该算法存在的问题是在实现时耗时太多,这也是制约其广泛应用的瓶颈。

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

最后是致谢和参考文献。

关键词:密码学,RSA公钥密码体制,信息安全ABSTRACTWith 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 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 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)研究背景 (6)信息加密技术 (6)密码技术研究现状 (8)研究本课题的意义 (9)第二章密码学概论 (11)密码学的基本概念 (11)古典密码体制 (14)对称密码体制 (14)DES (Data Encryption Standard) (16)AES(Advanced Encryption Standard) (18)公钥密码体制 (19) (21)第三章 RSA公钥密码体制 (24) (24)因子的概念 (24)素数与合数 (25)公约数与最大公约数 (26).4 互质数 (27)RSA算法 (28)RSA体制描述 (28)RSA工作原理 (28)第四章 RAS的加密与解密技术的实现 (32)RSA加密与解密代码 (32)测试的环境与工具 (34)测试的结果 (35)第五章结论 (36)结论 (36)致谢 (37)参考文献 (38)第一章引言研究背景自20世纪90年代以来,计算机网络技术得到了空前飞速的发展和广泛的应用,但网络在带给我们方便快捷的同时,也存在着种种安全危机,随着计算机应用的日益广泛和深入,信息交流和资源共享的范围不断扩大,计算机应用环境日趋复杂,计算机的数据安全问题也越来越重要。

非对称密码体制

非对称密码体制

非对称密码体制
非对称密码体制的基本概念 非对称密码体制的原理 RSA算法 RSA算法中的计算问题 RSA算法的安全性 非对称密码体制的应用
非对称密码体制的基本概念
非对称密码(公钥密码)与所有以前的密码方法的不同点
基于的基本思想不同 密钥的使用方式不同
公钥密码算法的密钥具有如下特点
是加密密钥与解密密钥是本质上不同的 是大多数公钥密码算法的加密密钥和解密密钥具有互换的性质,即两者是相对的
网络信息安全技术
非对称密码体制
非对称密码体制(Asymmetric CryptoSystem),也称为公钥密码体制(Public Key Cryptosystem),是现代密码学的重要组成部 分。公钥密码的思想在1976年由Diffie和Hellman在 其《密码学新方向》一文中提出。Rivest、Shamir 和Adleman在1978年提出了首个非对称密码体制, 即著名的RSA公钥密码体制。非对称密码体制的发明 是现代密码的具有里程碑意义的重要事件,它的出现 标志着现代密码学的创立。
可以通过加密算法生成密文:
C EPKB (M )
接收方B使用私有密钥容易通过解密算法对密文进行解密,以恢复原来的明文
从公开密钥PKB推出私有密钥SKB,在计算上是不可行的
非对称密码体制的原理
定义 单向陷门函数满足下列条件的函数f:D→V
1)对于任意给定的x∈D,计算y=f(x)是容易的。 2)对于几乎所有任意给定y∈V,计算x∈D使得y=f(x),
RSA算法中的计算问题
即计算(m)cmod N是RSA非对称密码 体制中的主要运算,其计算可以由 c-1次的模乘来实现,然而当比较
(m)c mod N 的有大效时计,算这问不题是一个好的算法,因为

RSA公钥加密算法的设计与实现本科毕业论文

RSA公钥加密算法的设计与实现本科毕业论文

RSA公钥加密算法的设计与实现本科毕业论⽂RSA公钥加密算法的设计与实现RSA公钥加密算法的设计与实现【论⽂摘要】RSA公钥加密算法是⽬前最有影响⼒的⾮对称加密算法,为ISO的推荐的加密标准。

⽽⾮对称加密因其安全性、开放性以及在数字签名技术中的重要性,在我们的⽣活中被使⽤得越加频繁。

RSA的安全性建⽴在⼤整数的分解困难上,其基本原理是初等数论中的欧拉定理。

在⼯业实现上,为了保证加密的安全性,通常要求密钥对⼤于1Kbits,然⽽计算机的整型变量为32bits,这构成⼀个⽭盾。

此外,RSA密钥的⽣成需要产⽣随机的⼤素数,这也是本⽂需要解决的问题。

【关键词】RSA;⾮对称加密;素数The d esign and implementation of RSA public keyencryption algorithm【ABSTRACT】RSA public key encryption algorithms are the most influential dissymmetrical encryption algorithms, the recommended encryption standard to ISO. And dissymmetrical encryption is used more and more frequently in our lives because of its security, openness and the importance in digital signature technology.RSA's security is built on the difficulties of big integer factorization, whose basic principle is the Euler's theorem in elementary number theory. In order to ensure the security of encryption, when it comes to industry, we often require the key pair is greater than 1Kbits. However, the integer class of computers occupies 32bits, which constitutes a contradiction. In addition, RSA's key-generation needs a random large prime number, which is also a problem to be solved.【Keywords】RSA; dissymmetrical encryption; prime number⽬录RSA公钥加密算法的设计与实现 ...................... II The design and implementation of RSA public key encryption algorithm .............................................. II ⽬录............................................... III ⼀.前⾔ (1)(⼀)引论 (1)(⼆)背景知识 (2)1. 密码技术的发展 (2)2. 密码学的主要任务 (4)3. 密码系统的安全性 (5)4. 对称与⾮对称密码的区别 (5)5. 公钥:RSA密码体制 (6)⼆、实验部分 (8)(⼀)实验⽬的 (8)(⼆)实验环境 (8)(三)实验步骤 (8)1. ⼤整数类 (8)2. 快速模幂运算 (9)3. 快速产⽣随机素数 (9)4. 扩展的欧⼏⾥德算法 (10)(四)代码设计 (11)1. ⼤整数类 (11)2. Rsa类 (14)3. 关键代码 (16)三、结果与讨论 (17)(⼀)程序展⽰ (17)1. 程序主界⾯ (17)2. RSA密钥产⽣ (18)3. 加密解密展⽰ (20)(⼆)RSA分析 (21)1. RSA的安全性 (21)2. RSA效率 (22)(三)⼩结 (24)注释 (25)参考⽂献 (26)致谢 (27)⼀.前⾔(⼀)引论从公元前5世纪,古希腊斯巴达⼈⽤⽊棍和带⼦进⾏换位密码,到现在的⽹上购物、⽹上银⾏,密码学在我们⽣活中占着越来越重要的地位。

RSA加密算法1

RSA加密算法1

Unicode(统一码、万国码、单一码、标准万国码)1.隨意選擇兩個大的質數p和q,p不等於q,計算N=pq。

2.根據歐拉函數,不大於N且與N互質的整數個數為(p-1)(q-1)3.選擇一個整數e與(p-1)(q-1)互質,並且e小於(p-1)(q-1)4.用以下這個公式計算d:d× e≡ 1 (mod (p-1)(q-1))5.將p和q的記錄銷毀。

(N,e)是公鑰,(N,d)是私鑰。

(N,d)是秘密的。

Alice將她的公鑰(N,e)傳給Bob,而將她的私鑰(N,d)藏起來。

加密消息假设Bob想给Alice送一个消息m,他知道Alice产生的N和e。

他使用起先与Alice 约好的格式将m转换为一个小于N的整数n,比如他可以将每一个字转换为这个字的Unicode码,然后将这些数字连在一起组成一个数字。

假如他的信息非常长的话,他可以将这个信息分为几段,然后将每一段转换为n。

用下面这个公式他可以将n加密为c:计算c并不复杂。

Bob算出c后就可以将它传递给Alice。

解密消息Alice得到Bob的消息c后就可以利用她的密钥d来解码。

她可以用以下这个公式来将c转换为n:得到n后,她可以将原来的信息m重新复原。

解码的原理是以及ed≡ 1 (mod p-1)和ed≡ 1 (mod q-1)。

由费马小定理可证明(因为p和q是质数)和这说明(因为p和q是不同的质数,所以p和q互质)签名消息RSA也可以用来为一个消息署名。

假如甲想给乙传递一个署名的消息的话,那么她可以为她的消息计算一个散列值(Message diget),然后用她的密钥(private key)加密这个散列值并将这个“署名”加在消息的后面。

这个消息只有用她的公钥才能被解密。

乙获得这个消息后可以用甲的公钥解密这个散列值,然后将这个数据与他自己为这个消息计算的散列值相比较。

假如两者相符的话,那么他就可以知道发信人持有甲的密钥,以及这个消息在传播路径上没有被篡改过。

RSA算法

RSA算法

RSA算法简介概述RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。

RSA取名来自开发他们三者的名字。

RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。

RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

什么是RSARSA公开密钥密码体制。

所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。

在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK 是需要保密的。

加密算法E和解密算法D也都是公开的。

虽然秘密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。

正是基于这种理论,1978年出现了著名的RSA 算法,它通常是先生成一对RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。

为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。

这就使加密的计算量很大。

为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA 对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。

对方收到信息后,用不同的密钥解密并可核对信息摘要。

RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。

RSA是被研究得最广泛的公钥算法,从提出到现在的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

RSA深入解释此,模数n 必须选大一些,因具体适用情况而定。

RSA的速度由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。

公钥密码体制及典型算法-RSA

公钥密码体制及典型算法-RSA

20
公钥密码体制认证的原理
以上认证过程中,由于消息是由用户自 己的秘密钥加密的,所以消息不能被他人篡 改,但却能被他人窃听。这是因为任何人都 能用用户的公开钥对消息解密。为了同时提 供认证功能和保密性,可使用双重加、解密。 如下图所示。
21
公钥密码体制的认证、保密框图
22
公钥密码体制认证的原理
48尔马定理由费尔马定理2r1modp令令2rxmodn若若x1则选则选3代代2直到出现直到出现x1此时此时kr1modp有解的充要条件是有解的充要条件是krxmodnpnpx1由由gcdx1np就得到就得到n的分解因子的分解因子p和和qrsa参数的选择参数的选择iaitipp11aitipr172p与与q之差要大之差要大若若p与与q之差很小则可由之差很小则可由npq估计估计pq2n12由由pq22npq22等式右边为小的平等式右边为小的平方数方数可以

Signature Schemes(签名方案)
用于生成对某消息的数字签名 私钥的拥有者生成数字签名 任何人可以用公钥验证签名
7

公钥密码系统可用于以下三个方面: (1) 通信保密:此时将公钥作为加密密钥,私钥作 为解密密钥,通信双方不需要交换密钥就可以实现 保密通信。
Bob的 公钥环 Mike Joy Ted Alice Alice的 公 钥 传输密文 Alice的 私 钥
发方首先用自己的秘密钥SKA对消息m加 密,用于提供数字签字。再用收方的公开钥 PKB第2次加密,表示为 c=EPKB[ESKA[m]] 解密过程为 m=DPKA[DSKB[c]] 即收方先用自己的秘密钥,再用发方的公 开钥对收到的密文两次解密。
23
公钥保密和认证体制
为了要同时实现保密性和确证性,要采用双重加、 解密

用实例讲解RSA加密算法(精)

用实例讲解RSA加密算法(精)

用实例讲解RSA加密算法RSA是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名。

RSA 以它的三个发明者Ron Rivest, Adi Shamir, Leonard Adleman的名字首字母命名,这个算法经受住了多年深入的密码分析,虽然密码分析者既不能证明也不能否定RSA的安全性,但这恰恰说明该算法有一定的可信性,目前它已经成为最流行的公开密钥算法。

RSA公开密钥算法的发明人(从左到右Ron Rivest, Adi Shamir, Leonard Adleman. 照片摄于1978年)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)相邻的两个自然数是互质数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

密钥管理中心产生一对公开密钥和秘密密钥的方法如下:在离线方式下,先产生两个足够大的强质数p、q。

可得p与q的乘积为n=pxq。

再由p和q算出另一个数
z=(p-1)×(q-1),然后再选取一个与z互素的奇数e,称e为公开指数;从这个e值可以找出另一个值d,并能满足e×d=1 mod (z)条件。

由此而得到的两组数(n,e) 和(n,d)分别被称为公开密钥和秘密密钥,或简称公钥和私钥。

对于明文M,用公钥(n,e) 加密可得到密文C。

C = M mod (n)(1)
对于密文C,用私钥(n,d)解密可得到明文M。

M = C mod (n)(2)
(2) 式的数学证明用到了数论中的欧拉定理,具体过程这里不赘述。

同法,也可定义用私钥(n,d)先进行解密后,然后用公钥(n,e)进行加密(用于签名)。

p、q、z由密钥管理中心负责保密。

在密钥对一经产生便自动将其销毁或者为了以后密钥恢复的需要将其存入离线的安全黑库里面;如密钥对是用户自己离线产生的,则p、q、z的保密或及时销毁由用户自己负责。

在本系统中,这些工作均由程序自动完成。

在密钥对产生好后,公钥则通过签证机关CA以证书的形式向用户分发;经加密后的密态私钥用PIN卡携带分发至用户本人。

RSA算法之所以具有安全性,是基于数论中的一个特性事实:即将两个大的质数合成一个大数很容易,而相反的过程则非常困难。

在当今技术条件下,当n足够大时,为了找到d,欲从n中通过质因子分解试图找到与d对应的p、q是极其困难甚至是不可能的。

由此可见,RSA的安全性是依赖于作为公钥的大数n的位数长度的。

为保证足够的安全性,一般认为现在的个人应用需要用384或512比特位的n,公司需要用1024比特位的n,极其重要的场合应该用2048比特位的n。

相关文档
最新文档