RSA算法原理以及PKI系统简介

RSA算法原理以及PKI系统简介
RSA算法原理以及PKI系统简介

研究生综合应用报告

课程名称《高级计算机网络》

学院计算机学院年级计算机科学与技术专业班6班

学生姓名唐洪奎学号20141402021

开课时间2014 至2015 学年第 1 学期

RSA原理学习与PKI简述

摘要

随着计算机网络的发展,计算机网络所能提供的服务也越来越丰富。特别是一些和银行、电子商务、军事通信相关的网络服务,对应计算机网络上信息通信安全提出了严苛的要求;密码学也在这种情况下得以发展;RSA作为重要的公钥加密算法,其应用和算法思想应信息安全都有很重要的意义,本文再述了RSA的证明、原理,并简单介绍了PKI系统,并在结尾处进行一定程度的反思。

关键字:RSA算法费马小定理PKI

Abstract

With the development of Internet, Internet provides more and more services to public. Some services referring to Bank Transient, E-Commercials needs a safer communication on the Internet. Cryptography was developed in this case. As an important public key encryption algorithm, RSA’s applications and algorithms thinking has a very important significance to Information Security. This paper describes the proof of RSA, principles, and briefly describes the PKI system, and a certain degree of rethinking about RSA and PKI at the end.

Keywords: RSA algorithm Fermat's little theorem PKI

一、RSA概述

RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。

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

今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。但在分布式计算和量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战。

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

本文简单探头了RSA的证明原理,以及用类似RSA这样的算法构建的PKI系统的运作方式。

二、RSA数学基础

1.概述

RSA的数学基础来自离散数学的分支—数论。数论,也可以看成是高等代数中的一部分,

通过用多项式的方式,定义素数或者是互素关系、整除、辗转相除法、最大公约数、最小公倍数等等,并且在此基础上讨论数论的定理证明。一般的信息安全数学教材利用整数进行讨论。

RSA 算法基于“大数难分解”,理论基础是模数运算。在证明,过程用到了素数、互素、同余、同余方程的概念,这些可以再一般的信息安全书籍中找到。证明中比较重要的是费马小定理、RSA 定理,我们再述其证明过程。

2.费马小定理

费马小定理:设任意整数a 与素数p 互素,则 ()11mod p a n -≡

证明:由a 与素数p 互素,知p 不是a 的素因数,

又因为p 也不是1,2,3,...,1p - 的素因数,

所以a 乘以此数列各项所得新数列,2,3,...,(1)a a a p a - 各项都不能被整除

从而,2,3,...,(1)a a a p a -中的每一项只能和数列1,2,3,...,1p -中的一项模同余

又由于,2,3,...,(1)a a a p a -中的任意两项都不能模p 同余(事实上, 如果存在不同的

两ra 与sa (不妨设0r s p <<<)模p 同余, 即()mod sa ra p ≡ , 因a 与p 互素,

据同余式的消去律可得()mod s r p ≡ , 与假设r s <矛盾), 所以,2,3,...,(1)a a a p a -中恰有一项和1,2,3,...,1p -中的1 同余, ,2,3,...,(1)a a a p a -中恰有一项和1,2,3,...,1p -中的2 同余,,2,3,...,(1)a a a p a -中恰有一项和1,2,3,...,1p -中的1p - 同余,从而可以建立1p - 个同余式. 将这1p - 个同余式相乘得:

(),2,3,...,(1)123...(1)mod a a a p a p p -≡- .

因为,123...(1)p ????- 与p 互素,有同余的消去律的

()11mod p a n -≡.

3.RAS 定理

定理 设p 、q 是不同的素数,n pq = ,记()(1)(1)n p q ?=-- ,如果e 、d 是与

()n ? 互素的两个正整数,并满足1(mod ())ed n ?≡ ,则对于每个整数x ,都有(mo d )

ed x x n ≡. 分析 由同余定义的等价表述, 只要证n 是ed x x - 的因数,但n pq = , 且p 、q

都是素数,所以,只要证p 、q 分别是ed x x -的因数, 即只要证对于每个, 都有:

(mod )ed x x p ≡ 公式一

(mod )ed x x q ≡ 公式二

证明:公式一只要证

0(mod )ed x x p -≡ . 如果p 是x 的因数,则上式显然成立;

如果p 不是x 的因数,即p 与x 互素,

由题设 1(mod ())ed n ?≡,知()n ?是1ed -的因素,

