`
iamsk
  • 浏览: 70662 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

RSA算法的简单实现

阅读更多

我们的网络安全试验,需用任一语言实现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!"
 
分享到:
评论

相关推荐

    RSA算法的实现.cpp

    RSA算法简单实现

    RSA算法的纯Python实现(源码)

    RSA算法的纯Python实现,压缩包内共4个文件,分别是 1、大整数的运算库(当然不是算加减乘除的,这个python本身就有)。这个库是计算乘模运算,幂模运算(蒙哥马利算法),最大公约数算法及扩展最大公约数算法(扩展...

    RSA算法的研究与简单实现

    RSA算法的研究与简单实现

    RSA.rar_RSA算法_寻找大素数 rsa_数论算法_简单数论

    RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。...

    使用Qt实现简化版的RSA算法

    该资源是使用Qt开发的简化版的RSA非对称加密算法工具,有简单的操作界面。下载前请前往主页查看《使用Qt实现一个简化版的RSA加密算法》的博客。

    RSA算法c#实现

    利用c#简单实现的RSA加密算法。

    简单的RSA算法的实现

    java实现简单的RSA算法的实现,采用了素数检测算法,包含了费马检测等等

    中国剩余定理在RSA算法中应用的研究详细实验

    RSA算法中模数和运算效率之间一直存在矛盾,目前一些认证机构已采用模数为 2048 ...在此基础上,本文选取了一种四素数RSA算法进行阐述和简单实现,这种算法巧妙地利用了中国剩余定理将传统的RSA算法的速度提升了几倍。

    python 实现RSA算法

    用python写的RSA简单算法,用了分组的方法,可能和书上说的不太一样,不过代码挺简单的,有readme文件可以详细看看,不懂的也可直接问我。

    javascript RSA 算法实现

    javascript 实现RSA 算法,实现利用javascript进行简单的客户端数字签名

    RSA算法的C++实现软件

    用VC++实现的简单RSA加密解密算法,也可用于数字签名.

    RSA加密算法 C++ 实现

    RSA加密算法 C++ 实现,RSA公钥加密算法是1977年由Ron Rivest、Adi ...RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

    rsa.zip_QT RSA加密算法_Qt rsa加密_qt rsa加密步骤_rsa_rsa算法 qt

    QT上RSA加密算法实现,附带图形界面,更加直观

    rsa加密算法(Delphi实现).zip

    RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·...RSA算法基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

    简单的RSA加密算法(JAVA实现的)

    简单的RSA加密算法,用JAVA语言实现的,RSA算法

    rsa加密算法的实现

    使用c语言实现的rsa的加密算法,能够实现对简单得文件的rsa加密

    RSA算法代码

    此代码是RSA加密算法的python代码的简单实现,包括对任意明文的加密解密

    RSA简单算法java

    RSA算法的数字简单实现,按照RSA算法的大数很难分解为大素数的乘积的思路,给出素数p,q,然后进行一系列运算后进行简单数字的加密和解密。

    rsa加密算法的c++简单实现

    rsa加密算法是密码学的基础算法,利用编程语言进行简单的实现是必备技能

    大数实现RSA密码算法

    大数实现的RSA密码算法,其中包含了大数的运算,素数的产生,密码算法中经常用到的有关算法,用简单的C++实现的,在VS2008平台实现的。

Global site tag (gtag.js) - Google Analytics