`
iamsk
  • 浏览: 71787 次
  • 性别: 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算法的纯Python实现(源码)

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

    RSA算法的实现.cpp

    RSA算法简单实现

    RSA算法的研究与简单实现

    RSA算法的研究与简单实现

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

    在本文中,我们将深入探讨如何使用Qt这一跨平台的C++应用程序开发框架来实现一个简化版的RSA算法。 首先,了解RSA的核心概念至关重要。RSA算法包含两个密钥:公钥和私钥。公钥可以公开,用于加密信息,而私钥必须...

    RSA算法的c++实现

    本项目是使用C++编程语言实现的RSA算法,包括了大素数的生成、消息的加密以及消息的解密这三个核心部分。 首先,我们要理解RSA算法的基本原理。RSA算法基于数论中的两个关键事实:大整数分解困难(费马小定理和欧拉...

    RSA算法工具 RSA算法

    "RSA_simple"可能是一个简单的RSA算法实现,可能包含基础的密钥生成、加密和解密功能,适合初学者学习理解RSA的工作原理。 了解RSA算法并熟练运用其工具对于理解和保障网络安全至关重要。在实际开发中,开发者会...

    javascript RSA 算法实现

    在《JavaScript RSA算法简单实现.doc》文档中,可能详细阐述了如何在JavaScript环境中利用库实现RSA算法的步骤,包括如何生成密钥对、如何进行加密和解密操作,以及如何实现简单的数字签名。读者可以通过阅读文档,...

    基于C语言的RSA算法高效实现

    "基于C语言的RSA算法高效实现" RSA算法是一种公钥密码体制,由Rivest、Shamir和Adleman在1978年提出,是现今使用最广泛的公钥密码体制,也是公钥密码的国际标准。RSA算法基于几百年来广为流传的初等数论知识,事实...

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

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

    RSA算法加解密

    RSA算法加解密 RSA算法是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir 和 Leonard Adleman。但RSA 的安全性一直未能得到...

    RSA算法c#实现

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

    RSA算法的C++实现软件

    在这个“RSA算法的C++实现软件”中,我们可以通过VC++编写的程序来理解和运用RSA算法。 首先,RSA的核心原理基于大数因子分解的困难性。它使用一对密钥,公钥和私钥。公钥可以公开给任何人,用于加密信息;而私钥...

    简单的RSA算法的实现

    本项目是用Java语言实现的一个简单的RSA算法。在理解这个实现之前,我们需要先了解RSA的基础知识。 RSA算法的核心原理基于两个大素数的乘积难以因式分解的数学难题。算法主要包括以下步骤: 1. **密钥生成**: - ...

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

    #### 第五章 四素数RSA算法的简单实现 ##### 5.1 密钥产生部分 四素数RSA算法的密钥生成过程涉及选择四个素数,计算模数\( N \),以及生成公钥\( e \)和私钥\( d \)。 ##### 5.2 加密解密部分 加密和解密过程...

    RSA算法C++实现

    C++是一种强大的编程语言,适用于实现复杂的计算任务,如RSA算法。 在C++中实现RSA算法,首先需要解决的是大整数运算,因为涉及到的大素数可能超过普通整型变量的表示范围。因此,"BigInt"很可能是一个大整数类库,...

    易语言RSA算法演示

    在易语言中实现RSA算法,可以帮助开发者更好地理解和运用这种强大的加密技术。 易语言是一种面向对象的、中国本土化的编程语言,它以其简洁的语法和丰富的内置库函数,使得编程变得更加直观和简单。在易语言中实现...

    RSA算法C++实现源码

    下面将详细介绍RSA算法的核心原理以及如何用C++实现。 1. **RSA算法基本原理** RSA基于数论中的两个关键性质:大整数分解困难性和欧拉函数的性质。它包含两个密钥:公钥和私钥。公钥用于加密,私钥用于解密。加密...

    关于RSA算法的演示程序

    - `RSA算法实现.doc`:可能是一篇文档,其中包含了RSA算法的代码实现,可能是用某种编程语言(如Python、Java或C++)编写的,帮助读者理解如何在实际项目中应用RSA。 - `RSA.exe`:这可能是一个执行文件,是一个简单...

    RSA算法加密MFC实现

    RSA算法是一种非对称加密算法,由Ron ...在"RSA算法演示"这个压缩包中,很可能是包含了使用MFC实现RSA算法的示例代码,你可以通过查看和学习这些代码,了解如何在实际项目中结合MFC和RSA实现数据的安全传输和存储。

Global site tag (gtag.js) - Google Analytics