【密码学补充知识】

🔑密码学🔒概述

📕 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.rhkb.cn/news/141350.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023-Chrome插件推荐

Chrome插件推荐 一键管理扩展 链接 https://chromewebstore.google.com/detail/lboblnfejcmcaplhnbkkfcienhlhpnni 介绍 一键开启、禁用Chrome插件。 Checker Plus for Gmail™ 链接 https://jasonsavard.com/zh-CN/Checker-Plus-for-Gmail https://chromewebstore.goo…

基于springboot+vue的重庆旅游网(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

小程序中如何导出会员卡的档案信息

对于医院、美容院等特殊商家&#xff0c;可能需要在给会员添加一些档案。例如今天客户是什么情况&#xff0c;做了什么服务&#xff0c;解决了什么问题。添加这些档案后&#xff0c;系统会保存这些信息&#xff0c;供下次来的时候使用&#xff0c;或者为商家日后做营销提供依据…

Leetcode 95. 不同的二叉搜索树 II

文章目录 题目代码&#xff08;9.21 首刷看解析&#xff09; 题目 Leetcode 95. 不同的二叉搜索树 II 代码&#xff08;9.21 首刷看解析&#xff09; class Solution { public:vector<TreeNode*> generateTrees(int n) {return build(1,n);}vector<TreeNode*> bu…

蓝桥杯每日一题2023.9.25

4406. 积木画 - AcWing题库 题目描述 分析 在完成此问题前可以先引入一个新的问题 291. 蒙德里安的梦想 - AcWing题库 我们发现16的二进制是 10000 15的二进制是1111 故刚好我们可以从0枚举到1 << n(相当于二的n次方的二进制表示&#xff09; 注&#xff1a;奇数个0…

vuejs - - - - - 递归组件的实现

递归组件的实现 1. 需求描述&#xff1a;2. 效果图&#xff1a;3. 代码3.1 封装组件代码3.2 父组件使用 1. 需求描述&#xff1a; 点击添加行&#xff0c;增加一级目录结构当类型为object or array时&#xff0c;点击右侧➕&#xff0c;增加子集点击右侧&#x1f6ae;&#x…

Linux查看哪些进程占用的系统 buffer/cache 较高 (hcache,lsof)命令

1、什么是buffer/cache &#xff1f; buffer/cache 其实是作为服务器系统的文件数据缓存使用的&#xff0c;尤其是针对进程对文件存在 read/write 操作的时候&#xff0c;所以当你的服务进程在对文件进行读写的时候&#xff0c;Linux内核为了提高服务的读写速度&#xff0c;则将…

Jenkins Job的Migrate之旅

场景 使用Jenkins 做为应用的定时任务处理&#xff0c; 在上面建立的800个左右的Job, 这个环境运行了很多年&#xff0c; 当初安装的最新版本是Jenkins 1.642.3&#xff0c; 现在因为OS需要升级等原因&#xff0c; 驻在上面的Jenkins 服务器也需要一并升级&#xff0c;在新的服…

SpringBoot集成Prometheus实现监控

SpringBoot配置Prometheus pom.xml 引入监控以及prometheus依赖 <dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId></dependency><dependency><groupId>org.springfram…

中国城市政商关系健康总指数、方面指数及一级指标得分2018

中国城市政商关系健康总指数、方面指数及一级指标得分2018 1、指标&#xff1a;省份代码、省份、城市代码、城市名称、政商关系健康指数、亲近指数、清白指数、政府关心、政府服务、企业税负、政府廉洁度、政府透明度 2、范围&#xff1a;290个地级市 3、数据说明&#xff1…

Django应用及分布式路由

Django应用及分布式路由 应用 应用在Django项目中一个完全独立的业务模块&#xff0c;可以包含自己的路由&#xff0c;视图&#xff0c;模板&#xff0c;模型 应用配置 在这里面添加你自定义的应用 INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.cont…

MT1184矩形相交 题解【超详细】

目录 题目 样例 题目解析 代码 图解 矩形相交 题目 输入2个矩形的左上角和右下角两个点的坐标值(x&#xff0c;y)&#xff0c;判断2个矩形是否相交&#xff0c;输出YES或者NO。矩形的边应与x&#xff0c;y轴相平行。假定输入坐标能顺利构成矩形&#xff0c;不考虑无效矩形…

命令执行(rce)

1.命令与代码执行原理 命令执行原理 参数给变量未经过滤&#xff0c;直接使用了不安全的函数处理了变量 127.0.0.1&&ipconfig 有漏洞 常用的函数 assert,system,exec,shell_exec, eval,(反单引号&#xff09; 代码执行原理 参数给变量未经过滤&#xff…

基于微信小程序的健身房私教预约平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

阿里云服务器使用教程(从购买到配置再到搭建自己的网站)

阿里云服务器使用教程包括云服务器购买、云服务器配置选择、云服务器开通端口号、搭建网站所需Web环境、安装网站程序、域名解析到云服务器公网IP地址&#xff0c;最后网站上线全流程&#xff0c;阿小云分享阿里云服务器详细使用教程&#xff1a; 目录 阿里云服务器使用教程 …

PostgreSQL如何支持PL/Python过程语言

瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本&#xff1a;10.4 文档用途 本文档主要介绍PostgreSQL如何支持PL/Python过程语言&#xff0c;如何创建plpython扩展。 详细信息 一、PostgreSQL支持python语言…

215 数组中的第K个最大元素

满足时间复杂度o(n)的方法&#xff1a; 快排的思想 class Solution{ public:int findKthLargest(vector<int>& nums,int k){return quickSelect(nums,k);} private:int quickSelect(vector<int>& nums,int k){//随机选择基数int privotnums[rand()%nums…

Quartz 体系结构

Quartz的体系结构 Quartz的重要组件 Scheduler 用于与调度程序交互的主程序接口。 Scheduler调度程序-任务执行计划表&#xff0c;只有安排进执行计划的任务Job&#xff08;通过scheduler.scheduleJob方法安排进执行计划&#xff09;&#xff0c;当它预先定义的执行时间到了的时…

华为云云耀云服务器L实例评测|如何保障华为云云耀云服务器L实例的安全和性能

引言 云耀云服务器L实例是华为云提供的高性能计算实例&#xff0c;为用户提供稳定可靠的云计算环境。为了保障实例的安全和性能&#xff0c;用户可以通过设置防火墙和安全组策略来限制网络访问和防止恶意攻击。华为云提供了灵活的管理工具&#xff0c;用户可以通过控制台、API…

tomcat启动,测试被拒绝连接

tomcat镜像下载下来后&#xff0c;启动容器&#xff0c;测试连接被拒绝。也闪退。 报错信息如下&#xff1a; curl: (7) Failed connect to localhost:8888; 拒绝连接解决方式&#xff1a; # 启动时给root实际权限&#xff0c;即可成功连接 docker run -d -p 8888:8080 --pri…