首页 > 其他分享 >详解RSA加密原理

详解RSA加密原理

时间:2023-12-04 14:57:24浏览次数:27  
标签:加密 互质 RSA 详解 密钥 密码学 欧拉

密码学

  • 密码学是指研究信息加密,破解密码的技术科学。密码学的起源可追溯到2000年前。而当今的密码学是以数学为基础的。
  • 密码学的历史大致可以追溯到两千年前,相传古罗马名将凯撒大帝为了防止敌方截获情报,用密码传送情报。凯撒的做法很简单,就是对二十几个罗马字母建立一张对应表。这样,如果不知道密码本,即使截获一段信息也看不懂。 从凯撒大帝时代到上世纪70年代这段很长的时间里,密码学的发展非常的缓慢,因为设计者基本上靠经验。没有运用数学原理
发展历史
  • 在1976年以前,所有的加密方法都是同一种模式:加密、解密使用同一种算法。在交互数据的时候,彼此通信的双方就必须将规则告诉对方,否则没法解密。那么加密和解密的规则(简称密钥),它保护就显得尤其重要。传递密钥就成为了最大的隐患。这种加密方式被成为对称加密算法(symmetric encryption algorithm) 1976年,两位美国计算机学家 迪菲(W.Diffie)、赫尔曼( M.Hellman ) 提出了一种崭新构思,可以在不直接传递密钥的情况下,完成密钥交换。这被称为“迪菲赫尔曼密钥交换”算法。开创了密码学研究的新方向
  • 1977年三位麻省理工学院的数学家 罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起设计了一种算法,可以实现非对称加密。这个算法用他们三个人的名字命名,叫做RSA算法。
RSA数学原理
  • 上世纪70年代产生的一种加密算法。其加密方式比较特殊,需要两个密钥:公开密钥简称公钥(publickey)和私有密钥简称私钥(privatekey)。公钥加密,私钥解密;私钥加密,公钥解密。这个加密算法就是伟大的RSA

欧拉函数φ :任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?

  •  互质关系:如果两个正整数,除了1以外,没有其他公因数,我们就称这两个数是互质关系(coprime)

计算这个值的方式叫做欧拉函数,使用:中(n)表示
如:
计算8的欧拉函数,和8互质的1、2、3、4、5、6、7、8
φ(8) = 4
计算7的欧拉函数,和7互质的1、2、3、4、5、6、7
ф(7)=6
计算56的欧拉函数
ф(56) = ф(8) * φ(7) = 4 * 6 = 24

  • 欧拉函数特点

  当n是质数的时候,@(n)=n-1。
  如果n可以分解成两个互质的整数之积,如
  n=A*B则:
  ф(A*B)=ф(A)* ф(B)
  根据以上两点得到:
  如果N是两个质数P1和P2的乘积则
  ф(N)=ф(P1)* (P2)=(P1-1)*(P2-1)

欧拉定理 

模反元素

迪菲赫尔曼密钥交换

RSA的诞生

RSA算法

 

 

 

标签:加密,互质,RSA,详解,密钥,密码学,欧拉
From: https://www.cnblogs.com/ZhangShengjie/p/17874906.html

相关文章

  • 【Java 进阶篇】Java Request 获取请求体数据详解
    在JavaWeb开发中,获取HTTP请求的请求体数据是一项常见任务。HTTP请求的请求体通常包含了客户端提交的数据,例如表单数据、JSON、XML等。在Java中,可以使用HttpServletRequest对象来获取HTTP请求的请求体数据。本文将详细解释如何使用Java获取HTTP请求的请求体数据,并提供示例代码。HTT......
  • 关于C#的RSA加密(用于泛微OA)
    由于项目需要,需要用公钥对秘钥进行加密,且对接系统用C#开发,需求是这样的:  注册许可证时返回的公钥spk对秘钥信息secrit进行加密。由于公钥spk是字符串,但C#中只认可的xml字符串的公钥才能够进行加密,可以使用以下方法,先进行转换,将公钥字符串转换成XML,再进行加密,就可以得到加密......
  • 简化版Transformer :Simplifying Transformer Block论文详解
    前言 本文探讨了来自苏黎世联邦理工学院计算机科学系的BobbyHe和ThomasHofmann在他们的论文“SimplifyingTransformerBlocks”中介绍的Transformer技术的进化步骤。这是自Transformer开始以来,我看到的最好的改进。本文转载自DeephubImba作者|FreedomPreetham仅用于学......
  • Linux LVM扩容详解
    1、将物理磁盘设备初始化为物理卷pvcreate/dev/sdb/dev/sdc查看物理卷命令:pvs删除物理卷:rmpv/dev/sdb2、创建卷组,并将PV加入卷组vgcreatename/dev/sdb/dev/sdc查看卷组:vgs删除卷组rmvgname3、基于卷组创建逻辑卷lvcreate-nname1-L2Gname......
  • linux上的rsync命令详解【转】
    1.rsync简介rsync就是远程同步的意思remotesync.rsync被用在UNIX/Linux执行备份操作操作.rsync工具包被用来从一个位置到另一个位置高效地同步文件和文件夹.rsync可以实现在同一台机器的不同文件直接备份,也可以跨服务器备份.2.rsync的重要特性速度快:初次同步时,......
  • 拼版不合理案例详解
    上一节我们讲到PCB的拼版是一个至关重要的环节,它不仅影响着产品的生产效率,也直接关系到产品的质量和成本。合理的拼版能够优化生产流程,减少浪费,提高产能。然而,在实际操作中,由于各种因素的影响,很多工程师的PCB拼版存在着不少问题。本文将带您探讨PCB拼版中的不合理案例,帮助您深入......
  • 详解十大经典排序算法(三):插入排序(Insertion Sort)
    算法原理每次从无序部分选择一个元素,将其插入到有序部分的正确位置,重复这个过程直至整个数组有序。算法描述插入排序是一种简单直观的排序算法,它的基本思想是将一个待排序的元素插入到已经排序好的序列中的适当位置,从而得到一个新的、长度加一的有序序列。插入排序的过程类似于整理......
  • 如何实现 token 加密
    以最常见的token格式jwt为例,token分为三段,分别是header、payload、signature。其中,header标识签名算法和令牌类型;payload标识主体信息,包含令牌过期时间、发布时间、发行者、主体内容等;signature是使用特定的算法对前面两部分进行加密,得到的加密结果。token有防篡改的......
  • Redis缓存和MySQL数据一致性方案详解
    需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MYSQL)间......
  • 全面的.NET微信网页开发之JS-SDK使用步骤、配置信息和接口请求签名生成详解
    JSSDK使用步骤步骤一:绑定安全域名:先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。步骤二:引入JS文件:在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.6.0.js如需进一步提升服务稳定性,当上述资源不......