故存在整数k 使得1()(1)(1)ed n k p q k ?-==-- ,

从而1(1)(1)ed p q k =+-- ,

1(1)(1)1(1)()ed p q k p q k x x x x +----==? ,

因 p 与x 互素,由费马小定律()11mod p a n -≡,

可得

(1)(1)(mod )ed q k x x x p -≡?≡ . 同理可证公式二也成立.

因此有:

(mod )ed x x p ≡ 三、 RSA 算法原理

以下公钥体制实施的步骤, 会帮我们理解它的基本原理

(1) 取两个大素数p 和q , 求出n pq = 和()(1)(1)n p q ?=-- 的值.

(2) 选一个与()n ?互素的正整数e ,解同余方程1(mod ())ed n ?≡,得到解d ,则{,}

e d 是可供一个用户使用的密钥对. 其中e 为公钥,d 为私钥.

(3) 构造两个定义域为(0,1,2,...,1)n -的函数:()(mod )e E x x n =为加密函数,

()(mod )d D x x n =为解密函数.

(4) 根据RSA 定理,()(mod )e e d ed DEx Dx x x x n ===≡ 即在()D x 和()E x 的作用下,

经加密和解密后,明文信息x 变换为密文y 后又恢复为明文x ,所以()E x 和()D x 是互逆的.

(5) 把供某用户使用的私钥d 交该用户, 并将其公钥e 和n 公开,()n ?则由密钥制作

者秘密保管.

(6) 别的用户要与该用户秘密通信时,先将明文信息x 用该用户的公钥e 建立的加密函

数()E x 加密, 得密文()(mod )e y E x x n =≡ , 该用户收到密文y 后, 用自己的私钥d 建立解密函数

()D x 解密,得明文()(m o d )()d e d e d x D y y n x x x n

=≡≡≡≡ .

为什么这里构建的加密函数

()(mod )e E x x n ≡是单向函数? 因为n 是素因数为p 与q 很大的整数, 所以即使知道n , 也极难求出p 和q , 从而也无法得到()n ?. 因此在能查到公钥e 的情况下, 也不能建立同余方程1(mod ())ed n ?≡,

不能得到私钥d ,故

()(mod )e E x x n ≡为单向函数 四、 RSA 公钥体制进行数字签名和身份认证

RSA 公钥体制提出后, 人们立刻发现也能用它来解决数字签名和身份认证问题当甲与乙通信时, 把明文信息x 先用自己的解密函数对它签名:()D x y =甲. 如果信息内容无需保密, 甲就可将经他签名的信息y 发给乙. 乙收到信息就从公钥薄上查到甲的公钥得到加密函数作用于y :()(())E y E D x x ==甲甲甲, 得到明文信息x , 从而确认信息x 是来自甲. 如果信息内容需要保密, 甲在签名后又在公钥薄上查到乙的公钥得到加密函数, 用它对已经签名的信

息y 加密:()E y z =乙

, 然后把z 发给乙. 乙收到z 后, 先用自己的解密函数作用于z :()()D z D E y y ==乙乙乙, 再从公钥薄上查到甲的公钥得到加密函数作用于y ,

==

E y E D x x

()(())

甲甲甲, 得到并确认来自甲的明文信息x.

五、PKI体系及运行原理简单概述

1.基本概述

PKI是“Public Key Infrastructure”的缩写,意为“公钥基础设施”。简单地说,PKI技术就是利用公钥理论和技术建立的提供信息安全服务的基础设施。公钥体制是目前应用最广泛的一种加密体制,在这一体制中,加密密钥与解密密钥各不相同,发送信息的人利用接收者的公钥发送加密信息,接收者再利用自己专有的私钥进行解密。这种方式既保证了信息的机密性,又能保证信息具有不可抵赖性。目前,公钥体制广泛地用于CA认证、数字签名和密钥交换等领域。

PKI似乎可以解决绝大多数网络安全问题,并初步形成了一套完整的解决方案,它是基于公开密钥理论和技术建立起来的安全体系,是提供信息安全服务的具有普适性的安全基础设施。该体系在统一的安全认证标准和规范基础上提供在线身份认证,是CA认证、数字证书、数字签名以及相关安全应用组件模块的集合。作为一种技术体系,PKI可以作为支持认证、完整性、机密性和不可否认性的技术基础,从技术上解决网上身份认证、信息完整性和抗抵赖等安全问题,为网络应用提供可靠的安全保障。但PKI绝不仅仅涉及到技术层面的问题,还涉及到电子政务、电子商务以及国家信息化的整体发展战略等多层面问题。PKI作为国家信息化的基础设施,是相关技术、应用、组织、规范和法律法规的总和,是一个宏观体系,其本身就体现了强大的国家实力。PKI的核心是要解决信息网络空间中的信任问题,确定信息网络空间中各种经济、军事和管理行为主体(包括组织和个人)身份的惟一性、真实性和合法性,保护信息网络空间中各种主体的安全利益。

