密码学(二)---DES、SM、RSA

news2024/11/13 12:55:06

在使用本博客提供的学习笔记及相关内容时,请注意以下免责声明:
信息准确性:本博客的内容是基于作者的个人理解和经验,尽力确保信息的准确性和时效性,但不保证所有信息都完全正确或最新。
非专业建议:博客中的内容仅供参考,不能替代专业人士的意见和建议。在做出任何重要决定之前,请咨询相关领域的专业人士。
个人责任:使用本博客内容的风险由用户自行承担。作者不对因使用本博客内容而导致的任何直接或间接损失承担责任。
版权声明:本博客中的所有内容均为作者原创,如需转载,请注明出处。同时,若有引用他人作品,也将尽力标明出处,如有侵权请及时联系作者。
链接免责:博客中可能包含外部链接,作者对这些链接所指向的内容不负责任,访问此类链接需谨慎。
感谢您的理解与支持!希望本博客能够为您的学习提供帮助。

对称加密算法总结*

DES加密过程:

110011-->

首位和为行:11-->3

中间内容为列:1001-->9

--->14

---->1110

SM算法*

国产密码算法:是指由国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法,目前已 经公布的国产密码算法如下:

公钥密码分类*

■ 目前公认的比较安全的公钥密码有两类:

. 基于大素数因子分解困难性:RSA

· 基于离散对数问题困难性:DH、Elgamal、ECC   (椭圆曲线密码)

RSA算法

■RSA 算法是非对称算法,由Ronald Rivest、Adi Shamir、Leonard Adleman三人发明。RSA 算法中, 公钥和私钥都可以用于加密消息,用于加密消息的密钥与用于解密消息的密钥相反。

■ RSA算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。 ■SSH、OpenPGP、S/MIME和SSL/TLS都依赖于RSA 进行加密和数字签名功能。

■ 公钥密码思想是将传统密码的密钥K一分为二,分为加密钥Ke和解密钥Kd, 用加密钥Ke控制加密,用解 密钥Kd 控制解密。

■ 每个用户都将自己的姓名、地址和公开的加密钥等信息在KMC (密钥管理中心)登记,将公钥记入共享的 公钥数据库PKDB(Public Key Database)。

RSA三种模式-加密模式

■ (1)加密模式(确保数据的秘密性\机密性)

■ 发方:

·①A首先查PKDB,查 到B的公开的公钥KeB

·②A 用KeB加密明文M得到密文C:C=E(M,KeB)

·③A发密文C给B

■ 收方:

·①B接受C

·②B用自己的私钥KdB解密C,  得到明文M=D(C,KdB)

RSA 三种模式-认证模式

■ (2)认证模式(确保数据的真实性)

■ 发方:

·①A用自己的私钥KdA加密M, 得到密文C:C=E(M,KdA)

·②A发密文C给B

■ 收方:

· ①B接受C

·②B查PKDB, 查 到A 的公开的公钥KeA

·③用KeA解密C得到明文M:M=D(C,KeA)

RSA 三种模式-混合模式

■ (3) 加密认证混合模式(同时确保数据的秘密性和真实性)

■ 发方:

·①A 用自己的私钥KdA 加密M, 得到中间密文S:S=E(M,KdA)

·②然后A查PKDB, 查到B的公开的公钥KeB

·③A用KeB加密S得到最终的密文C:C=E(S,KeB) · ④A 发密文C 给B

■ 收方:

·①B接受C

·②B用自己的私KdB 解密C,得到中间密文S=D(C,KdB)

·③B查PKDB, 查 到A的公开的公钥KeA。用 KeA 解密S得到明文M,M=D(S,KeA)

非对称加密算法RSA-  相关数学基础(1)

■欧拉函数:对于一个正整数n,小 于n且与n互素(最大公约数只能是1)的正整数的个数,记为φ(n)。

·对于一个素数n, 可知φ(n)=n-1

·对于两个素数p和q,它们的乘积满足n=p*q,则可知 ·φ(n)=(p-1)*(q-1)

■欧几里得算法:gcd(a,b)表示a和b的最大公约数,gcd(a,b)=1,表示a,b最大公约数为1,说明a和b互质。

■同余:两个整数a,b,若它们除以整数m 所得的余数相等,则称a与b对于模m 同余,或a同余b模m, 记作 a=b(mod m)。

· 例如:40=1(mod 13),26=2 (mod 12)。

■求解乘法逆元

·5×d=1 mod 72,求d ?

·5×d-1=n×72(n=1,2,3,4...)

· 得:当n=2,d=29

非对称加密算法RSA计算

步骤

操作

是否保密

随机选择两个大素数p和q

p和q保密

计算n=p×q

n公开

计算φ(n)=(p-1)(q-1)

