非对称密码算法

合集下载

说明对称密码算法和非对称密码算法的原理和优缺点

说明对称密码算法和非对称密码算法的原理和优缺点

说明对称密码算法和非对称密码算法的原理和优缺点
对称密码算法:
原理:对称密码算法是一种加密算法,发送方和接收方使用相同的密钥进行加密和解密。

加密过程中,将明文按照一定的规则和算法进行混淆和置换,以产生密文。

解密过程中,使用相同的密钥和算法对密文进行逆向操作,还原出明文。

优点:
1. 加密和解密速度快,适用于大量数据的加密和解密操作。

2. 密钥长度相对较短,不占用过多的存储空间。

3. 实现简单,操作容易。

缺点:
1. 密钥的分发和管理较为困难,存在安全性问题。

2. 无法有效解决密钥传递问题,即如何确保密钥在发送和接收之间的安全传递。

非对称密码算法:
原理:非对称密码算法是一种加密算法,发送方和接收方使用不同的密钥进行加密和解密。

加密过程中,发送方使用接收方的公钥进行加密,接收方使用自己的私钥进行解密。

优点:
1. 安全性高,公钥可以随意公开,只有私钥持有者才能解密密文。

2. 解决了对称密码的密钥分发和管理问题。

缺点:
1. 加密和解密速度较慢,适用于少量数据的加密和解密操作。

2. 密钥长度相对较长,占用较多的存储空间。

3. 实现较为复杂,操作稍微复杂。

总结:
对称密码算法的优点在于速度快、实现简单,但安全性相对较低;非对称密码算法的优点在于安全性高,但加密和解密速度较慢、实现较为复杂。

因此,实际应用中常常采用对称密码算法和非对称密码算法的结合,即非对称密码算法用于密钥分发和管理,对称密码算法用于实际的数据加密和解密。

非对称加密的原理及应用

非对称加密的原理及应用

非对称加密的原理及应用1. 概述非对称加密,又称为公钥加密,是一种加密方法,与对称加密不同,非对称加密使用了两把密钥,即公钥和私钥。

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

非对称加密的原理和应用在现代密码学和网络通信中起着重要的作用。

本文将介绍非对称加密的原理和应用,并简要介绍一些常见的非对称加密算法。

2. 非对称加密的原理非对称加密使用了一对密钥,即公钥和私钥。

公钥可以公开给任何人使用,私钥则只有密钥的持有者知道。

非对称加密的原理基于数学问题的难解性,例如大素数的分解。

以下是非对称加密的常见原理:•RSA算法:RSA算法基于大数分解的难题,使用了两个大质数的乘积作为公钥,原来的两个大质数作为私钥。

加密过程中,使用公钥对数据进行加密,只有使用私钥才能解密数据。

•椭圆曲线密码算法(ECDSA):ECDSA算法是基于椭圆曲线上的离散对数问题的难解性。

它使用椭圆曲线上的某个点作为公钥,该点的私钥为一个正整数。

加密过程中,使用公钥对数据进行加密,只有使用私钥才能解密数据。

3. 非对称加密的应用3.1 安全通信非对称加密在安全通信中起到重要的作用。

通信的双方使用对方的公钥进行加密,只有持有私钥的一方能够解密。

这样,即使通信过程中被拦截,也无法获得有效的信息。

非对称加密可以保证通信过程的机密性和安全性。

3.2 数字签名非对称加密可以用于生成数字签名,用于验证数据的完整性和真实性。

发送方使用私钥对数据进行签名,接收方使用发送方的公钥对签名进行验证。

如果签名验证通过,可以确定数据未被篡改,并确保数据的来源可信。

3.3 密钥交换非对称加密可用于安全地进行密钥交换。

通信双方可以使用对方的公钥加密协商的对称加密密钥,然后使用自己的私钥解密,从而实现安全的密钥交换。

3.4 数字证书非对称加密可以用于生成数字证书,用于确认实体的身份。

数字证书包含实体的公钥和相关信息,并由可信的证书机构进行数字签名。

接收方可以使用证书机构的公钥对数字证书进行验证,以确保实体的身份真实可信。

不是常用的非对称密码算法

不是常用的非对称密码算法

不是常用的非对称密码算法非对称密码算法是一种重要的网络安全技术,它能有效地保护用户的数据安全。

