公钥密码体制(RSA)算法及安全性

合集下载

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算法的安全参数研究
计 算 密 文 C M ̄ o , 将 密 文 c发 送 ; = n dn 并 7 解 密 过 程 : 私 钥 d计 算 m= d o n从 而 恢 复 明 ) 用 Cr d , n
文。
保密性 、 完整 性 、 可用 性 以及抗 抵 赖 性 。而 密 码 体制 又 分 为 对 称 密码 和 非对 称 密 码 ( 钥 体 制 ) 由于 非对 称 公 。 密 码 既 可 用 于 加 密 , 可 以 用来 做 数 字 签 名 , 途 比较 也 用
法进 行数 据 加 密的过 程 : R A公 钥 密码 算 法安全 参 数 的选择 进 行分 析 , 讨 了安全 参 数 的选 择对 R A公钥 密 对 S 并探 S 码 算法 的安全 性影 响及重 要性 。
【 关键词 】 S R A算法 ; 公钥密码体制; 安全参数
R s ac n te S f aa tro S l rh e e rh o h ae P rmee fR A Ag i m ot
【 ewod R Aa ot ; bce yt r h a r e r K y rs】 S gr mp iky r o a ;fp a t l i ul cpg pse a m e h
0 前言
随 着 计算 机 网络 的高 带 发 展 与普 及 应 用 领 域 的不 断扩大, 网络 安全 成 为信 息安 全 最重 要 的 内容 之一 。密
码 学 作 为 网 络 安 全 的 核 心 和 关 键 技 术 , 以 提 供 信 息 的 可
唯 一整 数 d1 d () , < n; < 5 公 钥为 ( ,) ) ne , 私钥 为 d;
6 加 密 过程 : 消息 表示 成 区间 [,.] 的整 数 m, ) 把 0n 1内

RSA算法

RSA算法
的缺点分析
1)产生密钥很麻烦,受到素数产生技术的限制, 1)产生密钥很麻烦,受到素数产生技术的限制,因而难以做 产生密钥很麻烦 到一次一密。 到一次一密。 2)安全性, RSA的安全性依赖于大数的因子分解,但并没有 2)安全性, RSA的安全性依赖于大数的因子分解, 安全性 的安全性依赖于大数的因子分解 从理论上证明破译RSA的难度与大数分解难度等价。目前, RSA的难度与大数分解难度等价 从理论上证明破译RSA的难度与大数分解难度等价。目前, 人们已能分解140多个十进制位的大素数, 140多个十进制位的大素数 人们已能分解140多个十进制位的大素数,这就要求使用 更长的密钥,速度更慢;另外, 更长的密钥,速度更慢;另外,目前人们正在积极寻找攻 RSA的方法 如选择密文攻击, 的方法, 击RSA的方法,如选择密文攻击,一般攻击者是将某一信 息作一下伪装,让拥有私钥的实体签署。然后, 息作一下伪装,让拥有私钥的实体签署。然后,经过计算 就可得到它所想要的信息。实际上, 就可得到它所想要的信息。实际上,攻击利用的都是同一 个弱点,即存在这样一个事实: 个弱点,即存在这样一个事实:乘幂保留了输入的乘法结 构。
提高RSA算法的运算效率的方法 提高RSA算法的运算效率的方法
• RSA的安全性是基于大素数因子分解的困 难性。目前一般认为RSA需要1024位以上 的字长才有安全保障。由于RSA所采用的 模幂运算耗时太多,这样大的数据量处理 时速度很慢,所以提高RSA的运算效率便 成为非常重要的研究课题。
Montgomery 模乘算法
RSA的简要介绍 RSA的简要介绍
• RSA公钥密码体制在密码学中占有重要的 地位,已经成为现在最流行的公钥加密算 法和数字签名算法之一。其保密性强,密 钥管理方便,并且具有数字签名、认证和 鉴别等多种功能,特别适合于现代保密通 讯的需要。大多数使用公钥密码进行加密 和数字签名的产品和标准使用的都是RSA 算法。

RSA公钥密码体制简介

