芯片验证学perl还是python_科学网—用python或perl语言简单验证RSA算法 - 康建的博文...
python或perl语言都提供了很方便的对大整数计算的功能,这在C或Fortran中不易实现,需调用相关的库或另编程序。
多年前听公开课,一位老师给学生讲电子商务安全,涉及到公钥密码,讲得生动,但没公式没具体的例子,总觉不合适,后来想想,找几个数做例子因涉及到大整数运算,可能还真有点难度。
有python或perl进行大数运算,就很容易了。
RSA加密算法是1977年Ron Rivest、Adi Shamir和Leonard Adleman一起提出的。所以别说数论或陈景润研究的没多大用,这就是最好的应用例证。
找两个大质数p、q,设n=p*q ,r=(p-1)*(q-1),
找e与r互质,且e
找d满足(d*e) mod r =1,(mod为取余)
(n,e) 就是公钥,(n,d)就是私钥,也可互换,
设M为明文整数 (把明文分解转换为小于n的数),C为密文
则加密过程为 C=M^e mod n
解密过程为 M=C^d mod n (^表示乘方运算)
一、不编程用python验证
设p=23,q=31,则n是23*31=713,r=(23-1)*(31-1)=660
设e=53,可找到一个d=137,(不想编程,用excel公式=MOD((A1*53),660))往下一拉就可找到(A列填自然数,B列写公式)。
则有(713,53),(713,137)为公钥和私钥。
如把公钥给对方,其对123加密:写123**53%713,加密结果为216。
用私钥解密:216**137%713,解密结果为123。
123**53是582064223547422878717064247856117219999744776198031672118462507358927240593089706379581941870601919048920591883。216*137更是一个大数。
二、用perl验证
同上例选23,31,找数d
>perl -e "foreach $d (1..1000){ print($d),last if 53*$d%660==1 }"
得出137。
对456加密及解密
D:>perl -Mbigint -e "print 456**53%713"
654
D:>perl -Mbigint -e "print 654**137%713"
456
其实23,37都是很小的素数,数字游戏,也挺有意思
转载本文请联系原作者获取授权,同时请注明本文来自康建科学网博客。
链接地址:http://blog.sciencenet.cn/blog-797552-703326.html
上一篇:感慨一下,那些图书馆下架的书
下一篇:不同时代姓名用字
芯片验证学perl还是python_科学网—用python或perl语言简单验证RSA算法 - 康建的博文...相关推荐
- 利用python安装opencv_科学网—Anaconda Python PyCharm PyQT5 OpenCV PyTorch TF2.0 安装指南 - 张重生的博文...
Anaconda Python PyCharm PyQT5 OpenCV PyTorch TF2.0 安装指南与资料汇总 (用Anaconda配置Python集成开发环境,含Python3, PyQT ...
- python读取哨兵卫星数据_科学网—【Python】批量下载Sentinel-2卫星数据 - 江佳乐的博文...
简介:本文介绍了一种基于Python批量下载Sentinel-2卫星数据的方法.通过该方法,用户可自定义感兴趣研究区(ROI).限定时间范围.选择产品类别.进行云量筛选,实现自动化批量下载Sentin ...
- 9月20日云栖精选夜读 | 如何轻松搞定数据科学面试:Python&R语言篇
对于数据科学家来说,工作的一大部分都需要在交互式编程环境中对数据进行处理.分析和可视化. 在过去几年,R语言和Python成了进行数据科学中最炙手可热的两种语言.这两种语言各有优缺点,掌握这两种语言大 ...
- draw python_科学网—Draw figures with Python - 高琳琳的博文
2D histgram import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties # %ma ...
- python的安装包下载_科学网—[转载]python常用的安装包下载 - 林清莹的博文
Python常用的安装包下载 1.首先应该下载dlib安装包(例如:dlib-19.8.1-cp36-cp36m-win_amd64.whl) 可以通过此网址进行下载对应的dlib包 https: ...
- 计算机科学数学姚期智,科学网—姚期智:一流,从“姚班”开始 - 孙滔的博文...
如果我们做得好的话,在中国建立世界一流研究型大学的进程,会比任何人想象得都要快,中国的图灵之路也会比任何人想得都要接近--姚期智 清华"姚班" ■记者 孙滔 "如果你去问 ...
- 服务器虚拟化专用ovf模板,科学网—开放虚拟化格式规范2.0.0——OVF package - 唐宏伟的博文...
开放虚拟化格式规范2.0.0--OVF package 学习笔记 开放虚拟化格式规范(Open Virtualization Format Specification)是由DMTF制定的关于虚拟化技术 ...
- c语言 奥数题目及答案,科学网—C语言做一道小学奥数题 - 康建的博文
见过一道小学奥数题,记得题目是:从5月1日到7月1日数字0-9无重复的时间有多少个?(如0512142804是05月12日14:28:04,其中0.1.4有重复, 0526174839无重复). 大概 ...
- PHP安卓获取gpgga,科学网—GPS编码格式及C语言解码 - 王红旗的博文
有关磁偏角和地图定位的问题: 地图的方向:上北.下南.左西.右东是大多数地图的方向,但这可不是通用原则,如果地图上有方向标,可以通过方向标了解到这些. 地磁极是接近南极和北极的,但并不和南极.北极重合 ...
最新文章
- 程振波 算法设计与分析_算法分析与设计之动态规划
- 在你的计算机上使用qr码登录,如何在Android 10上使用QR码共享您的Wi-fi凭据 | MOS86...
- github中删除已建仓库(二)
- iOS任何界面全屏炫酷倒计时,一句代码就够了
- php 创mysql_PHP MySQL 创建表
- 微积分28-复合函数与隐函数的微分法
- 微信公众帐号中使用的QQ表情代码对照表
- Linux(1)之文件“776”
- php时间戳转换英文格式日期_php中时间戳和日期格式的转换
- Intelligent driver model(IDM)
- 论文解读-CenterNet:Keypoint Triplets for Object Detection
- Input输入框的失焦
- vue + echarts 之饼形图
- Python爬虫——王者荣耀全皮肤拉取
- vue从数据库获取图片地址,为什么图片地址为变量时找不到图片?
- jvm中年轻代,老年代
- 南泰就业联盟Android,统一推送联盟终于发力!国产厂商纷纷加入:将彻底解决安卓卡顿问题...
- 李小龙的传奇人生(2)
- 劲爆!电波拉皮有什么危害,电波拉皮效果好吗能维持多久,人见人夸了
- Java最全截取字符串方法
热门文章
- 联想高校AI精英挑战赛西部赛区落幕,西安交大过关斩将拔得头筹
- 使用MATLAB求图像的形心、外接矩形顶点坐标并标记
- c语言error 1075,fatal error C1075
- 将基础设施作为服务的云计算机类型是,将基础设施作为服务的云计算服务类型是IaaS,其中的基础设施包括( )...
- 双重游标的使用以及动态游标的使用
- Linux无界面新建Oracle数据库实例
- 碰到Maven依赖冲突脑壳疼?这个工具了解一下
- linux ubuntu 常用口令
- 数据在网络中是如何传输的
- 复杂网络学习笔记:networkx实现网络的基本拓扑性质