目前,RSA、ECC等非对称密码算法已经成为行业的标准。

但是,随着安全技术的不断发展,随着算法的持续改进,一些不是常用的非对称密码算法已经倍受关注,它们不仅具有高效安全、算法抗攻击性以及抗计算能力、运算效率高等特点,而且还支持灵活的应用。

一、肖像算法肖像算法(Pohlig-Hellman Algorithm)是一种广泛使用的非对称密码算法,它可以被用来生成数字和签名。

目前,肖像算法已经成为非对称密码算法中的一种重要的方法。

肖像算法的主要特点是,它首先使用因子分解将一个较大的正整数分解成若干较小的正整数,然后利用若干小的素数去计算给定的模数,最后用这些数值去抵消它们的乘积,得到最终要求的解。

优点:(1)效率高:由于使用了因子分解,肖像算法的计算速度相对较快,比RSA算法稍快一些;(2)抗攻击性强:肖像算法采用的是因子分解,它的抗攻击性强,抵抗攻击者的攻击威力也较强;(3)安全性好:肖像算法的安全性比RSA算法要高,同时它也被认为比现有的密码算法更加安全。

缺点:(1)对大数计算能力弱:对于较大的数,肖像算法的效率会相对降低,因为它需要频繁的因子分解,因此,对较大的数需要更长的时间;(2)操作复杂:肖像算法比RSA算法要复杂,它需要进行多次计算步骤,才能得出最终的解。

二、双线性对双线性对(Dual_linear_pair)算法是一种新的、强大的非对称密码算法,它是由香港中文大学的陈伟群博士提出的。

它可以用来实现非对称加密及消息认证。

双线性对算法主要通过利用一对稠密的线性方程组解决非对称密码问题,算法的安全性比RSA算法要高。

优点:(1)运算效率高:双线性对算法采用了一种新的计算方式,它可以在较短的时间内完成大量的数学运算;(2)抗攻击性强:双线性对算法使用的是一对稠密的线性方程组,它的抗攻击性比RSA算法要强,抗计算能力也较强;(3)安全性好:双线性对算法采用了一种新的数学计算方式,它的安全性比RSA算法要高,可以有效地保护用户的数据安全。

RSA密码算法及其在网络安全中的应用

RSA密码算法及其在网络安全中的应用

RSA密码算法及其在网络安全中的应用随着互联网的普及,网络数据安全问题越来越受到人们的关注。

而在网络安全中,密码算法起着至关重要的作用。

RSA密码算法是一种非对称密码算法,广泛应用于数字签名、数据加密等领域。

本文将重点介绍RSA密码算法的原理及其在网络安全中的应用。

一、RSA密码算法的原理RSA密码算法是由三位数学家(Ron Rivest, Adi Shamir和Leonard Adleman)在1977年所发明。

这种算法是一种基于大整数进行加密和解密的算法。

其中,加密和解密过程需要使用两个密钥:公钥和私钥。

公钥:由加密者公开,用于加密明文,同时只能使用私钥进行解密。

私钥:由信息的拥有者保管,用于解密密文,同时只能使用公钥进行加密。

RSA算法的安全性基于大数分解的困难性。

即对于一个大素数,找到其质因数分解的难度比较大。

利用这个原理,RSA算法把大整数作为公钥和私钥,并利用这种困难的数论任务来实现加密和解密。

二、RSA密码算法在网络安全中的应用RSA密码算法是目前最广泛使用的非对称密码算法之一。

其在网络安全中的应用主要体现在以下几个方面。

1. 数字签名数字签名是验证某个文档或消息的真实性和完整性的过程,确保消息在传输过程中不被篡改。

RSA密码算法可用于数字签名,通过签名机构颁发证书,防止签名被恶意伪造。

这使得数字签名在保护电子商务交易和验证网站身份方面变得非常有用。

2. 安全电子邮件传递RSA算法可以确保电子邮件传递的安全。

通过使用公钥加密机制来对邮件进行加密,并通过私钥解密机制来对邮件进行解密。

这种机制可以防止邮件在传递过程中被截取并窃取敏感信息。

3. 数字证书RSA算法可以生成数字证书,数字证书是用于认证和识别某些人或组织的证明。

数字证书基于公钥基础结构(PKI)和数字签名,此时,数字证书扮演着用于验证发件人和接收者身份的角色。