RSA公钥密码体制简介
当要对明文进行加密时,可先进行预处理, 计算出m2、m3等,这种方法我们称之为窗口法。
32
例:
计算: 152013(mod 2539) 13 23 1 22 0 2 1 1101 B
(e3 , e2 , e1, e0 ) (1,1,0,1)
152013 mod2539
(((1520e3 )2 1520e2 )2 1520e1 )2 1520e0 (mod 2539) ((15202 1520)2 15200 )2 1520 (mod 2539)
14
RSA算法论证
假设截获密文C,从中求出明文M。他知道 M≡Cd mod n ,
因为n是公开的,要从C中求出明文M,必须先求 出d,而d是保密的。但他知道,
ed≡1 mod φ(n), e是公开的,要从中求出d,必须先求出φ(n),而 φ(n)是保密的。但他又知道,
φ(n)=(p-1)(q-1),
9
RSA算法论证
于是,M tφ(n) =bq+1,其中b为某整数。 两边同乘M, M tφ(n)+1 =bqM+M 。 因为M=ap,故 M tφ(n)+1 =bqap+M =abn+M 。 取模n得, M φ(n)+1 =M mod n 。
10
RSA算法论证
第二种情况:M=0 当M=0时,直接验证,可知命题成立。
加密过程:c=me mod n 解密过程:m=cd mod n
3
2、工作原理
定义:任给一个正整数m,如果用m去除任意两个整 数a、b所得的余数相同,称a、b对模m同余。记 为: a bmodm,若余数不同,则a、b对模m不同余。 记为: a b modm。
定理: a bmodm ,当且仅当m|(a-b)。

RSA加密方案安全性研究

RSA加密方案安全性研究

密密钥相 同。公钥体制 又称 双钥体制 , 其加密、 密密钥不 同, 解 可以公 开加 密密钥 , 需要保 密解 密密钥 , 而具有数 字签名、 仅 从 鉴 别等新 功能 , 广泛应用 于金融 、 被 商业等社会 生活各领 域 。R A是 目前公认在理论和 实际应用 中最为 完善 的一种公钥 密码体 S 制, 不仅 可 以进行加密 , 可以用来进行数字签名和 身份 认证 , 还 是公钥 密码体制 的代表。
图 1 保 密 系统 模 型
为加 密运算 的指数 , 发送方需 要知道 ; d为解 密运算 的指 而
数, 只有接收方才能知道 。 将 以上的过程进一步描述 如下 :
著名 的R A公 钥密码 体制是在 17 由 R. Rvs, S 95年 L ietA. . S a i和 LA l n三人共 同提出。R A是 最具代表性 的公 hmr .de me S

S in e & Te h oo y Vi o ce c c n lg s n i
21 0 2年 6月第 1 8期
科 技 视 界
I论坛 T
为 了对字母表 中的第 个字母加密 ,加密算法 为 G =
( )p 1 和(一 ) 2 ( 一 ) g 1都应该 包含 大整数 因子 ;
虽然定 时攻击 是一种严重的威胁 , 但是却有简单 的防范
措施可以采用 , 这包 括 : ( ) 数取幂时 间 : 证所 有取幂操 作在返 回一个 结果 1常 保 之前花费 同样多 的时 间。这是一个不大 的更 改 , 但是确实使
选择 e 5 因为 5与 2 =( 4互质 ) ; 选择 d 2 (d 1 1 4 可以被 2 =9e一=4 , 4整除 ) ;
公开密钥 := q 、 np q分别为两个互 异的大素数 , 、 P q必 须保密 )e (一 )q 1互质 ; , 与 p 1 (- )

密码基础知识(2)以RSA为例说明加密、解密、签名、验签

密码基础知识(2)以RSA为例说明加密、解密、签名、验签

密码基础知识(2)以RSA为例说明加密、解密、签名、验签⼀、RSA加密简介 RSA加密是⼀种⾮对称加密。

是由⼀对密钥来进⾏加解密的过程,分别称为公钥和私钥。

具体查看⼆,公钥加密算法和签名算法我们从公钥加密算法和签名算法的定义出发,⽤⽐较规范的语⾔来描述这⼀算法,以RSA为例。