公钥基础设施(PKI)是信息安全基础设施的一个重要组成部分,是一种普遍适用的网络安全基础设施。PKI是20世纪80年代由美国学者提出来了的概念,实际上,授权管理基础设施、可信时间戳服务系统、安全保密管理系统、统一的安全电子政务平台等的构筑都离不开它的支持。数字证书认证中心CA、审核注册中心RA(Registration Authority)、密钥管理中心KM(Key Manager)都是组成PKI的关键组件。作为提供信息安全服务的公共基础设施,PKI是目前公认的保障网络社会安全的最佳体系。在我国,PKI建设在几年前就已开始启动,截至目前,金融、政府、电信等部门已经建立了30多家CA认证中心。如何推广PKI应用,加强系统之间、部门之间、国家之间PKI体系的互通互联,已经成为目前PKI建设亟待解决的重要问题。

2.PKI的体系组成

图1

PKI体系描述了,一个PKI系统的基本组成部分和依赖关系。

PKI策略是一个包含如何在实践中增强和支持安全策略的一些操作过程的详细文档,建议和定义了一个组织信息安全方面的指导方针,同时也定义了密码系统使用的处理方法和原则;

认证中心(CA)是负责管理密钥和数字证书的整个生命周期,包括证书的申请、审批、签发、更新等等;

注册机构(RA)是用户(个人/团体)和认证中心CA之间的一个接口。接受用户的注册申请,获取并认证用户的身份,完成收集用户信息和确认用户身份。

证书签发系统负责证书的发放。

PKI应用是具体的基于PKI系统的应用比如:Web服务器和浏览器之间的通讯,电子邮件,电子数据交换(EDI),互联网上的信用卡交易,虚拟专用网(VPN)等等。

3.基本运行方式

图2

图2描述了一个基本的基于PKI系统的秘密通信的应用(数值表明其通信顺序),比如,署名用户首先通过CA得到机构颁发的证书(过程1,2分别为证书申请和批准,过程3将证书登记到证书库中),当其得到证书后,有证书中指明的私密秘钥作用于明文,得到密文并且发送给依赖方(过程4发送密文);依赖方收到密文,为了解密来自署名用户的信息,只需到PKI系统的证书库获得署名用户的公钥秘钥,执行公开解密算法便可以得到明文信息。类似于这种运行方式可以实现其他功能。

六、总结以及再思考

通过前面的描述,RSA算法或者说是其算法的思想和PKI的关系不言而喻。构建以个可靠安全的计算机网络也是必须的,如PKI系统。

从根本上来说,为什么会存在有安全问题,原因总是多方面的,我个人的理解有几方面:根本地,计算机系统是一种形式化的系统,一提到形式化的系统,就意味着在系统中的各个元素、主体等等是处在一种共性的状态,或者说是很难找到唯一可标注某个行为主体的个性特征,但是从理论和应用角度来说, 这用是不可避免的,因为只有形式化后才可理论也应用(基本上任何一种理论或是说法,都要撇开部分问题的性质,提取我们认为本质的东西);计算机网络的开发性,使得网络上其他人或是网络主体可以偷听截取伪造身份等等。

针对根本性的问题,类似于RSA的这些非对称性的加密算法使得,任何一个主体A在通信时,必须用自己表个性的部分(自己的私钥)作用于要发送的内容,让信息在形式上标有个性,接受方B利用它可观察到的A的个性部分(A的公钥),拨开信息的个性化外壳取得信息。作为A的两个个性部分,可以看成是A个性在内外的不同表现,在内的是A对要传输明文的作用,在外的是其他行为主体可看到的A的外在部分,内外的统一性由公私钥的算法关系来决定(如RSA算法中关系)。

参考文献

[1] 舒昌勇,RSA公开密钥体制及其主要数学基础[J],数学通报,2008,(47)

[2] 贾春福,钟安鸣,赵源超, 信息安全数学基础[M],清华大学出版社,2013,85-96,102-123

相关主题
相关文档
最新文档