4. VPN加密RSA算法在虚拟私人网络(VPN)的安全传输中也发挥着重要作用。

非对称加密算法 交互逻辑-概述说明以及解释

非对称加密算法 交互逻辑-概述说明以及解释

非对称加密算法交互逻辑-概述说明以及解释1.引言1.1 概述概述部分旨在介绍非对称加密算法及其在信息安全领域中的重要性。

非对称加密算法是一种数据加密技术,与对称加密算法相比,它使用了一对密钥,即公钥和私钥。

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

由于公钥可以公开,而私钥只有密钥持有者知道,这种算法被广泛应用于保护敏感信息的传输和存储过程中。

随着互联网技术的迅猛发展,信息安全面临着越来越多的挑战。

传统的加密方法已经无法满足当今信息安全的需求。

在信息安全领域中,非对称加密算法被认为是一种高度安全可靠的加密技术,能够有效防范各种网络攻击和数据泄露。

在本文中,我们将分别介绍非对称加密算法的原理、应用和优缺点。

通过深入理解非对称加密算法,我们可以更好地了解其在信息安全中的作用,以及为什么非对称加密算法被广泛应用于各种信息传输和存储场景。

接下来的章节将详细介绍非对称加密算法的工作原理,讨论其在各个领域中的应用情况,并分析其优缺点。

最后,我们将总结非对称加密算法的重要性,并展望未来非对称加密算法的发展趋势。

通过本文的阅读,读者将对非对称加密算法有一个全面的了解,并对信息安全的重要性有更深入的认识。

1.2 文章结构本文将围绕非对称加密算法展开讨论,文章结构如下:第一部分是引言。

在引言中,我们将对非对称加密算法进行概述,介绍其基本原理和应用范围,以及本文的目的和重要性。

第二部分是正文。

正文将进一步讨论非对称加密算法的原理、应用和优缺点。

在2.1节中,我们将详细介绍非对称加密算法的原理,包括公钥和私钥的生成、加密和解密过程等。

2.2节将探讨非对称加密算法在实际应用中的具体场景,例如数字签名、密钥交换等。

而在2.3节中,我们将对非对称加密算法的优缺点进行分析和讨论,包括安全性、计算复杂度等方面的考量。

第三部分是结论。

在结论部分,我们将总结非对称加密算法的重要性和应用前景,并对未来非对称加密算法的发展进行展望。

最后,我们将给出本文的结论,对整个讨论进行总结评价。

非对称加密算法有什么特点

非对称加密算法有什么特点

非对称加密算法有什么特点什么非对称加密算法非对称加密算法是一种密钥的保密方法。

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。

公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。

因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。

另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;乙方再用自己的私匙对数据进行验签。

甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。

非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。

非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。

对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。

所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。

这样安全性就大了很多。

工作原理1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。

2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。

3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。

4.A将这个消息发给B(已经用B的公钥加密消息)。

5.B收到这个消息后,B用自己的私钥解密A的消息。

其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。

常用非对称加密算法

常用非对称加密算法
非对称加密算法是一种加密方法,使用了两个密钥,一个用于加密,另一个用于解密。

下面列出了一些常用的非对称加密算法:
1.RSA(Rivest-Shamir-Adleman):RSA 是最早也是最广泛使用的非对称加密算法之一。

它基于大整数分解的困难性,即将一个大整数分解成其素数因子的难题。

RSA在数字签名、加密通信等领域广泛应用。

2.DSA(Digital Signature Algorithm):DSA 是用于数字签名的非对称加密算法,主要用于验证数据的完整性和认证身份。

3.Diffie-Hellman 密钥交换:Diffie-Hellman 密钥交换协议不直接用于加密或签名,而是用于在不安全的通信渠道上安全地交换密钥,以便进行对称加密。

它基于一个数学难题,即离散对数问题。

4.Elliptic Curve Cryptography(ECC):ECC 是一种基于椭圆曲线的加密方法,与传统的 RSA 和 DSA 相比,它在提供相同安全性的情况下需要更短的密钥长度,从而节省了计算资源。

5.ElGamal 加密:ElGamal 加密算法是一种基于离散对数问题的非对称加密方法,可以用于加密通信和数字签名。

这些非对称加密算法在保护信息安全和实现加密通信方面都发挥了重要作用。

在选择算法时,需要考虑其安全性、性能和应用场景。

