浅谈数论在密码学上的应用.docx
- 文档编号:5830007
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:8
- 大小:24.34KB
浅谈数论在密码学上的应用.docx
《浅谈数论在密码学上的应用.docx》由会员分享,可在线阅读,更多相关《浅谈数论在密码学上的应用.docx(8页珍藏版)》请在冰豆网上搜索。
浅谈数论在密码学上的应用
硕士研究生《应用密码学》课程论文浅谈数论在密码学上的应用
指导教师:
xx
专业:
计算机应用技术
学号:
10706
姓名:
xx
日期:
2011年6月30日
浅谈数论在密码学上的应用
摘要:
众所周知.数论是数学中最古老、最纯粹、最优美的一个学科.不过鲜为人知的还是,数论同时也是一门应用性极强的应用数学学科.著名国际数学大师陈省身教授早在1992年精辟地指出:
“数学中我愿意把数论看作应用数学。
”我想数学中有两个很重要的数学部门,一个是数论,另一个是理论物理。
在本文中我将先扼要介绍下数论中的一些基本概念、几个主要难题,紧接着我们要介绍数论在现代密码学与计算机科学中的应用。
关键词:
数论;计算数论;密码学;
1引言
随着现代计算机网络通信的广泛使用,传统密码受到很大挑战,它们已经不能完全适应网络环境下使用密码的需求。
于是在上世纪七十年代,提出了公钥密码的概念,并且利用数论方法设计了第一个公钥密码体制(RSA公钥密码),经过二十多年的研究,RSA已得到了广泛的应用。
在RSA密码体制中,使用了一个大整数(目前通常取这个数有1024比特长),它是两个素数的乘积,这个大整数是公开的,而它的两个素因子是保密的。
如果有人能将这个大整数分解因子而得到它的两个素因子,就能破译这个密码体制,所以RSA的安全性是建立在大整数因子分解问题的基础之上的。
这是一个经典的数论问题,RSA的提出大大推动了大整数因子分解算法的研究。
在上世纪八十年代,人们又提出了椭圆曲线公钥密码,它应用了更深刻的数论知识,它的安全性也得到了密码界的公认,现在也正逐步推向应用。
公钥密码的出现,使数学在密码研究中发挥了更加核心的作用。
2数论概述
数论,顾名思义,就是关于数的理论,数学,顾名思义,就是关于数的学问.高斯曾说过一句名言:
“数学是科学的女王,而数论是数学的女王”。
基础数论作为一门古老的数学学科,在很常时间内都属于一种纯数学,随着现代科技的发展,数论在整个科学中的应用非常重要[1]。
数论中许多基本内容,如同余理论、中国剩余定理(CRT)、高次剩余理论等,在现代密码体制、密钥分配与管理、数字签名、身份认证等方面有重要的应用。
1数论概述
1.1整除理论
1)整除:
设a和b是两个整数,且b≠0,如果存在一个整数q,使等式a=bq成立,那么我们称a能被b整除或b整除a,记作b—
a,其性质有:
(1)若b|a,a≠0,则|b|≢|a|;
(2)若b|a,a|b,a≠0,则a=b或b=a;
(3)若c|b,b|a,则c|a;(c≠0)
(4)若b|a,则cb|ca(c≠0);
(5)若c|a,c|b,则c|ma+nb,m,n∈Z(c≠0)。
2)整除的基本定理:
对于任意整数a,b(b≠0)存在唯一的一对整数q,r,
且使得a=qb+r,(0≢r<b)。
其中q和r分别称为b除a的商和余数。
3)最大公约数和最小公倍数:
a,b的最小公倍数记为[a,b],a,b的最大公约数记为(a,b),其性质有:
(1)设m为正整数,则(am,bm)=m(a,b)[am,bm]=m[a,b];
(2)设a,b是两个正整数,则(a,b)[a,b]=ab;
(3)设a,b,c是三个正整数,则(ab,bd,ac)[a,b,c]=abc;
(4)设正整数k是整数a,b的公倍数,则(k/a,k/b)=k/[a,b];
(5)设正整数c是a,b的公约数,则(a/c,b/c)=(a,b)/c;
(6)若(a,b)=1,(ab,c)=(a,c)(b,c);
(7)若a1,a2,„an,是n个不全为零的整数,则(a1,a2,„an)=((a1,a2,„ak),(ak+1,ak+2,„an))。
4)两个定理[5]:
(1)xx函数:
设整数n≣2,n=p1a1,p2a2,„,pmam是n的质因数分解式,以准(n)表示小于n且与n互质的自然数的个数,则
{xj≡1(modmj)
{xj≡0(modmi)i不等于j
令x为从1到najxj的和,则x适合下列联立同余式
x≡aj(modmj),j=1,2,3,.....,n
另:
求自然数a的个位数字,就是求a与哪一个一位数对于模10同余3数论在密码学中的应用
3.1密码学概述
密码技术是实现网络信息安全的核心技术,是保护数据最重要的工具之一。
它通过加密变换,将可读文件变成不可理解的乱
码,其主要的目的是防止信息系统内的机密信息被非法用户破译,起到保护信息和数据的作用。
密码技术还可以使重要信息和数据得以不必通过专用的线路进行传输和储存,从而大大降低信息传输的成本和信息存储的费用。
密码学的发展大致经历了三个历史阶段:
古代加密方法(手工阶段)、古典密码(机械阶段)和近代计算机密码(计算机阶段)。
近代密码学与计算机技术、电子通信技术紧密相关。
密码学真正成为一门新的学科是在20世纪70年代,在现代密码学的发展中有两个重要的里程碑:
1949年Shanon发表的“TheCommunicationTheoryofSecrecySystem”和1976年Diffie和Hellman发表的“NewDi-rectionofTheCryptography”。
Shanon的理论奠定了密码学的理论基础,并使之成为一门独立的科学;“密码学的新方向”一文提出了公钥密码学的基本思想,开创了公钥密码学的新纪元。
由于公钥密码学弥补了私钥密码的缺点,所以提出以后,立刻引起了密码学专家们的广泛关注。
从1976年以来,密码学家们提出了许多种公钥密码体制的实现方案,所有这些方案都是基于某个数学难题的。
目前几种通用的密码体制一般基于以下三类数学难题:
1)基于大整数因子分解问题(IntegerFactorizationProblem)的公钥密码体制。
这一类公钥密码体系基于大整数因子分解的困难性。
其中最著名的当属RSA公钥密码体制,该算法是美国麻省理工学院Rivest、Shamir、Adlman三位学者于1978年首次发表的,简称RSA,是目前被广泛接收并实现的通用公钥密码体系之一。
2)基于有限域上离散对数问题(DiscreteLogarithmProblem)的公钥密码体制。
DLP公钥密码体系基于有限乘法群上的离散对数问题的求解困难性,其中最著名的有ELGamal公钥密码体系和DSA数字签名算法。
3)基于椭圆曲线离散对数问题(EllipticCurveDiscreteLogarithmProblem)公钥密码体系。
其数学基础是椭圆曲线有限加法群上的椭圆曲线离散对数问题的求解困难性。
主要包括椭圆曲线型的Diffie-Hellman问题、椭圆曲线签名方案等。
1985年,华盛顿大学的NealKoblitz和IBM公司的VictorMiller各自独立地提出椭圆曲线公钥密码(EllipticCurvesCryptogra-phy,ECC),这是继Goldwasser和Killian的素性检验,Lenstra的椭圆曲线大数分解后,椭圆曲线理论在密码学中的又一次全新的应用,它的思想仍然在各种涉及有限域乘法群的公钥密码体制中,用有限域上的椭圆曲线构成的群来类比有限域的乘法群,从而获得类似的公钥密码体制。
这类体制的安全性是基于椭圆曲线上离散对数问题求解的困难性,目前还没有找到解决此问题的亚指数时间算法,因而它具有一些其他公钥密码体制无法比拟的优点,如在相同的安全强度下,椭圆曲线密码系统具有参数和密钥尺寸较短、计算量小、处理速度快、带宽要求低等优势。
另外利用椭圆曲线建立密码体制还有两大潜在的优点:
一是有取之不尽的椭圆曲线可用于构造有限点群;二是不存在计算椭圆曲线有限点群的离散对数亚指数算法。
正是这些特点,几年来,一直引起数学家、密码学家和计算机科学家们的极大关注,因此椭圆曲线密码系统被认为是下一代最通用的公钥密码系统。
目前,RSA密码体制是国际上公钥加密技术的通用标准,但是基于椭圆曲线的公钥加密算法以其优越的性能已经得到了世界上许多著名组织和国家的认可,并制定了相应的新标准,我们国家也已经将ECC的研究作为“十五”期间的重点研究课题。
欧美许多国家已经有相关产品问世,因此加速对椭圆曲线密码系统的研究,对于促进我国信息化工程建设的高速发展,增强我国的经济竞争实力,维护我国的主权独立和战略安全,具有十分重要的意义。
3.2对称密码学
对称密码体制是一种传统密码体制,也称为私钥密码体制。
在对称加密系统中,加密和解密采使用相同的密钥。
因为加解密密钥相同,需要通信双方必须选择和保存他们共同的密钥,各方必须信任对方不会将密钥泄密出去,这样就可以实现数据的机密性和完整性。
对于具有n个用户的网络,需要n(n-1)/2个密钥,在用户群不是很大的情况下,对称加密系统是有效的。
但是对于大型网络,当用户群很大,分布很广时,密钥的分配和保存就成了问题。
对机密信息进行加密和验证随报文一起发送报文摘要(或散列值)来实现。
比较典型的算法有DES(DataEncryptionStandard数据加密标准)算法及其变形TripleDES(三重DES)、欧洲的I
DEA、日本的FEALN、RC5等。
DES标准由美国国家标准局提出,主要应用于银行业的电子资金转帐(EFT)领域。
DES的密钥长度为56bit,TripleDES使用两个独立的56bit密钥对交换的信息进行3次加密,从而使其有效长度达到112bit。
RC2和RC4方法是RSA数据安全公司的对称加密专利算法,它们采用可变密钥长度的算法。
通过规定不同的密钥长度,C2和RC4能够提高或降低安全的程度。
对称密码算法的优点是计算开销小,加密速度快,是目前用于信息加密的主要算法。
它的局限性在于它存在着通信的贸易双方之间确保密钥安全交换的问题。
此外,某一贸易方有几个贸易关系,他就要维护几个专用密钥。
它也没法鉴别贸易发起方或贸易最终方,因为贸易的双方的密钥
相同。
另外,由于对称加密系统仅能用于对数据进行加解密处理,提供数据的机密性,不能用于数字签名。
因而人们迫切需要寻找新的密码体制。
3.3DES加密算法
本世纪五十年代以来,密码学研究领域出现了最具代表性的两大成就。
其中之一就是1971年美国学者Tuchman和Meyer根据信息论创始人Shannon提出的多重加密有效性理论创立的,后于1977年由美国国家标准局颁布的数据加密标准。
DES密码实际上是Lucifer密码的进一步发展,它是一种采用传统加密方法的分组密码。
它的算法是对称的,既可用于加密又可用于解密。
DES加密算法是分组加密算法,明文以64位为单位分成块。
64位数据在64位密钥的控制下经过初始变换后,进行16轮加密迭代:
64位数据被分成左右两半部分,每部分32位,密钥与右半部分相结合,然后再与左半部分相结合,结果作为新的右半部分;结合前的右半部分作为新的左半部分。
这一系列步骤组成一轮。
这种轮换要重复16次。
最后一轮之后,再进行初始置换的逆置换,就得到了64位的密文。
DES的加密过程可分为加密处理,加密变换和子密钥生成几个部分组成。
3.4基于离散对数的密码体制
所谓离散对数,就是给定正整数x,y,n,求出正整数k(如果存在的话),使y≡xk(modn)。
就目前而言,人们还没有找到计算离散对数的快速算法(所谓快速算法,是指其计算复杂性在多项式范围内的算法,即O(lognk),其中k为常数)。
虽然有快速计算离散对数的量子算法,其计算复杂性为O(logn)2,但这种算法目前还不成熟。
现在,说明一下离散对数问题的运算过程,假定A和B两个人要在一个不安全通道如因特网上形成密钥以备日后加密解密所用。
首先,
A、B两人要共同公开约定一个素数q和有限域Fq中的一个生成元g;A选定一个随机数a∈{1,2,„,q-1}(a可以认为是A之私钥),并将ga(modq)传送给B;B选定一个随机数b∈{1,2,„,q-1}(b可以认为是B之私钥),并将gb(modq)传送给A;此时A可以算出(gb)a(modq),B也可以算出(ga)b(modq),由于(gb)a(modq)=(ga)b(modq)=gab(modq),因此,A和B就形成了一个公共的密钥gab(modq),日后便可以此钥来进行传统的加密解密计算,从而达到在不安全的通道上进行保密通讯的目的。
显然,敌方可以截获到g,q,ga(modq),gb(modq)。
因此,如果敌方有快速的求解离散对数的算法,就能从已截获的上述信息中迅速求出a或b,从而算出gab(modq)。
遗憾的是,目前世界上根本就没有快速的求解离散对数的算法,因此当所选的有限域Fq很大时,a或b就很难算出。
值得注意的是,离散对数问题密钥交换体制实际上是一座沟通密钥密码体制与公钥密码体制的桥梁,即用公钥密码体制的思想形成密钥(虽然公钥密码体制计算速度慢,但密钥的长度一般都很短,所以没有关系),再用密钥进行传统的密钥密码体制的加密与解密运算(密钥密码体制的运算速度一般都很快,所以适合于对容量大的信息进行加密解密计算)。
在这里,这两种密码体制交叉使用,扬长避短,充分发挥了各自的优越性。
下面给出一个关于具体计算离散对数的实例[6]。
A和B先约定公共的q=2739·(7149-1)/6+1和g=7。
A选随机数a,并计算7a(modq),且将其送给B(注:
a不能向外泄漏)B收到7a=
81;B选随机数b,并计算7b(modq),且将其送给A(注:
b不能向外泄漏);A收到7b=3049。
此时A和B都能计算出密钥7ab(modq),但别人不太容易算出,因为别人不知道a和b。
最后肯定也是可以计算出7ab(modq)的值。
3.5RSA公钥密码体制
RSA密码系统是较早提出的一种公开钥密码系统。
1978年,美国麻省理工学院(MIT)的Rivest,Shamir和Adleman在题为《获得数字签名和公开钥密码系统的方法》的论文中提出了基于数论的非对称(公开钥)密码体制,称为RSA密码体制。
RSA是建立在“大整数的素因子分解是困难问题”基础上的,是一种分组密码体制。
RSA是建立在大整数分解的困难上的,是一种分组密码体制。
它是以推广的欧拉定理为基础的:
定理1:
若(a,n)=1,则a=(modn),其中φ(n)表示不超过n与n互素的正整数个数。
定理2:
若(m1,m2)=1,则φ(m·1m2)=φ(m1·)φ(m2)。
定理3:
若p为素数,则φ(p)=p-1。
RSA建立方法如下:
1)首先随机选两个大素数p,q,计算n=p·q;
2)计算欧拉函数φ(n)=(p-1)(q-1);
3)任选一个整数e为公开加密密钥,由e求出秘密解密密钥d:
d·e=1modφ(n)=k
4)xx/xx:
明文分成长度小于n位的明文块m,加密过程是:
C=Me(modn)xx过程是:
M=Cd(modn在RSA体制下:
D(d,E(M,e))=M(modn)E(e,D(d,M))=M(modn)e,d可以互换,在用于数字签名时,发送方只须用己方的解密密钥d先“加密”即可,因为只有发送方自己知道自己的d,收方只有用对应的e“解密”才能知道明文,同时也验证了发方的身份。
RSA的安全性依赖于大整数的因式分解问题。
实际上,人们推测RSA的安全性依赖于大整数的因式分解问题,但谁也没有在数学上证明从c和e计算m需要对n进行因式分解。
可以想象可能会有完全不同的方式去分析RSA。
然而,如果这种方法能让密码解析员推导出d,则它也可以用作大整数因式分解的新方法。
最难以令人置信的是,有些RSA变体已经被证明与因式分解同样困难。
甚至从RSA加密的密文中恢复出某些特定的位也与解密整个消息同样困难。
另外,对RSA的具体实现存在一些针对协议而不是针对基本算法的攻击方法
3.6数字签名
数字签名是使用某人的私钥加密特定消息摘要散列值而得到的结果,通过这种方法把人同特定消息联系起来,类似于手书签名。
数字签名与手书签名的区别在于,手书签名是模拟的,且因人而异。
而数字签名是0和1的数字串,因消息而异。
数字签名有两种:
一种是对整体消息的签名,即消息经过密码变换后被签名的消息整体。
一种是对压缩消息的签名,即附加在被签名消息之后或某一特定位置上的一段签名图样。
若按明文、密文
的对应关系划分,每一种又分为两个子类:
一类是确定性数字签名,其明文与密文一一对应,它对一特定消息的签名不变化,如RS
A、Ra—bin等签名;另一类是随机化的或概率式数字签名,它对同一消息的签名是随机变化的,取决于签名算法中的随机参数的取值。
一个明文可有多个合法的数字签名,如ElGamal一个签名体制一般含有两个组成部分,即签名算法(SignatureAlgorithm)和验证算法(VerificationAlgorithm)。
对M的签名可简记为Sig(M)=S,而对S的验证简记为Ver(S)={真,伪}={0,1}。
签名算法或签名密钥是秘密的,只有签名人掌握;验证算法应当公开,以便于他人进行验证。
体制的安全性在于,从M和其签名S难以推出K或伪造一个M′,使M′和S可被证实为真。
1991年8月,美国NIST公布了用于标准签名算法DSA,
1994年12月1日正式采用为美国联邦信息处理标准。
其基本算法如下3[:
]公开密钥:
p为512~l024bit的素数;q为160bit长的素数,且为(p-1)的因子。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 浅谈 数论 密码学 应用