我们的网络安全试验,需用任一语言实现rsa算法,我就用python实现了。
用python来实现,相对于c来说,代码较短,但是速度明显没有c的快。
RSA算法描述见:wiki
代码如下:
#!/usr/bin/env python
#-*-coding: utf-8-*-
# author: "SK (skxiaonan@gmail.com)"
# date: "Date: 2009/05/22 09:10:10"
import math
def isPrime(number):
i=2
sqrtNumber=int(math.sqrt(number))
for i in range(2, sqrtNumber+1):
if number%i == 0:
return False
i = i+1
return True
if __name__=="__main__":
print "*"*77
Flag = False
while Flag == False:
p = int(raw_input("Please input a prime(P): "))
Flag = isPrime(p)
if Flag == False:
print "What you input is not a prime!"
print "The P is: ", p
Flag = False
while Flag == False:
q = int(raw_input("Please input a prime(Q): "))
if p == q:
continue
Flag = isPrime(q)
if Flag == False:
print "What you input is not a prime!"
print "The Q is: ", q
n = p*q
print "The N is: ", n
t = (p-1)*(q-1)
print "The T is: ", t
print "*"*77
Flag = False
while Flag == False:
e = int(raw_input("Please input a number(E): "))
if (e<1 or e>t):
continue
d=0
while (((e*d)%t) != 1):
d+=1
Flag = True
print "The E is: ", e
print "The D is: ", d
print "The Public Key(E, N) is:", e, n
print "The Private Key(D, N) is:", d, n
print "*"*77
Flag = False
while Flag == False:
plainText = int(raw_input("Please input a plaintext: "))
if (plainText < n):
Flag = True
print "The plaintext is: ", plainText
print "Encrypt"+"."*7
cipherText = (plainText**e)%n
print "cipherText is: ", cipherText
print "Decrypt"+"."*7
plain = (cipherText**d)%n
print "The plain is: ", plain
print "*"*77
if plainText == plain:
print "RSA Test success."
else:
print "RSA Test unsuccess!"
分享到:
- 2009-05-22 09:27
- 浏览 1276
- 评论(0)
- 论坛回复 / 浏览 (0 / 3274)
- 查看更多
相关推荐
RSA算法简单实现
RSA算法的纯Python实现,压缩包内共4个文件,分别是 1、大整数的运算库(当然不是算加减乘除的,这个python本身就有)。这个库是计算乘模运算,幂模运算(蒙哥马利算法),最大公约数算法及扩展最大公约数算法(扩展...
RSA算法的研究与简单实现
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。...
该资源是使用Qt开发的简化版的RSA非对称加密算法工具,有简单的操作界面。下载前请前往主页查看《使用Qt实现一个简化版的RSA加密算法》的博客。
利用c#简单实现的RSA加密算法。
java实现简单的RSA算法的实现,采用了素数检测算法,包含了费马检测等等
RSA算法中模数和运算效率之间一直存在矛盾,目前一些认证机构已采用模数为 2048 ...在此基础上,本文选取了一种四素数RSA算法进行阐述和简单实现,这种算法巧妙地利用了中国剩余定理将传统的RSA算法的速度提升了几倍。
用python写的RSA简单算法,用了分组的方法,可能和书上说的不太一样,不过代码挺简单的,有readme文件可以详细看看,不懂的也可直接问我。
javascript 实现RSA 算法,实现利用javascript进行简单的客户端数字签名
用VC++实现的简单RSA加密解密算法,也可用于数字签名.
RSA加密算法 C++ 实现,RSA公钥加密算法是1977年由Ron Rivest、Adi ...RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
QT上RSA加密算法实现,附带图形界面,更加直观
RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·...RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
简单的RSA加密算法,用JAVA语言实现的,RSA算法
使用c语言实现的rsa的加密算法,能够实现对简单得文件的rsa加密
此代码是RSA加密算法的python代码的简单实现,包括对任意明文的加密解密
RSA算法的数字简单实现,按照RSA算法的大数很难分解为大素数的乘积的思路,给出素数p,q,然后进行一系列运算后进行简单数字的加密和解密。
rsa加密算法是密码学的基础算法,利用编程语言进行简单的实现是必备技能
大数实现的RSA密码算法,其中包含了大数的运算,素数的产生,密码算法中经常用到的有关算法,用简单的C++实现的,在VS2008平台实现的。