密码学之RSA基础】的更多相关文章

预备数论知识 互质关系 如果两个正整数,除了1以外,没有其他公因子,那么就称这两个数是互质关系 比如:4和7,13和61 欧拉函数 思考:任意给定整数n,在小于等于n的正整数中,有多少个数与n构成互质关系? 计算这个值的方法即欧拉函数,以\(φ(n)\)表示 第一种情况: 如果n=1,则\(φ(n)\)=1,因为1和任何数互质 第二种情况: 如果n是质数,则\(φ(n)\)=n-1:易证 第三种情况: 如果n是质数的某一次方,即:\[n=p^k \quad(p为质数,k为大于1的整数)\] 则:…
本文介绍RSA加解密中必须考虑到的密钥长度.明文长度和密文长度问题,对第一次接触RSA的开发人员来说,RSA算是比较复杂的算法,天缘以后还会补充几篇RSA基础知识专题文章,用最简单最通俗的语言描述RSA,让各位了解RSA算法本身其实也很简单,RSA的复杂度是因为数学家把效率和安全也考虑进去的缘故. 本文先只谈密钥长度.明文长度和密文长度的概念知识,RSA的理论及示例等以后再谈.提到密钥,我们不得不提到RSA的三个重要大数:公钥指数e.私钥指数d和模值n.这三个大数是我们使用RSA时需要直接接触的…
1.密钥的计算获取过程 密钥的计算过程为:首先选择两个质数p和q,令n=p*q. 令k=ϕ(n)=(p−1)(q−1),原理见2的分析 选择任意整数d,保证其与k互质 取整数e,使得[de]k=[1]k.也就是说de=kt+1,t为某一整数. 2.RSA加密算法原理解析 下面分析其内在的数学原理,说到RSA加密算法就不得不说到欧拉定理. 欧拉定理(Euler's theorem)是欧拉在证明费马小定理的过程中,发现的一个适用性更广的定理. 首先定义一个函数,叫做欧拉Phi函数,即ϕ(n),其中,…
RSA公钥密码体制是美国麻省理工学院(MIT)的三位科学家Rivest.Shamir.Adleman于1978年提出的,简称RSA公钥秘密系统.实际上,RSA稍后于MH背包公钥密码实用系统,但它的影响超过了MH密码体系.它是一个根据理论模型可以进行应用设计的公钥密码实用系统.RSA体制的理论基础是数论的欧拉函数,安全性依据是:求两个大素数乘积是计算上容易的,但要分解大数的素因子是困难的.因此是迄今为止仍被认为一个最有影响的密码体制.…
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密. RSA的算法涉及三个参数,n.e1.e2. 其中,n是两个大质数p.q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度. e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质:再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1. (n,e1),(n,e2)就是密钥对.其中(n,e1)为公钥,(n,e2)为私钥.[1]  RSA加解密的…
这个编辑器不支持kotlin,尴尬了···· 算了,就用Java来弄吧 val 定义常量 var 定义变量 具体kotlin的开发手册详见:http://www.runoob.com/kotlin/kotlin-tutorial.html 真的不想用Miracl这个库···而且只支持c 但是用kotlin(其实是java中自带的security库)真的超级方便!!!! 看代码就知道了:(如果要是c++我得写多少啊···/笑哭) (代码高亮不符合,请以IDEA为准) import com.sun.…
转载自http://www.matrix67.com/blog/archives/5100 数论,数学中的皇冠,最纯粹的数学.早在古希腊时代,人们就开始痴迷地研究数字,沉浸于这个几乎没有任何实用价值的思维游戏中.直到计算机诞生之后,几千年来的数论研究成果突然有了实际的应用,这个过程可以说是最为激动人心的数学话题之一.最近我在<程序员>杂志上连载了<跨越千年的 RSA 算法>,但受篇幅限制,只有一万字左右的内容.其实,从数论到 RSA 算法,里面的数学之美哪里是一万字能扯完的?在写作…
HTTPS 是建立在密码学基础之上的一种安全通信协议,严格来说是基于 HTTP 协议和 SSL/TLS 的组合.理解 HTTPS 之前有必要弄清楚一些密码学的相关基础概念,比如:明文.密文.密码.密钥.对称加密.非对称加密.信息摘要.数字签名.数字证书.接下来我会逐个解释这些术语,文章里面提到的『数据』.『消息』都是同一个概念,表示用户之间通信的内容载体,此外文章中提到了以下几个角色: Alice:消息发送者 Bob:消息接收者 Attacker:中间攻击者 Trent:第三方认证机构 密码 密…
Java 密码学算法 候捷老师在< 深入浅出MFC 2e(电子版)>中引用林语堂先生的一句话: 只用一样东西,不明白它的道理,实在不高明 只知道How,不知道Why,出了一点小问题时就无能为力了.我们课上鼓励大家在Linux下学习编程,尽量在命令行中编辑/编译/调试程序,Git的使用,数据库的管理都先会命令方式下使用,这样在IDE中,在GUI界面中出了问题,我们有更好的方法查找. 现在我们遇到另外一个极端,不会用一样东西,却想要明白它的道理,这实在太难了.比如有的同学连Linux都没用过,却想…
摘要:本文讲解二维码纠错码字生成使用到的数学数论基础知识,伽罗瓦域(Galois Field)GF(2^8),这是手绘二维码填格子理论基础,不想深究可以直接跳过.同时数论基础也是 Hash 算法,RSA 算法等密码学的入门基础. 二维码生成算法最为核心的就是编码规则和纠错码字的生成.本篇专门讲解纠错涉及到的伽罗瓦域(Galois Field).本文内容大部分是阅读<密码编码学与网络安全>后参考相关 PPT 编写,如有遗漏或不严谨地方请参考专业书籍. 数论基础 整除,因数,素数 设 a , b(…