2.1,RSA公钥加密体制RSA公钥加密体质包含如下3个算法:KeyGen(密钥⽣成算法),Encrypt(加密算法)以及Decrypt(解密算法)。

1)密钥⽣成算法以安全常数作为输⼊,输出⼀个公钥PK,和⼀个私钥SK。

安全常数⽤于确定这个加密算法的安全性有多⾼,⼀般以加密算法使⽤的质数p的⼤⼩有关。

越⼤,质数p⼀般越⼤,保证体制有更⾼的安全性。

在RSA中,密钥⽣成算法如下:算法⾸先随机产⽣两个不同⼤质数p和q,计算N=pq。

随后,算法计算欧拉函数接下来,算法随机选择⼀个⼩于的整数e,并计算e关于的模反元素d。

最后,公钥为PK=(N, e),私钥为SK=(N, d)。

2)加密算法以公钥PK和待加密的消息M作为输⼊,输出密⽂CT。

在RSA中,加密算法如下:算法直接输出密⽂为3)解密算法以私钥SK和密⽂CT作为输⼊,输出消息M。

在RSA中,解密算法如下:算法直接输出明⽂为。

由于e和d在下互逆,因此我们有: 所以,从算法描述中我们也可以看出:公钥⽤于对数据进⾏加密,私钥⽤于对数据进⾏解密。

当然了,这个也可以很直观的理解:公钥就是公开的密钥,其公开了⼤家才能⽤它来加密数据。

私钥是私有的密钥,谁有这个密钥才能够解密密⽂。

否则⼤家都能看到私钥,就都能解密,那不就乱套了。

2.2,RSA签名体制签名体制同样包含3个算法:KeyGen(密钥⽣成算法),Sign(签名算法),Verify(验证算法)。

1)密钥⽣成算法同样以安全常数作为输⼊,输出⼀个公钥PK和⼀个私钥SK。

在RSA签名中,密钥⽣成算法与加密算法完全相同。

2)签名算法以私钥SK和待签名的消息M作为输⼊,输出签名。

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

公钥密码体制及典型算法-RSA
25
公钥密码算法应满足的要求
④ 敌手由B的公开钥PKB求秘密钥SKB在计算 上是不可行的。 ⑤ 敌手由密文c和B的公开钥PKB恢复明文m 在计算上是不可行的。 ⑥ 加、解密次序可换,即 EPKB[DSKB(m)]=DSKB[EPKB(m)] 其中最后一条虽然非常有用,但不是对 所有的算法都作要求。
发方首先用自己的秘密钥SKA对消息m加 密,用于提供数字签字。再用收方的公开钥 PKB第2次加密,表示为 c=EPKB[ESKA[m]] 解密过程为 m=DPKA[DSKB[c]] 即收方先用自己的秘密钥,再用发方的公 开钥对收到的密文两次解密。
23
公钥保密和认证体制
为了要同时实现保密性和确证性,要采用双重加、 解密
20
公钥密码体制认证的原理
以上认证过程中,由于消息是由用户自 己的秘密钥加密的,所以消息不能被他人篡 改,但却能被他人窃听。这是因为任何人都 能用用户的公开钥对消息解密。为了同时提 供认证功能和保密性,可使用双重加、解密。 如下图所示。
21
公钥密码体制的认证、保密框图
22
公钥密码体制认证的原理
18
公钥密码体制认证的原理
因为从m得到c是经过A的秘密钥SKA加 密,只有A才能做到。因此c可当做A对m的 数字签字。 另一方面,任何人只要得不到A的秘密 钥SKA就不能篡改m,所以以上过程获得了 对消息来源和消息完整性的认证。
19
公钥密码体制认证的原理
在实际应用中,特别是用户数目很多时,以 上认证方法需要很大的存储空间,因为每个文件都 必须以明文形式存储以方便实际使用,同时还必须 存储每个文件被加密后的密文形式即数字签字,以 便在有争议时用来认证文件的来源和内容。改进的 方法是减小文件的数字签字的大小,即先将文件经 过一个函数压缩成长度较小的比特串,得到的比特 串称为认证符。 认证符具有这样一个性质:如果保持认证符的 值不变而修改文件这在计算上是不可行的。用发送 者的秘密钥对认证符加密,加密后的结果为原文件 的数字签字。

