`
xwhoyeah
  • 浏览: 89645 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

RSA算法基础->实践

阅读更多
RSA算法基础->实践

<一>基础

RSA算法非常简单,概述如下:
找两素数p和q
取n=p*q
取t=(p-1)*(q-1)
取任何一个数e,要求满足e取d*e%t==1

这样最终得到三个数: n  d  e

设消息为数M (M 设c=(M**d)%n就得到了加密后的消息c
设m=(c**e)%n则 m == M,从而完成对c的解密。
注:**表示次方,上面两式中的d和e可以互换。

在对称加密中:
n d两个数构成公钥,可以告诉别人;
n e两个数构成私钥,e自己保留,不让任何人知道。
给别人发送的信息使用e加密,只要别人能用d解开就证明信息是由你发送的,构成了签名机制。
别人给你发送信息时使用d加密,这样只有拥有e的你能够对其解密。

rsa的安全性在于对于一个大数n,没有有效的方法能够将其分解
从而在已知n d的情况下无法获得e;同样在已知n e的情况下无法
求得d。

<二>实践

接下来我们来一个实践,看看实际的操作:
找两个素数:
p=47
q=59
这样
n=p*q=2773
t=(p-1)*(q-1)=2668
取e=63,满足e用perl简单穷举可以获得满主 e*d%t ==1的数d:
C:\Temp>perl -e "foreach $i (1..9999){ print($i),last if $i*63%2668==1 }"
847
即d=847

最终我们获得关键的
n=2773
d=847
e=63

取消息M=244我们看看

加密:

c=M**d%n = 244**847%2773
用perl的大数计算来算一下:
C:\Temp>perl -Mbigint -e "print 244**847%2773"
465
即用d对M加密后获得加密信息c=465

解密:

我们可以用e来对加密后的c进行解密,还原M:
m=c**e%n=465**63%2773 :
C:\Temp>perl -Mbigint -e "print 465**63%2773"
244
即用e对c解密后获得m=244 , 该值和原始信息M相等。
分享到:
评论

相关推荐

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

    RSA 加密算法详解 RSA 加密算法是第一个比较完善的公开密钥算法,它既能用于加密,也能用于数字签名...在这里,我们可以了解到 RSA 加密算法的基本原理和数学基础,然后可以通过实践和应用来更好地掌握 RSA 加密算法。

    基于python的毕业设计_lsb算法与rsa算法的信息隐藏算法实现(django)_(项目源码+数据库脚本+文档).zip

    项目的核心涉及后端开发和数据库集成,旨在帮助具有一定编程基础、对技术充满兴趣的开发者,以及大学生作为学习参考的实践项目。项目采用主流的Python技术栈,适用于有一定编程和Web开发了解的人群,有助于更好地...

    RSA加密应用常见缺陷的原理与实践.zip

    在开始前可以通过 《RSA算法详解》 这篇文章了解关于RSA的基础知识,包括加解密方法,算法原理和可行性证明等。 选取两个较大的互不相等的质数p和q,计算n = p * q 。 计算phi = (p-1) * (q-1) 。 选取任意e,使得e...

    基于python的毕业设计_RSA算法的数字签名生成软件_(项目源码+数据库脚本+文档).zip

    项目的核心涉及后端开发和数据库集成,旨在帮助具有一定编程基础、对技术充满兴趣的开发者,以及大学生作为学习参考的实践项目。项目采用主流的Python技术栈,适用于有一定编程和Web开发了解的人群,有助于更好地...

    大作业-Shor算法1

    Shor算法基础知识点 作为一名IT行业大师,我将从给定的文件中生成相关知识点,以下是对标题、描述、标签和部分内容的解释和分析: 标题和描述:大作业-Shor算法1 Shor算法是一种量子算法,用于因子分解大整数,...

    RSA实验报告.docx

    公钥加密算法一般是将对密钥的求解转化为对数学上的困难问题的求解,例如RSA算法的安全性是建立在"大数分解和素性检测"这个数论难题的基础上,已知两个大素数a和b,求出a*b是容易计算的,而已知a*b,想知道其是哪两...

    密码学加密与解密算法演示程序含源码(Cryptology)

    自己参考网上的一些源码编写的一个包括密码学多个经典加解密算法的程序,含凯撒、Vigenere、Permutation、DES、RC4、Playfair、RSA、DF密钥交换等

    算法导论(part2)

    本书是原书的第2版,在第1版的基础之上增加了一些新的内容,涉及算法的作用、概率分析和随机化算法、线性规划,以及对第1版中详尽的、几乎涉及到每一小节的修订。这些修订看似细微,实际上非常重要。书中引入了...

    算法导论(part1)

    本书是原书的第2版,在第1版的基础之上增加了一些新的内容,涉及算法的作用、概率分析和随机化算法、线性规划,以及对第1版中详尽的、几乎涉及到每一小节的修订。这些修订看似细微,实际上非常重要。书中引入了...

    基于python的毕业设计_RSA加密算法软件的研究设计_(项目源码+数据库脚本+文档).zip

    项目的核心涉及后端开发和数据库集成,旨在帮助具有一定编程基础、对技术充满兴趣的开发者,以及大学生作为学习参考的实践项目。项目采用主流的Python技术栈,适用于有一定编程和Web开发了解的人群,有助于更好地...

    网络安全是指保护计算机网络和网络基础设施的实践和技术 随着信息技术的发展,网络安全变得越来越重要,因为许多关键信息和个人数据都存

    常见的加密算法包括AES、RSA等。 身份认证:身份认证技术用于验证用户的身份,确保他们有权访问网络资源。常见的身份认证方式包括用户名密码、指纹识别、双因素认证等。 漏洞管理:定期检查和修复系统中的漏洞是...

    stm32 密码学基础 , 讲述了对称加密,非对称加密,签名,身份认证等

    在非对称加密中,我们可以使用RSA算法来实现公钥、私钥的生成和使用。例如,Alice可以使用自己的私钥来加密消息,并使用Bob的公钥来加密消息,使得只有Bob能够解密信息。 密码学是保护信息安全的重要工具。我们可以...

    饿了么移动安全实践之路.pdf

    2. 非对称加密算法:使用非对称加密算法来保护数据,例如RSA、ECC等。 3. 通用加密算法变形:使用通用加密算法变形来保护数据,例如Hash、HMAC等。 此外,饿了么移动安全实践之路还提到了完整性认证和身份认证,...

    《Understanding Cryptography》 《深入浅出密码学-常用加密技术原理与应用》(英文原版)

    常用的对称加密算法有AES、DES等,而非对称加密算法有RSA、ECC等。 数字签名 数字签名是用于验证消息的身份和完整性的一种技术。数字签名可以使用公钥加密算法来生成签名,然后使用私钥来验证签名。常用的数字签名...

    Java加密与解密的艺术配书源代码

    对称加密网络应用242 7.8 小结254 第8章高等数据加密—非对称加密算法256 8.1 非对称加密算法简述256 8.2 密钥交换算法—DH 258 8.3 典型非对称加密算法—RSA 269 8.4 常用非对称加密算法—ElGamal277 8.5 实例:非...

    网络安全相关的密码学、网络攻防、安全分析等教程.rar

    非对称加密算法:如RSA、ECC、DH、DSA、ElGamal等。 摘要算法:如MD5、SHA-1、SHA-256、SHA-3、RIPEMD等。 3. 密码学应用 加密通信:使用公钥基础设施(PKI)和SSL/TLS协议。 数字签名:验证数据的完整性和来源的...

    Java加密与解密的艺术

    对称加密网络应用2427.8 小结254第8章高等数据加密—非对称加密算法2568.1 非对称加密算法简述2568.2 密钥交换算法—DH 2588.3 典型非对称加密算法—RSA 2698.4 常用非对称加密算法—ElGamal2778.5 实例:非对称加密...

    应用密码学第二版英文版

    并在此基础上列举了如DES、IDEA、RSA、DSA等十多个算法以及多个应用实例,并提供了算法的源代码清单。 全书内容广博权威,具有极大的实用价值,是致力于密码学研究的专业及非专业人员一本难得的好书。

    Elements of Information Theory 2nd

    7. 信息论中的算法:信息论中有许多重要的算法,包括霍夫曼编码、LZW编码、RSA加密算法等。 8. 信息论在实际应用中的重要性:信息论在实际应用中的重要性体现在数据存储、数据传输、加密和解密、错误检测和纠正等...

    车牌系统基站子系统的毕业论文(附代码)

    第二章从与系统的理论基础出发,讲述了与之相关的算法,特别是3DES与RSA,并对DES和RSA进行了比较。 第三章从基站子系统的硬件结构出发,讲述了AT89S52与SSX26两款芯片的结构、功能等特点。 第四章从子系统的实践...

Global site tag (gtag.js) - Google Analytics