φ(n)保密

随机选取一个正整数e,1<e<φ(n)且gcd(e,φ(n))=1互素

e公开

根据e×d=1 mod φ(n),求出d

d保密

加密运算C=Me mod n,解密运算M=Cd mod n

RSA密码公开密钥(公钥)Ke=<n,e>,保密的解密钥(私钥)Kd=<p,q,d,φ(n)>

案例:

设素数p=5,q=17, 并令e=11, 明文M=2, 则RSA 的加密操作如下:(自己换着试一下)

已知:p=5 q=17 e=11 M=2

n=p*q=85

φ(n)=(p-1)(q-1)=4*16=64

e=11

ed=1modφ(n)

11d=64n+1

d=35,n=6

C=M^e mod n = 2^11 mod 6 =

M=C^d mod n = ....

■设在RSA 的公钥密码体制中,公钥为 (e,n)=(7,55),则私钥d=(66)。

.A.8           B.13         C.23         D.37

RSA密码的安全性

■ 因子分解攻击:小合数的因子分解是容易的,然而大合数的因子分解却是十分困难的。

■ 为了确保RSA 密码的安全,必须认真选择RSA 的密码参数,各个参数选择如下:

·应 用RSA 密码,应当采用足够大的整数n,p 和q要足够大并且p和q应为强素数。

·一般加密密钥和认证密钥选n为1024位,而平台根密钥和存储根密钥则选n为2048位。

·为了使加密速度快,e 的二进制表示中应当含有尽量少的1。

·为了使解密速度快,希望选用小的d, 但是d太小也是不好的。当d小于n的1/4时,已有求出d的攻击方法。

·不要许多用户共用一个模数n。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2080529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络安全】服务基础第一阶段——第四节:Windows系统管理基础---- NTFS安全权限与SMB文件共享服务器

目录 一、NTFS安全权限 1.1 文件系统 1.2 格式化磁盘中的文件系统 1.FAT32 2.NTFS 3.EXT 4.XFS 应用场景&#xff1a; 1.3 文件操作权限 1.4 权限管理系统 1.5 特殊权限 1.6 NTFS权限类型 二、权限管理实践 三、SMB文件共享服务器 3.1 文件共享服务器 3.2 常用的…

excel规划求解结合vba宏笔记

目录 概念与配置 规划求解定义 excel设置规划求解 宏的基本操作 excel批量进行规划求解案例 加载规划求解模块 宏的设置 宏录制vba 其他案例 概念与配置 规划求解定义 运用“规划求解”定义并求解问题 - Microsoft 支持 excel设置规划求解 EXCEL规划求解的简明教程…

OpenAI的GPT-4模型详细介绍:研发能力、应用场景、开发的合作、持续投入

Open AI GPT-4的详细介绍 OpenAI的GPT-4模型展现出了强大的研发能力&#xff1a; 这主要体现在以下几个方面&#xff1a; 1. 庞大的模型规模和参数数量 GPT-4拥有超过1万亿个参数&#xff0c;这是其前代模型GPT-3的显著扩展。如此庞大的模型规模使得GPT-4能够处理更为复杂…

如何从人机环境系统中捕捉语义

从人机环境系统中捕捉语义主要涉及将系统中的数据和信息转化为具有实际意义的内容&#xff0c;以便更好地理解和响应用户的需求。以下是几种常见的方法来捕捉语义&#xff1a; 1. 自然语言处理 (NLP) 方法&#xff1a;使用自然语言处理技术来分析和理解用户输入的文本或语音。N…

8.27-dockerfile的应用+私有仓库的创建

一、dockerfile应用 通过dockerfile创建⼀个在启动容器时&#xff0c;就可以启动httpd服务的镜像 1.步骤 : 1.创建⼀个⽬录&#xff0c;⽤于存储Docker file所使⽤的⽂件2.在此⽬录中创建Docker file⽂件&#xff0c;以及镜像制作所使⽤的⽂件3.使⽤docker build创建镜像4.使…

MySQL集群技术3——MySQL高可用之组复制

MySQL高可用之组复制 MySQL Group Replication(简称 MGR )是 MySQL 官方于 2016 年 12 月推出的一个全新的高可用与高扩 展的解决方案 组复制是 MySQL 5.7.17 版本出现的新特性&#xff0c;它提供了高可用、高扩展、高可靠的 MySQL 集群服务 MySQL 组复制分单主模式和多主模式…

大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

IngsollRang拧紧Insight IC-D控制器维修 系统参数设置

——设置菜单 Setup&#xff08;设置&#xff09;菜单及其子菜单用于编写拧紧策略并设置许多重要的系统参数。 在Setup&#xff08;设置&#xff09;菜单中&#xff0c;创建基本拧紧策略。 除策略外&#xff0c;您可以使用Setup&#xff08;设置&#xff09;菜单来设置时间、显…

