目录

密钥生成过程

加密和解密

举例

数字签名技术

举例

中国剩余定理


密钥生成过程

1.选取两个不同的大素数p和q,为了安全程度最大,p和q长度一致,计算模n=pq;

2.计算模n的欧拉函数:φ(n)=(p-1)(q-1);(至于为什么欧拉函数是这样,请移步浅谈欧拉函数)

3.随机选择一个整数 e, 1< e < φ(n),且 e 与 φ(n) 互质

4.计算私钥d,满足d*e≡1(modφ(n))

加密和解密

加密(计算密文C)

C=M^e mod n

解密(计算明文M)

M=C^d mod n

举例

题目:已知p=7,q=11,e=17,M=8,应用RSA算法对明文M进行加密得到密文C,并对密文C解密。

解:

1.计算模,n=pq=77;

2.计算模n的欧拉函数,φ(n)=(p-1)(q-1)=6*10=60;

3.计算私钥d,e*d≡1(modφ(n));d=53;

4.计算密文C,C=M^e modn=8^17mod77=57mod77,得C=57(第四步和第五步计算要用到中国剩余定理)

5.计算明文M,M=C^d modn=57^53mod77=8mod77,得M=8

顺带提一下数字签名技术

生成过程同上文密钥生成过程

数字签名过程

[H(m)]^d modn=S

数字签名验证

S^e modn=H(m)

举例

已知p=13,q=11,e=13,则有n=pq=143,φ(n)=(p-1)(q-1)= 120。求解e*d=13d=1(mod120)得d=37,即公钥为(n=143, e=13),私钥为d=37

签名过程:假定消息m的哈希值h(m)=16,计算m的签名

s = h(m)^d  mod n=16^37 mod 143 = 3

验证过程:收到签名s后,计算

s^e mod n=3^13 mod 143=16, h(m) mod n=16 mod 143 =16

等式h(m) mod n= se mod n成立,因此,此签名有效。

中国剩余定理

最后再扯一下中国剩余定理

话说“韩信用兵,多多益善。此是化工造物之妙。” 停停停,我怎么可能从这里开始讲起。

想看韩信点兵(证明过程)的去这里看→中国剩余定理(CRT )

已知a * b mod n = ( a mod n ) * ( b mod n ) mod n

所以a^b mod n = (a mod n)^b mod n

举两个例子直观一些

RSA密码算法和数字签名技术相关推荐

  1. 深入了解MD4,MD5,SHA哈希密码算法与破解技术

    简介 密码(password)是最广泛使用的认证系统之一,防止未经授权的用户访问系统,无论是离线还是在线.在大多数系统中,密码是通过加密存储的,以便为每个用户提供安全性.然而,在这些密码的加密之内,仍 ...

  2. RSA密码算法C++实现

    文章目录 1. RSA非对称加密原理 2. C++ 随机生成密钥版本 3. 密钥固定e=13版本 1. RSA非对称加密原理 网上一大把,这里推荐一篇比较好的博客 2. C++ 随机生成密钥版本 #i ...

  3. Pycrypto与RSA密码技术

    密码与通信 密码技术是一门历史悠久的技术.信息传播离不开加密与解密.密码技术的用途主要源于两个方面,加密/解密和签名/验签. pip install pycrypto RSA 密码算法与签名 RSA是 ...

  4. 密码学(一)—— 背景、常用的密码算法简介,单向散列简介、数字签名简介

    背景 密码,最初的目的就是用于对信息的加密,计算机领域的密码技术种类繁多,但随着密码学的运用,密码还用于身份认证,防止否认等功能上.最基本的,是信息加密解密分为对称加密和非对称加密,这两者的区别在于是 ...

  5. 双钥密钥密码算法RSA解析与短密钥实现

    单钥密钥算法,由于其加密的速度相对来说比较快,所以常用来对文本文件加密(如TEA.DES等),而双钥密钥算法(如RSA)由于其加密解密的密钥不同并且采用暴力破解的方式也比较低效(基本不可能被破解),低 ...

  6. 数字签名技术以及RSA算法的原理实现

    数字签名技术 1)对称加密与非对称加密 对称加密:对文件的加密和解密采用的都是同一个密钥,有IDEA和DES两种加密算法 非对称加密:有一对公钥和私钥 如果我们使用公钥加密,必须得用私钥解密:如果使用 ...

  7. 数字签名技术 -- DSA算法

    DSA算法是1991年美国国家标准技术协会公布的数字签名标准(DSS)的核心算法.本质上是ElGamal数字签名算法,仅能与SHA系列算法结合,没有相应的MD融合算法. DSA算法和RSA算法的异同 ...

  8. RSA密码的手动算法+快速幂算法

    公钥加密方案(非对称加密算法) 1.为什么要引入公钥加密方案? 密码学中的加密方案分成对称密钥和非对称密钥(也就是我们说的公钥加密,代表加密算法是RSA加密算法). 而对称加密方法有一个特点,任何通信 ...

  9. 【密码算法 之零】对称算法(DES,、3DES、 AES、DM5、HMAC、CMAC、SHAxx、SM3、SM4),非对称算法(RSA、ECC、ECDSA、ECDH、SM2、SM9...)

      由于工作的需要,在过去的两年中学习.适配了很多算法,包括对称算法.非对称算法.国密算法.国际算法等.为了逼迫自己能够牢记并掌握这些算法的基本知识点,故本人写了一个关于算法的专栏(持续更新中...) ...

最新文章

  1. java docx word api_javadoc生成word接口文档
  2. HDLBits 系列(38)值得一看的状态机设计题目
  3. 装箱与拆箱及其性能损失问题
  4. Tensorflow Probability 与 TensorFlow 的版本依赖关系
  5. ecg 幅度_ECG信号中一些运动伪差的讨论
  6. 用启明云端支持ESP32的GUI做了一个测温HMI交互界面
  7. 太突然!一日本上班族大叔被通知得了诺贝尔奖,他却选择消失了16年,又有重大发现!...
  8. jquery自定义banner图滚动插件---(解决最后一张图片倒回第一张图片的bug)
  9. SDUT 2766 小明传奇2
  10. 来我们公司面试必问的41道 SpringBoot 面试题,不看亏大了!
  11. afx_msg void OnHScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar )的参数和作用分析
  12. Lombok之@Cleanup使用
  13. 有奖:说出你的网络安全故事
  14. 用数据来看马拉多纳究竟有多么闪耀!!!
  15. Vue实战中的一些小魔法
  16. Flink程序 Timer实现定时操作
  17. 公钥(RSA)加密应用场景
  18. What are 20 questions to detect fake data scientists?
  19. 自己制作的粉碎机批处理程序
  20. 标准对联广告Js代码

热门文章

  1. 小程序记录页面停留时间
  2. Multisim 中缺失 HI-TECH C51-Lite Compiler的问题。
  3. Virtualbox虚拟机 创建共享文件夹
  4. Linux内核分析——第二周学习笔记
  5. Java程序设计基础项目总结报告
  6. 大陆 android app,mu大陆App
  7. VM虚拟机中使用reboot命令后 无法重启虚拟机
  8. NYOJ-街区最短路径问题
  9. 从《肖申克的救赎》中解读人性之韧
  10. 网页自动弹出新网页代码