同时,由于计算机安全技术不断发展,也要注意选择算法时的时效性。

1/ 1。

国密算法 类型

国密算法类型
国密算法,全称为中国商用密码算法,是中国自主研发的一套加密算法标准。

国密算法分为对称密码算法、非对称密码算法和杂凑算法三个类型。

1. 对称密码算法:国密算法中的对称密码算法包括SM1、SM4。

SM1是一种分组密码算法,适用于数据加密和解密。

SM4是一种分组密码算法,适用于大数据传输和存储加密。

2. 非对称密码算法:国密算法中的非对称密码算法包括SM2、SM9。

SM2是一种椭圆曲线公钥密码算法,适用于数字签名、密钥交换和公钥加密。

SM9是一种基于双线性对的公钥密码算法,适用于身份认证、密钥交换和签名等场景。

3. 杂凑算法:国密算法中的杂凑算法包括SM3。

SM3是一种密码杂凑算法,适用于信息摘要和数字签名验证等场景,具有高度安全性和抗碰撞能力。

国密算法在我国的信息安全领域得到广泛应用,有着重要的意义和作用。

RSA加密算法原理

RSA加密算法原理RSA加密算法是一种非对称密码算法,起源于1977年,由三位数学家Rivest、Shamir和Adleman共同提出。

它基于一个简单的数论问题,即将两个大素数相乘容易,但是将其乘积分解成两个大素数却极为困难。

RSA算法要求用户生成一对密钥,包括公钥和私钥。

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

下面我将详细介绍RSA加密算法的原理及过程。

1. 密钥生成过程:(1)选择两个不同的大素数p和q。

(2)计算n = p * q。

(3)计算欧拉函数φ(n) = (p-1) * (q-1)。

(4)选择一个整数e,使得1 < e < φ(n),且e与φ(n)互质。

(5)通过计算求得e关于φ(n)的模反元素d,即满足e * d ≡ 1 mod φ(n)。

(6)将n和e组成公钥(n,e),将n和d组成私钥(n,d)。

2. 数据加密过程:(1)将待加密的数据转换成对应的整数m。

(2)计算密文c = m^e mod n。

(3)将密文c作为加密后的数据输出。

3. 数据解密过程:(1)接收到密文c后,将c作为待解密的数据。

(2)计算明文m = c^d mod n。

(3)将明文m作为解密后的数据输出。

通过上述步骤,我们实现了RSA加密算法的原理。

需要注意的是,RSA加密算法的安全性依赖于质因数分解的困难性,即将n分解成p和q。

只要质因数分解的难题没有被有效地攻破,RSA算法便是安全的。

总结:RSA加密算法是一种非对称密码算法,通过使用公钥加密、私钥解密的方式来保障数据的安全性。

它的原理基于两个大素数相乘容易,分解乘积困难的数论问题。

通过生成密钥、数据加密和数据解密的过程,我们可以达到加密和解密数据的目的。

但是需要注意的是,选择大素数以及质因数分解仍然是保证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。

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

实验1-3 非对称密码算法 RSA
一.实验目的
通过实际编程了解非对称密码算法RSA的加密和解密过程,加深对非对称密码算法的认识。

二.实验原理
前面讲的对称密码算法要求通信双方通过交换密钥实现使用同一个密钥,这在密钥管理、发布和安全性方面存在很多问题,而非对称密码算法解决了这个问题。

非对称密码算法是指一个加密系统的加密密钥和解密密钥是不相同,或者说不能从其中一个推导出另一个。

在非对称密码算法的两个密钥中,一个是用于加密的密钥,它是可以公开的称为公钥;另一个是用于解密的密钥,是保密的,称为私钥。

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

RSA密码体制是目前为止最为成功的非对称密码算法,是在1977年由Rivest、Shamir 和Adleman提出的第一个比较完善的非对称密码算法。

它的安全性是建立在“大数分解和素性检测”这个数论难题的基础上,即将两个大素数相乘在计算上容易实现,而将该乘积分解为两个大素数因子的计算量相当大。

虽然的安全性还未能得到理论证明,但经过20多年的密码分析和攻击,迄今仍然被实践证明是安全的。

RSA算法描述如下:
1. 公钥
选择两个互异的大素数p和q,n是二者的乘积,即n = pq,使Φ(n)=(p-1)(q-1),Φ(n)为欧拉函数。

