实验目的
(1) 帮助学生掌握RSA公钥系统的密钥生成、加密和解密过程, 能够利用所学过的编程语言, 熟悉RSA公钥加密算法流程与编程实现加密算法. 掌握编程实现实际问题中的方法, 提高解决问题的能力.
(2) 要求学生掌握算法的程序实现的方法,能应用密码算法的特点, 设计合适的交互界面, 并能正确实现应用编程.
(3) 要求学生掌握用规范的方法书写实验报告.
实验仪器设备/实验环境
(1) PC Windows操作系统, 使用python语言编程, 或者使用数学软件MATLAB、Maple编程.
RSA公钥密码原理
任务: Alice要求Bob将信息m用RSA方法加密传送回来.
(1) 密钥生成: Alice找到大素数p,q, 令n=pq, 取e>1满足, 再找d使得, 然后Alice将n, e作为加密密钥(公钥)发送给Bob, 这里p, q, d, 都是私钥, 要求保密, 用作解密;
(2) 加密: Bob 将明文m<n加密得到密文, 并将密文Em传送给 Alice;
(3) 解密: Alice收到后密文Em, 计算 , 恢复明文m.
实验内容
实验原理已包含实验内容, 下面所说的只是实验内容实现的难点和要点:
设计输入密钥生成界面;
开始时明文可不用字符直接用数字.
import random
from tkinter import *
from tkinter.font import *
import tkinter.messagebox
import re
def is_sushu(Num):
for i in range(2,int(Num**0.5)+1):
if Num % i ==0:
return False
return True
def is_husu(a,b):
if a > b:
index=b
elif a