第4章公钥密码体制

第4章公钥密码体制

4.2.3 乘法逆元
如果gcd(a,b)=1,那么: 存在a-1,使a* a-1 ≡1 mod b 存在b-1,使b* b-1 ≡1 mod a 这里,把a-1称为a模b的乘法逆元, b-1称为b 模a的乘法逆元
用扩展的欧几里德算法求乘法逆元
gcd(11111,12345)
12345=1*11111+1234 11111=9*1234+5 1234=246*5+4 5=1*4+1 4=4*1+0
characteristic of algorithms
It is computationally infeasible to determine the decryption key given only knowledge of the cryptographic algorithm and the encryption key. Either of the two related keys can be used for encryption, with the other used for decryption.
4.2 数论基础
数论中的许多概念在设计公钥密码算法时是 必不可少的.掌握这些基础知识对于理解公 钥密码体制的原理和应用十分重要.
整 除
定理:设整数a和b,如果存在整数k,使 b=ak,则说b能被a整除,记作:a|b 例:3|15,-15|60 性质:
对所有整数a≠0, a|0, a|a成立 对任意整数b, 1|b成立
本原根的性质
如果a是n的本原根,且:
x1=a1 mod n,x2=a2 mod n,…,xФ(n)=aФ(n) mod n
则:
x1≠x2≠…≠xФ(n),且xФ(n)=1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

公钥密码体制(RSA)算法及安全性探析□宣克祥【摘要】作为现代经典加密技术,无论是数据加密标准(DES)还是高级加密标准(AES),都是一种私钥密码体制,其安全性是由其密钥的私密性来保证的;而RSA则是一种公钥密码体制,不仅加密算法本身可以公开,甚至加密用的密钥也可以公开。

本文对公钥密码体制RSA算法原理、具体实现过程及安全性进行深入探讨和分析。

【关键词】RSA算法;加密标准;信息安全【作者单位】宣克祥,解放军国际关系学院1976年,美国斯坦福大学的威特菲尔德·笛福(Whit-field Diffie)和马丁·赫尔曼(Martin Hellman)在题为《密码学的新方向》的论文中提出了一种崭新的思想,不仅加密算法本身可以公开,甚至加密用的密钥也可以公开,这种密码体制被称作非对称式公钥密码体制。

1978年,美国麻省理工学院的隆·里维斯特(Ronald L.Rivest)、阿迪·沙米尔(Adi Shamir)和雷奥纳德·阿德曼(Leonard M.Adleman)提出了迄今为止理论上最成熟、最成功的RSA公钥密码体制,它变革了已使用几千年的对称密钥技术。

在公开密钥加密技术中,加密密钥与解密密钥是不一样的。

如果要向对方发送消息,可以先用对方的公开密钥加密要发送的消息;对方收到消息后,可用自己的私钥解密。

加密密钥是公开的,谁都可以找到,然而,以其加密的消息却必须用接收者保留的私钥才能解密,因而别人无法阅读该消息。

一、RSA算法简介RSA公钥密码体制的安全性是基于数论中的大整数因子分解:两个大质数p和q相乘得到乘积n,在min(p,q)与(p-1)(q-1)之间选取另一个数d,该数与(p-1)(q-1)互质,即两者之间没有公因子,然后用如下公式计算出e:ed mod(p-1)(q-1)=1假如明文块用M表示,密文块用C表示,那么RSA的加密过程为:Me mod n=CRSA的解密过程即为:C d mod n=M假如选定了两个小的质数11和23,那么n=11ˑ23= 253。

接着,在11与220(10ˑ22)之间选取一个与220互质的数d,假设是19,则由19e mod220=1计算出e=139。

根据RSA公钥密码体制,n(253)和e(139)是公开的,而p (11)、q(23)和d(19)是保密的。

在ASCII码中,对于消息“Hi”,用16位二进制数表示为0100100001011001,将它置换为十进制数为72和105。

