我们的网络安全试验,需用任一语言实现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
- 浏览 1307
- 评论(0)
- 论坛回复 / 浏览 (0 / 3295)
- 查看更多
相关推荐
RSA算法的纯Python实现,压缩包内共4个文件,分别是 1、大整数的运算库(当然不是算加减乘除的,这个python本身就有)。这个库是计算乘模运算,幂模运算(蒙哥马利算法),最大公约数算法及扩展最大公约数算法(扩展...
RSA算法简单实现
RSA算法的研究与简单实现
在本文中,我们将深入探讨如何使用Qt这一跨平台的C++应用程序开发框架来实现一个简化版的RSA算法。 首先,了解RSA的核心概念至关重要。RSA算法包含两个密钥:公钥和私钥。公钥可以公开,用于加密信息,而私钥必须...
本项目是使用C++编程语言实现的RSA算法,包括了大素数的生成、消息的加密以及消息的解密这三个核心部分。 首先,我们要理解RSA算法的基本原理。RSA算法基于数论中的两个关键事实:大整数分解困难(费马小定理和欧拉...
"RSA_simple"可能是一个简单的RSA算法实现,可能包含基础的密钥生成、加密和解密功能,适合初学者学习理解RSA的工作原理。 了解RSA算法并熟练运用其工具对于理解和保障网络安全至关重要。在实际开发中,开发者会...
在《JavaScript RSA算法简单实现.doc》文档中,可能详细阐述了如何在JavaScript环境中利用库实现RSA算法的步骤,包括如何生成密钥对、如何进行加密和解密操作,以及如何实现简单的数字签名。读者可以通过阅读文档,...
"基于C语言的RSA算法高效实现" RSA算法是一种公钥密码体制,由Rivest、Shamir和Adleman在1978年提出,是现今使用最广泛的公钥密码体制,也是公钥密码的国际标准。RSA算法基于几百年来广为流传的初等数论知识,事实...
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。...
RSA算法加解密 RSA算法是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir 和 Leonard Adleman。但RSA 的安全性一直未能得到...
利用c#简单实现的RSA加密算法。
在这个“RSA算法的C++实现软件”中,我们可以通过VC++编写的程序来理解和运用RSA算法。 首先,RSA的核心原理基于大数因子分解的困难性。它使用一对密钥,公钥和私钥。公钥可以公开给任何人,用于加密信息;而私钥...
本项目是用Java语言实现的一个简单的RSA算法。在理解这个实现之前,我们需要先了解RSA的基础知识。 RSA算法的核心原理基于两个大素数的乘积难以因式分解的数学难题。算法主要包括以下步骤: 1. **密钥生成**: - ...
#### 第五章 四素数RSA算法的简单实现 ##### 5.1 密钥产生部分 四素数RSA算法的密钥生成过程涉及选择四个素数,计算模数\( N \),以及生成公钥\( e \)和私钥\( d \)。 ##### 5.2 加密解密部分 加密和解密过程...
C++是一种强大的编程语言,适用于实现复杂的计算任务,如RSA算法。 在C++中实现RSA算法,首先需要解决的是大整数运算,因为涉及到的大素数可能超过普通整型变量的表示范围。因此,"BigInt"很可能是一个大整数类库,...
在易语言中实现RSA算法,可以帮助开发者更好地理解和运用这种强大的加密技术。 易语言是一种面向对象的、中国本土化的编程语言,它以其简洁的语法和丰富的内置库函数,使得编程变得更加直观和简单。在易语言中实现...
下面将详细介绍RSA算法的核心原理以及如何用C++实现。 1. **RSA算法基本原理** RSA基于数论中的两个关键性质:大整数分解困难性和欧拉函数的性质。它包含两个密钥:公钥和私钥。公钥用于加密,私钥用于解密。加密...
- `RSA算法实现.doc`:可能是一篇文档,其中包含了RSA算法的代码实现,可能是用某种编程语言(如Python、Java或C++)编写的,帮助读者理解如何在实际项目中应用RSA。 - `RSA.exe`:这可能是一个执行文件,是一个简单...
RSA算法是一种非对称加密算法,由Ron ...在"RSA算法演示"这个压缩包中,很可能是包含了使用MFC实现RSA算法的示例代码,你可以通过查看和学习这些代码,了解如何在实际项目中结合MFC和RSA实现数据的安全传输和存储。