堆和栈的概念和区别

文章目录 堆和栈的概念和区别栈 (Stack)堆 (Heap)详细描述补充说明逃逸分析 (Escape Analysis)栈上分配 (Stack Allocation)堆碎片化 (Heap Fragmentation) 堆和栈的概念和区别 堆和栈的概念和区别【改编自博客】 在说堆和栈之前&#xff0c;我们先说一下JVM&#xff08;虚拟…

家里两个路由器IP地址一样吗?‌IP地址冲突怎么办?‌

在家庭网络环境中&#xff0c;‌随着智能设备的不断增多和网络需求的日益提升&#xff0c;‌很多家庭选择使用两个或更多的路由器来扩展网络覆盖、‌提高网络性能。‌然而&#xff0c;‌在设置和使用多个路由器的过程中&#xff0c;‌一个常见且令人困惑的问题是&#xff1a;‌…

C++常见面试题(面试中总结)

文章目录 原文章链接1、回调函数的了解&#xff1f;2、递归算法解释&#xff1f;3、内存对齐解释&#xff1f;4、一种排序算法解释&#xff08;快速排序&#xff09;5、什么是多态&#xff1f;6、基类为什么需要虚析构函数&#xff1f;7、new和malloc的区别&#xff1f;8、指针…

ubuntu中安装Mysql以及使用Navicat远程连接的详细步骤【图文教程】

安装步骤 注意&#xff1a;建议大家都安装Ubuntu22.04的版本&#xff0c;在该版本下再安装MySQL8.0版本的数据库。 1查看当前是否安装了MySQL程序 $ dpkg -l |grep mysql 执行以上命令&#xff0c;如果执行后什么都没有&#xff0c;则进入到MySQL的安装步骤 2如果执行以上…

MATLAB进阶:应用微积分

今天我们继续学习matlab中的应用微积分 求导&#xff08;微分&#xff09; 1、数值微分 n维向量x(xi&#xff0c;x,… x)的差分定义为n-1维向量△x(X2-X1&#xff0c;X3-X2&#xff0c;…&#xff0c;Xn- Xn-1)。 diff(x) 如果x是向量&#xff0c;返回向量x的差分如果x是矩…

初识Linux · 有关gcc/g++

目录 前言&#xff1a; 1 gcc和g 2 翻译过程 2.1 预处理 2.2 编译 2.3 汇编 2.4 链接 前言&#xff1a; 继上文介绍了vim 和 yum&#xff0c;相当于介绍了 文本编译器&#xff0c;我们可以利用vim写代码&#xff0c;那么写代码的我们了解了&#xff0c;现在应该了解编译…

R语言统计分析——如何选择最佳回归模型

参考资料&#xff1a;R语言实战【第2版】 尝试获取一个回归方程时&#xff0c;实际上你就面对着从众多可能的模型中做选择的问题。是不是所有的变量都要包括&#xff1f;还是去掉那个对预测贡献不显著的变量&#xff1f;是否需要添加多项式项和/或交互项来提高拟合度&#xff1…

.NET WPF 抖动动画

.NET WPF 抖动动画 Demo Code <!-- 水平抖动 --> <Button Content"Hello World"><Button.RenderTransform><TranslateTransform x:Name"translateTransform" /></Button.RenderTransform><Button.Triggers><Even…

SP: eric

靶机搭建 靶机下载地址 在Virtualbox中打开下载好的靶机&#xff0c;网络配置修改为桥接模式&#xff0c;启动靶机即可。 信息收集 主机发现 nmap 192.168.31.0/24 -Pn -T4 靶机IP&#xff1a;192.168.31.244 端口扫描 nmap 192.168.31.244 -A -p- -T4 根据端口扫描结果…

Linux驱动学习之内核poll阻塞

在linux系统编程课程中学习过多路IO复用&#xff0c;简单来说就三个函数select&#xff0c;poll&#xff0c;epoll。 对于select 此函数是跨平台的&#xff0c;可以在windows&#xff0c;Linux中使用。 对于poll与epoll 只能在linux平台下使用&#xff0c; epoll底层实现是一个…

ArcGIS应用指南:近邻分析(点匹配到最近线段上)

近邻分析通常用于确定一个要素集中的要素与另一个要素集中最近要素的距离。当涉及到点匹配到最近的线时&#xff0c;这种分析可以用来确定每个点到最近线段的距离及位置&#xff0c;也就是我们常说的点匹配到最近线上&#xff0c;可以参考官方文档&#xff1a;近邻分析 (Covera…

EmguCV学习笔记 VB.Net 6.S 特别示例

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…