甲加密过程为:72139mod253=2105139mod253=101乙得到密文2和101后,用密钥d(19)解密:219mod253=7210119mod253=105由于e和n是公钥,可以公开,所以任何人都可以生成密文;但是d是密钥,与p、q一起都要保密。

要想找出d,必须知道p和q,也就是要将n进行因子分解。

但是,如果n很大,分解是十分困难的,现今所有的算法不可能在有效的时间里实现。

这样,情报的安全性就得到了保障。

二、RSA算法公钥和私钥的生成RSA算法实际上是对质数(prime)特性的一种利用。

所谓质数即这样的一种正整数,除了1和其自身外,不存在其它约数(非质数整数被称为合数)。

任何正整数都可能有多种形式被分解为若干整数的乘积,但只具有一种质因数分解形式。

数学家很早就发现了质数的这种特性,但没有加以应用。

RSA算法所使用的公钥必须能够分解成两个质数之乘积。

在目前条件下,分解一个较小的数字如6185371,数秒之-1与3-2,4-1与4-2。

在不同图组的显示图标中,每个热区域对应的显示图标应不同。

4.总分统计。

(1)擦除前图:添加计算图标,录入函数eraseall并添加显示图标,输入“您的总分为”;(2)录入函数“正确{x},错误{y},总分{z}”,完成整个游戏如图4所示。

三、结语利用“开发游戏”为手段进行authorware的教学,不但能够提高学生的学习兴趣,锻炼学生的动手能力,还对全部已学内容进行全面的复习与应用,使得学生记忆深刻,并收到不错的教学效果。

【参考文献】1.冯建平符策群等.中文authorware多媒体制作教程[M].北京:人民邮电出版社,20062.高新考试编委会.authorware6.5职业考试培训教程[M].北京:北京希望电子出版社,2004内就可以完成(6185371=1867ˑ3313);但是,如果这个整数很大,例如有50位的一个数,要把它分解成两个质数相乘的结果,所需要的时间就很长,运算方法也较复杂。

由于数字很大,在设计程序软件时,相关变量最好定义为长整型数据,如_int64类型;否则,当程序运行时,数字会增加很快,当变量取值超过其范围时,就会产生越界错误,出现不正确的结果。

在分析研究RSA 算法的时候,我们一般先选择两个质数p 和q ,从p 和q 计算出互质数d ,这三个数就是私钥;再由私钥推算出公钥n 和e 。

这里以产生质数p 为例,质数q 的产生过程与p 是一样的。

质数p 与质数q 必须不同,如果是相同的数,加密和解密就会产生错误。

//产生质数pvoid CRSADlg ::OnChoosenum1(){//TODO :Add your control notification handler code here _int64m ,j ,flag ,i ;char cBuffer [N ];//取edit3中的数作为初始数p m_edit3.GetWindowText (cstredit3,10);p =_atoi64(cstredit3);i =p ;//清空列表框m_listbox1.ResetContent ();//在从p 至p +50的范围里寻找质数for (;i <p +50;i ++){flag =1;m =(int )sqrt ((double )i );for (j =2;j <=m ;j ++){if (i%j ==0){flag =0;break ;}}//若i 为质数则写入列表框并显示在edit3中if (flag ==1){_i64toa (i ,cBuffer ,10);m_listbox1.AddString ((LPCTSTR )cBuffer );m_edit3.SetWindowText ((LPCTSTR )cBuffer );UpdateData (FALSE );}}}在两个质数p 和q 中取较小的一个,然后计算出(p -1)ˑ(q -1),互质数就是在此之间的一个数,它与(p -1)ˑ(q -1)没有公约数。

