非对称加密及RSA算法

news/2024/7/3 1:30:56
想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】
链客,有问必答!

在这里插入图片描述

最近在学习区块链相关的知识,发现其保证去中心化的一个重要的手段就是基于密码学中的非对称加密。
何为非对称加密?
在回答这个问题之前,我觉得有比说一下对称加密。所谓对称加密,就是加密和解密都使用同一个密钥。那么很显然,非对称加密就是加密和解密使用不同的密钥。
非对称加密有两个密钥:公钥和私钥,公钥是公开的,私钥是私密的,公钥加密的可以用私钥解开,私钥加密的东西可以用公钥解开,即加密和解密的密钥是不同的。举个例子,甲要发信息给乙,那么甲可以使用乙方的公钥对机密信息进行加密签名后发送给乙方,乙方收到数据后用自己的私钥对数据进行解密。
好了,非对称加密的概念我们很好理解,那么具体如何实现非对称加密呢?
常用的加密算法有RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。其中,使用最广泛的是RSA算法。下面我们就具体介绍一下RSA算法,主要参考博客安全体系(二)——RSA算法详解。
RSA
算法来源
RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。1987年7月首次在美国公布,当时他们三人都在麻省理工学院工作实习。RSA就是他们三人姓氏开头字母拼在一起组成的。
数学基础
质数:除了1和它自己不能被别的数整除,这个数就是质数。
互质:两个正整数,除了1以外,没有其他公因子,那么这两个数就是互质的。
欧拉函数:对于任意一个正整数n,如果n=p1k1p2k2…prkr,其中,p1,p2,…,pk为质数,那么在小于n的正整数中,可以用下面的公式求解与n互质的数的个数:
φ(n)=n(1-1/p1)(1-1/p2)…(1-1/pr)
欧拉定理:如果a和n互为质数,则aφ(n)≡1(mod n),其中φ(n)为n的欧拉函数。
模反元素:如果两个正整数a和n互质,那么一定可以找到整数b,使得ab-1被n整除,或者说ab被n除的余数是1。这时b被称为a的模反元素。用公式表示为:ab≡1(mod n)。

算法过程
密钥生成
1、选择两个不同的质数p和q;
2、计算两者的乘积为n,将n转换成二进制后,二进制的长度即为密钥的长度;
3、计算n的欧拉函数φ(n);
4、选择整个e,其中φ(n)>e>1,且e与φ(n)互质;
5、计算e对φ(n)的模范元素d;
6、将n和e封装成公钥,将n和d封装成私钥。

加密
me=c(mod n),其中m为需要加密的信息,c为加密后的信息。

解密
me=c(mod n),其中c为解密前的信息,m为解密后的信息。


http://lihuaxi.xjx100.cn/news/238073.html

相关文章

处理器拦截器(HandlerInterceptor)详解

处理器拦截器(HandlerInterceptor)详解 编程界的小学生 关注 2017.04.06 15:19* 字数 881 阅读 657评论 0喜欢 4简介SpringWebMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于处理器进行预处理和后处理。 应用场景1、日…

saltstack实现haproxy+keepalived负载均衡+高可用(二)

一键部署haproxykeepalived实现负载均衡高可用 实验环境: !!!! 特别注意: www.westos.org为test1的minion名字 test1: 172.25.1.11 nginx master minion test2: 172.25.…

python学习day3

1丶 用户先进行登陆如果用户名在文件中且用户密码也正确就登陆成功调用购物车函数,如果用户用户名输入正确密码错误,提示用户密码错误且重新输入,如果用户 输入用户名不存在,提示用户是否创建该用户,调用注册函数。 1.…

以太坊交易事件,日志的理解

想知道更多关于区块链技术知识,请百度【链客区块链技术问答社区】 链客,有问必答!Ethereum transation event and log 以太坊交易事件的功能有三个: 用于返回智能合约执行过程中的返回值到用户界面同步触发前端用户界面事件便宜的…

Phpcms V9手机门户设置教程:怎么用PC V9做手机网站

一、在PHPcms V9管理后台设置手机门户 1.1、开启手机网站。位置:模块 》手机门户 》 添加手机站点,具体设置可参照截图: 填写站点名和LOGO文件相对位置,绑定用于手机网站的二级域名m.cmsyou.com,域名以http://开头。 1…

中年妇女xxx_2019年国际妇女节庆祝活动

中年妇女xxxBehind the scenes幕后花絮 Becoming Women Techmakers Ambassador成为女性技术制造者大使 In 2018 I decided to start my remote freelance career and to continue to expand my Full Stack Developer knowledge by finishing the last FreeCodeamp projects f…

WPF查找子控件和父控件方法

原文:WPF查找子控件和父控件方法public List<T> GetChildObjects<T>(DependencyObject obj, string name) where T : FrameworkElement{DependencyObject child null;List<T> childList new List<T>();for (int i 0; i < VisualTreeHelper.GetCh…

zabbix简介及基本安装(一)

zabbix简单介绍&#xff1a; 官网&#xff1a;可以进官网查看一下&#xff1a;https://www.zabbix.com/cn/ //英语能力有限的读者可以将由上角的语言调成汉语方便查看 功能&#xff1a;网络监控、服务器监控、云监控、服务监控等。 介绍&#xff1a;zabbix&#xff08;[…