【密码学补充知识】

news2024/11/19 5:57:22

🔑密码学🔒概述

📕 1.基本概念

明文 : 要交换的信息

密文 : 明文经过一组规则变换成看似没有意义的随机消息。

加密 : 明文经过一组规则变换成密文的过程

解密 : 密文恢复出明文的过程

加密和解密都需要一个密钥来完成。

根据密钥的特点,密码体制可以分文两类

对称密码体制(单钥密码体制: 加密密钥和解密密钥相同,或者从一个密钥很容易推导出另外一个密钥。密码需要保密,所以对称密码体制又叫私钥密码体制

非对称密码体制 (双钥密码体制,公钥密码体制): 加密密钥和解密密钥不相同,并且从一个密钥很难推导出另外一个密钥。加密密钥可以公开,所以非对称密码体制又叫公钥密码体制

📕 2.密码体制

一个密码体制通常包括5部分

(1) 明文空间 M :全体明文m的集合;

(2) 密文空间 C : 全体密文c的集合;

(3) 密钥空间 K : 全体密钥的集合 ; 在具体的一次加密过程中,加密密钥ke和解密密钥kd都来自该空间,密钥空间不同密钥的个数称为密码体制的密钥量,通常来说:密钥量越大,密码体制的安全强度越高。

(4) 加密算法 E : 由加密密钥控制的加密交换的

(5) 解密算法 D : 由加密密钥控制的加密变换的集合。

一个密码体制要满足一致性,即如果

🌼

那么

🌼

👮‍安全性要求

保密性:信息只为授权用户使用,不能泄漏给未授权的用户。

完整性:信息在传输或者储存过程中,不能被偶然或者蓄意地破坏(删除,修改,伪造,重放,插入等)和丢失。

认证性:确保通信方的确是服务方认证地那位。

        认证方法分为: 实体认证和消息认证。实体认证指的是 确认一个实体的身份;消息认证 指的是 确认一个消息地来源。(arp欺骗就是破坏了认证性)

不可否认性:防止通信方对以前的许诺或者行为否认

🔪密码分析(攻击方法)

🔪(1)穷举分析:

通过试遍密钥空间中的所有密钥来对密文进行界面,直至得到正确的明文。

应对方法: 增加密钥空间的密钥量,但是也只能增加密码体制的安全强度,不能绝对安全。

🔪(2)统计分析攻击

通过分析明文和密文的统计规律来破译密码体制。

该方法对破译古典密码体制很有效,但是相应的也有其他密码体制。

🔪(3)数学分析攻击

针对加解密算法的数学基础和密码学性质,通过数学求解的方法来破解密码体制

🛠密码体制评估

👮‍(1)无条件安全性

如果一个具有无限计算资源的敌手都不能破译一个密码体制,则这种体制是无条件安全的。一次一密方法在唯密文攻击下可以达到无条件安全,但是一次一密是指每次加密一个信息 的时候都用不同的密钥,会消耗高额的密钥分配成本。 显然不实用。

👮‍(2)计算安全性

如果使用最好的算法来破译一个密码体制所需要的计算代价远远超过敌手的计算资源,则成这个体制是计算安全的。

👮‍(3)可证明安全性

如果一个密码体制的安全性可以规约为 某个数学问题,且这个数学问题是难解的,则这个密码体制是可证明安全的。

☞ 现代密码学的目标

(1) 一个密钥可以重复使用,不是每次使用后就更换新的密钥

(2) 一个短密钥可以加密长明文,密钥的长度比明文短。

也就是说,🙋‍在大多数情况下,我们只要保证计算安全性即可

🔢 2.数字签名

📕基本概念

产生原因:

在电子世界,人们希望用某种方法代替手写签名,实现对数字信息的签名。

数字签名的特性:

※(1)不可伪造性: 除了签名者,任何人不能伪造签名者的合法签名。

※(1)认证性:接收者相信这份签名来自签名者。

※(1)不可重复使用性:一个消息的签名不能用于其他信息

※(1)不可否认性: 签名者事后不能否认自己的二千米

※(1)不可修改性:一个消息在签名后不能被修改。

分类:

按用途分:

=》普通数字签名

=》具有特殊用途的数字签名(如: 盲签名)

=》不可否认签名

=》群签名

=》代理签名

按是否具有消息恢复功能

=》具有消息恢复功能的数字签名

=》不具有消息恢复功能的数字签名

按是否使用随机数

=》确定性数字签名

=》随机化数字签名

📕 RSA数字签名

RSA密码体制可以用来加密,也可以用于数字签名

1.参数与密钥生成

(1)选取两个保密的大素数 p,q 。

(2)计算 n=pq ,Ψ(n)=(p-1)(q-1),其中Ψ(n)是n的欧拉函数值。

(3)随机选取证书e ,1<e<Ψ(n),且满足gcd(e,Ψ(n))=1。(gcd 最小公因数函数)

(4)计算d ,满足de=1 mod  Ψ(n) 。

(5)公钥为 (e,n) 私钥为 d 。

2.签名

对于消息m∈Zn,签名为 

3.验证

对于消息签名对  (m,e) ,如果有

则   s 是 m的有效签名

🆔3.身份识别

📕 概念

让验证者(V: Verifier)相信正在与之通信的另一方(P:Prover)就是所称的那个实体,目的是方式假冒。

一个安全的身份识别协议应该满足三个条件 :

(1)P 能向 V 证明 他的确是P

(2)P向V证明身份后,V没有获得任何有用测定信息,P不能假冒成 V

(3)除了P以外的第三者 以P的身份执行该协议,能够让V相信他是P的概论可以忽略不记。

(想到ARP欺骗没 (*^_^*)  )

身份识别分为 两类:

(1)弱识别 : 使用口令、口令段、口令驱动的密钥来证明自己的身份

(2)强识别 :通过向验证者展示与证明者实体有关的秘密信息来证明自己的身份。这种识别通常通过挑战-应答方式进行,挑战是指一方随机地选取一个秘密数发送给另一方,而应答是对挑战的回答。应答与实体的秘密信息及对方挑战有关系。

📕 Guillou-Quisquater身份识别方案

1988年, Guillou 和 Quisquater 提出了基于 RSA 密码体制安全性的身份识别方案。

1.系统初始化
 Guillou - Quisquater 身份识别方案需要一个信任权威 TA 。 TA 选择两个大素数计算 n = pq ,确定自己的签名算法 
和 Hash 函数 h 。 TA 还要选取一个长度为40bit  的素数 b 作为自己的公钥,计算私钥 公开参数为 n 、 b 、 h 、
2. TA 向 P 颁发身份证书
(1) TA 为 P 建立身份信息 IDp 。
(2) P 秘密选取一个整数 u ,0≤ u ≤ n -1且 ged ( u , n )=1,计算:


并将 v 发送给 TA 。
(3) TA 计算签名 s = SigTA ( IDp , v ),将证书 C ( P )=( IDp , v , s )发送给 P 。
3.P向 V 证明其身份
(1) P 随机选取整数 k ,1≤ k ≤ n -1,计算:



并将证书 C ( P )和r发送给 V 。
(2) V 验证 s 是否是 TA 对( IDp , v )的签名。如果是, V 随机选取整数 r ,0≤ r ≤ b -1,
并把它发送给 P 。
(3) P 计算:


并将 C(p) 和y发送给 V 。
(4) V 验证是否有:



成立。如果成立, V 就接受 P 的身份证明;否则拒绝 P 的身份证明
在 Guillou - Quisquater 身份识别方案中,由于 P 掌握了秘密信息 u ,对于任何挑战,
 P 都可以在步骤(3)中计算 y 使得


成立。如果一个攻击者 C 能够猜测出 V 随机选取的整数 r ,则 C 可以任意选取一个 y ,计算:

在步骤(1)中, C 将 y 发送给 V ,在步骤(3)中, C 将 y 发送给 V 。最后,在步骤(4)中, V -定能够验证:

成立, V 接受 C 的身份证明,从而 C 成功地冒充了 P 。攻击者 C 能够猜测随机数,的概率为1/b。因为6是一个很大的整数,所以 C 想成功冒充 P 的概率非常小。
 

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

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

相关文章

【广州华锐互动】鱼卵孵化VR线上教学实训软件

随着科技的发展&#xff0c;教育方式也在不断地进行创新。VR研发公司广州华锐互动&#xff0c;为某院校开发了鱼卵孵化VR线上教学实训软件&#xff0c;可以帮助学生更好地理解鱼类繁殖和养殖的过程&#xff0c;还可以让他们在虚拟环境中进行实践操作&#xff0c;提高他们的技能…

HDFS编程实践-从HDFS中下载指定文件到本地

前言&#xff1a;Hadoop采用java语言开发&#xff0c;提供了Java Api与HDFS进行交互 先要把hadoop的jar包导入到idea中去 为了能编写一个与hdfs交互的java应用程序&#xff0c;一般需要向java工程中添加以下jar包 1&#xff09;/usr/local/hadoop/share/hadoop/common目录下…

Docker部署Nacos注册中心

文章目录 一、部署MySQL数据库并导入Nacos初始化SQL二、部署Nacos注册中心三、验证Nacos 一、部署MySQL数据库并导入Nacos初始化SQL 1、准备工作 docker pull mysql:8.0.27 Pwd"/data/software/mysql" mkdir ${Pwd}/{data,logs} -p chmod 777 ${Pwd}/logs2、添加配…

Matlab图像处理-彩色图像灰度化

图像预处理 预处理的具体操作是将车牌彩色图像灰度化&#xff0c;利用直方图均衡化、中值滤波、边缘提取、形态学运算等数字图像处理方法&#xff0c;确定车牌位置&#xff0c;提高车牌定位精确度及识别正确率。 彩色图像灰度化 图像灰度化本质就是通过一定的方法将彩色图像…

定时器的编码器接口

对应手册编码器接口14.3.12 实现代码 实现旋转编码器计次&#xff0c;与之前的在定时器中断时实现的旋转编码器计次实现内容相同&#xff0c;但是方式不同&#xff0c;之前的是通过触发外部中断&#xff0c;通过中断函数来实现手动计次加一&#xff1b;这次不同&#xff0c;是…

电脑版剪映怎么倒放?

1.打开一个素材 2.添加到时间轨道 3.右击轨道素材 弹出的选项钟选择&#xff0c;基础编辑》倒放&#xff01;

【Java开发】Redis位图实现统计日活周活月活

最近研究了使用 Redis 的位图功能统计日活周活等数据&#xff0c;特来和大家分享下&#xff0c;Redis 位图还可用于记录用户签到情况、判断某个元素是否存在于集合中等。 1 Redis 位图介绍 Redis 位图是一种特殊的数据结构&#xff0c;它由一系列位组成&#xff0c;每个位只能…

Spring Cloud Alibaba Gateway 全链路跟踪TraceId日志

前言 凡是文中需要注册到nacos的都需要这个jar包 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>凡是使用config jar包的都需要写bootstrap.prop…

多维时序 | MATLAB实现WOA-CNN-BiLSTM-Attention多变量时间序列预测(SE注意力机制)

多维时序 | MATLAB实现WOA-CNN-BiLSTM-Attention多变量时间序列预测&#xff08;SE注意力机制&#xff09; 目录 多维时序 | MATLAB实现WOA-CNN-BiLSTM-Attention多变量时间序列预测&#xff08;SE注意力机制&#xff09;预测效果基本描述模型描述程序设计参考资料 预测效果 基…

Tuya MQTT 标准协议是什么?

TuyaLink 协议是涂鸦 IoT 开发平台面向物联网开发领域设计的一种数据交换规范&#xff0c;数据格式为 JSON&#xff0c;主要用于设备端和涂鸦 IoT 开发平台的双向通信&#xff0c;更便捷地实现了设备端和平台之间的业务数据交互。 设备的通信方式也是多种多样的。无线通信方式…

什么是Redux?它的核心概念有哪些?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是Redux&#xff1f;⭐ 它的核心概念有哪些&#xff1f;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发…

【Go】rsrc不是内部或外部命令、无法将“rsrc”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方法

前言 想尝试用go创建一个桌面应用程序&#xff0c;然后查了下决定用 walk。 我们要先下载walk&#xff0c;这里 官方链接 按照官方文档&#xff0c;我们先用go get命令下载。 go get github.com/lxn/walk然后分别创建好了 main.go、main.manifest 文件&#xff0c;代码如下…

Web自动化框架中验证码识别处理全攻略,让测试更得心应手!

前言&#xff1a; 随着Web应用程序的不断发展&#xff0c;自动化测试已成为项目开发中必不可少的一环。然而&#xff0c;验证码的出现却经常会使自动化测试变得更具挑战性。为了解决这个问题&#xff0c;我们需要一种方法来自动识别和处理验证码&#xff0c;从而提高自动化测试…

Spring面试题11:什么是Spring的依赖注入

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说Spring的依赖注入 依赖注入(Dependency Injection)是Spring框架的一个核心特性,它是指通过外部容器将对象的依赖关系注入到对象中,从而…

在大厂做外包的软件测试工程师,如今发展怎么样了?

前言 不久前&#xff0c;许久没联系的大学室友出差来了魔都&#xff0c;趁此机会叫上了昔日的两三好友&#xff0c;一起小酌了一杯&#xff0c;觥筹交错中&#xff0c;得知了大学室友今年开始和朋友一同创业&#xff0c;时隔多年终于从外包公司&#xff0c;成为了一名“正式员…

RDMA编程杂记

目录 编程杂记什么是P_Key建链基于Socket API的建链基于CM API的建链 编程杂记 什么是P_Key P_Key&#xff08;Partition Key&#xff09;用于提供InfiniBand网络的隔离机制&#xff0c;只有在一个分区内的节点可以互相通信。 P_Key是一个16位的值&#xff0c;有两部分 msb…

第五章React路由

文章目录 一、React的基本使用1-1、react-router-dom1-1-1、react-router-dom基本使用 1-2、一般组件与路由组件1-3、NavLink1-4、封装自己的组件--MyNavLink1-5、Switch的使用1-6、多级地址样式失效问题1-7、模糊匹配1-8、严格匹配1-9、Redirect重定向1-10、嵌套路由1-11、向路…

Spring学习笔记3 Spring对IOC的实现

Spring学习笔记2 Spring的入门程序_biubiubiu0706的博客-CSDN博客 控制反转是一种思想 控制反转是为了降低程序耦合度,提高程序扩展力,达到OCP(开闭原则)原则,达到DIP(依赖倒置原则)原则 控制反转,反转的是什么? 1.将对象的创建权力交出去,交给第三方容器负责 2.对象与对象…

1990-2021年全国31个省人口相关统计面板数据

1990-2021年全国31个省人口相关统计面板数据 1、时间&#xff1a;1990-2021年 2、来源&#xff1a;各省统计年鉴 3、指标&#xff1a;省份代码、年份、省份名称、省份名称、常住人口数、年末常住人口 0-14岁人口数、15-64岁人口数、65岁及以上人口数、6岁及以上人口&#x…

【精品资源】Java毕业设计攻略:从选题到答辩,一站式指南

导读&#xff1a; Java毕业设计是计算机科学与技术专业学生展示其编程能力、问题解决能力和创新思维的重要环节。这篇博客将为您提供一站式的Java毕业设计攻略&#xff0c;帮助您从选题到答辩&#xff0c;顺利完成毕业设计。 一、选题阶段 寻找灵感&#xff1a; 探讨热门技术如…