随机选取正整数e,使其满足gcd(e, Φ(n))=1,即e和Φ(n)互质,则将(n,e)作为公钥。

2. 私钥
求出正数d,使其满足e×d=1 modΦ(n),则将(n,d)作为私钥。

3. 加密算法
对于明文M,由C=M e mod n ,得到密文C。

4.解密算法
对于密文C,由M=C d mod n,得到明文M。

如果窃密者获得了n,e和密文C,为了破解密文他必须计算出私钥d,为此需要先分解n为p和q。

为了提高破解难度,达到更高的安全性,一般商业应用要求n的长度不小于1024bit,更重要的场合不小于2048bit。

三.实验环境
运行windows或linux操作系统的PC机,具有gcc(linux)、VC(windows)等C语言编译环境。

四.实验内容和步骤
1.为了加深对RSA算法,根据已知参数:p=3,q=11,M=2,手工计算公私钥,并对明文进行加密,然后对密文进行解密。

2.光盘中给出了一个可以进行RSA加密和解密的对话框程序RSATool,运行这个程序加密一段文字,了解RSA算法原理。

尝试着加密一大段文字,记录程序的运行时间。

使用DES算法加密相同的文字,比较两种算法加密的速度。

五.实验报告要求
e e mod n,记录程序
1.编写一个程序,随机选择三个较大的数x,,n然后计算x
n
运行时间。

实际中应用的素数为512bit,也就为1024bit。

这样的大数在计算机上如何表示,如何进行运算,查阅资料给出简单说明。

2.计算机在生成一个随机数时,并不就是素数,因此要进行素性检测。

是否有有确定的方法判定一个大数是素数?查阅资料,找出目前实际可行的素数判定法则,并且比较各自的优缺点。

3.光盘附录中给出了一个密码算法库,其中包括各种对称加密算法、非对称加密算法、HASH算法和数字签名算法。

找出其中关于RSA的部分,并且基于标准输入输出写一段用RSA加密文件的程序。

下面是有关RSA接口调用的示例程序,写程序时可以参考。

#include <mycrypt.h>
int main(void)
{
int err, hash_idx, prng_idx, res;
unsigned long l1, l2;
unsigned char pt[16], pt2[16], out[1024];
rsa_key key;
/* register prng/hash */
if (register_prng(&sprng_desc) == -1) {
printf("Error registering sprng");
}
if (register_hash(&sha1_desc) == -1) {
printf("Error registering sha1");
return EXIT_FAILURE;
}
hash_idx = find_hash("sha1");
prng_idx = find_prng("sprng");
/* make an RSA-1024 key */
if ((err = rsa_make_key(NULL, /* PRNG state */
prng_idx, /* PRNG idx */
1024/8, /* 1024-bit key */
65537, /* we like e=65537 */
&key) /* where to store the key */
) != CRYPT_OK) {
printf("rsa_make_key %s", error_to_string(err));
return EXIT_FAILURE;
}
/* fill in pt[] with a key we want to send ... */
l1 = sizeof(out);
if ((err = rsa_encrypt_key(pt, /* data we wish to encrypt */
16, /* data is 16 bytes long */
out, /* where to store ciphertext */
&l1, /* length of ciphertext */
"TestApp", /* our lparam for this program */
7, /* lparam is 7 bytes long */
NULL, /* PRNG state */
prng_idx, /* prng idx */
hash_idx, /* hash idx */
&key) /* our RSA key */
) != CRYPT_OK) {
printf("rsa_encrypt_key %s", error_to_string(err));
return EXIT_FAILURE;
}
/* now let's decrypt the encrypted key*/
l2 = sizeof(pt2);
if ((err = rsa_decrypt_key(out, /* encrypted data */
l1, /* length of ciphertext */
pt2, /* where to put plaintext */
&l2, /* plaintext length */
"TestApp", /* lparam for this program */
7, /* lparam is 7 bytes long */
NULL, /* PRNG state */
prng_idx, /* prng idx */
hash_idx, /* hash idx */
&res, /* validity of data */
&key) /* our RSA key */
) != CRYPT_OK) {
printf("rsa_decrypt_key %s", error_to_string(err));
return EXIT_FAILURE;
}
/* if all went well pt == pt2, l2 == 16, res == 1 */
}。

相关文档
最新文档