//产生互质数dvoid CRSADlg ::OnChoosenum3(){//TODO :Add your control notification handler code here _int64num3,num4,max ,flag ,temp ,i ;char cBuffer [N ];m_edit3.GetWindowText (cstredit3,10);m_edit4.GetWindowText (cstredit4,10);num3=_atoi64(cstredit3);num4=_atoi64(cstredit4);max =(num3-1)*(num4-1);if (num3<num4)temp =num3+1;elsetemp =num4+1;//初始d 从num3和num4两个质数中取较小者加1d =temp ;//清空列表框m_listbox3.ResetContent ();//在num3或num4加1--(num3-1)*(num4-1)的范围里//寻找与(num3-1)*(num4-1)互质的数//d 以前50个可能的数为限for (d =temp ;d <max &&d <temp +50;d ++){flag =1;for (i =2;i <d ;i ++){if (d%i ==0&&max%i ==0){flag =0;break ;}}//若为互质数,则加入列表框并显示于edit5中if (flag ==1){_i64toa (d ,cBuffer ,10);m_listbox3.AddString (LPCTSTR (cBuffer ));m_edit5.SetWindowText ((LPCTSTR )cBuffer );UpdateData (FALSE );}}}在知道了私钥p 、q 、d 之后,我们就可以计算出公钥n 和e 了。

在例子中,p 、q 、d 、n 和e 都设置成了全局变量,其值求出以后,在加密和解密函数中即能使用。

//推算公钥n 和evoid CRSADlg ::OnChoosenum5(){//TODO :Add your control notification handler code here char eBuf [N ];_int64m ;//取编辑框中的字符串m_edit3.GetWindowText (cstredit3,10);m_edit4.GetWindowText (cstredit4,10);m_edit5.GetWindowText (cstredit5,10);//转换为数字p =_atoi64(cstredit3);q =_atoi64(cstredit4);d =_atoi64(cstredit5);//计算出m 和n m =(p -1)*(q -1);n =p*q ;//计算出efor (e =1;e <m ;e ++){if (e*d%m ==1)break ;e ++;}//将n 和e 转换为字符串并显示于edit7和edit8_i64toa (n ,eBuf ,10);m_edit7.SetWindowText ((LPCTSTR )eBuf );_i64toa (e ,eBuf ,10);m_edit8.SetWindowText ((LPCTSTR )eBuf );UpdateData (FALSE );}选取并分解公钥是一个时间较长的过程,选取的公钥越大,分解所需要的时间越多。

因此,在这里特意设计了一个选取和分解公钥的过程。

先假设给定一个公钥nn ,由此产生两个数pp 和qq ;若公钥nn 等于pp ˑqq ,那么再测试pp 和qq 是不是质数;若同时都为质数,则nn 可作为我们要寻找的公钥。

测试一个数是否是质数的函数是_int64prime (_int64n )函数,若n 为质数,该函数的返回值为1,否则为0。

//选取并分解公钥nvoid CRSADlg ::OnChoosenum4(){//TODO :Add your control notification handler code here char eBuf [N ];char cBuffer [N ];_int64nn ,pp ,qq ;int flag =0;//先从edit7中的数开始m_edit7.GetWindowText (cstredit7,10);nn =_atoi64(cstredit7);//清空列表框m_listbox4.ResetContent ();flag =0;//每次寻找10个公钥while (flag <10){//质数pp 先取最小的质数3//并在3--nn /3的范围里++循环for (pp =3;pp <nn /3;pp ++){//质数qq 先取nn /pp//并在nn /pp --3的范围里--循环for (qq =nn /pp ;qq >2;qq --){//若nn 等于两个数的乘积if (nn ==pp*qq ){//判断这两个数是否都是质数,若是则//形成nn ==pp*qq 字符串并加入列表框//置n =nn ,并标明已找到1个质数if (prime (pp )&&prime (qq )){_i64toa (nn ,eBuf ,10);strcpy (cBuffer ,eBuf );strcat (cBuffer ,"=");_i64toa (pp ,eBuf ,10);strcat (cBuffer ,eBuf );strcat (cBuffer ,"*");_i64toa (qq ,eBuf ,10);strcat (cBuffer ,eBuf );m_listbox4.AddString ((LPCTSTR )cBuffer );n =nn ;UpdateData (FALSE );flag ++;}}}}//不管此轮找到质数与否,nn 均增加1nn ++;}//将最后找到的质数显示于edit7_i64toa (n ,eBuf ,10);m_edit7.SetWindowText ((LPCTSTR )eBuf );UpdateData (FALSE );}公钥和私钥的处理应注意以下几点:(一)RSA 算法所使用的公钥一般都很大,其安全性是因公钥很大而分解困难达成的。

相关文档
最新文档