现代密码学基础(2)

目录

一. 介绍

二. 举例:移位密码

(1)密文概率

(2)明文概率

三. 举例:多字母的移位密码

四. 完美安全

五. 举例:双子母的移位密码

六. 从密文角度看完美安全

七. 完美保密性质


一. 介绍

在密码学中,K代表密钥,M代表明文,C代表密文,每个都有各自的概率分布。

密钥是通过密钥生成算法Gen产生的,通常而言都是均匀且随机的形式选择密钥,如下:

Pr[K=k]

明文的分布通常跟密码方案是无关的,而是跟加密/解密方相关,也可以看成敌手(adversary)的不确定性,如下:

Pr[M=m]

比如,军队传递消息,明文可能是以下两者之一:

attack today                   don't attack

这两者的概率有可能也不一样,比如:

Pr[M=attack today]=0.7           Pr[M=don't attack]=0.3

密钥K是由密码方案决定的,也就是由Gen确定。明文M取决于外部条件,所以,密钥K和明文M分布上通常是互相独立的。

当确定了加密方案和明文分布,那么密文分布也就确定了,如下:

c\leftarrow Enc_k(m)

或者写做:

Pr[C=c]

二. 举例:移位密码

移位密码,写做shift cipher,在网络安全领域很常见

假定密钥K只有26种情况,K={0,...,25},每个密钥取到的概率均相等,也就是:

Pr[K=k]=1/26

假定明文只有两种情况a和z,其概率分布满足如下:

(1)密文概率

请分析密文为B的概率?

解:

当密文为B时,很明显只有两种情况可能:

明文M=a,且密钥K=1

明文M=z,且密钥K=2

根据明文M和密钥K之间是互相独立的,可计算:

第一个等号:M与K之间的独立

第二个等号:带入明文的概率以及密钥的概率

同理可计算另一种情况为:

综合两者情况相加可得:

(2)明文概率

当看到密文是B时,请推断明文为a的概率?

解:

很明显该题为条件概率。根据Bayes定理,可得:

第一个等号:条件概率的性质

第二个等号:明文为a的概率为0.7,密文为B的概率第一问已经计算完

如果给定明文M=a时,只有当密钥K=1,其概率为1/26时,密文才是C=B,所以可得:

Pr[C=B|M=a]=1/26

三. 举例:多字母的移位密码

如刚才的例题,我们还是采纳移位密码,但此时明文M的分布如下:

请求密文C=DQQ的概率?

解:

只有两种情况可以保证密文C=DQQ。

情况1:明文M=ann,密钥K=3

情况2:明文M=boo,密钥K=2

容易计算以上概率为:

0.2\cdot 1/26+0.3\cdot1/26

当然如果想计算当看到密文为DQQ时,明文为ann的概率,依旧可以使用Bayes定理计算:

Pr[M=ann|C=DQQ]=0.4

四. 完美安全

完美安全,Perfect secrecy

假设敌手已知明文M的概率分布,加密方案也是全局公开的。敌手唯一不知道的就是所使用的密钥。

首先一个诚实用户选择明文并加密,接着把该密文传递给另外一方,在这其中敌手可以进行窃听并获得密文,也就是一种唯密文攻击(ciphertext-only attack)。完美安全要求敌手在获得密文后,不能知道其中的明文。换句话说,已知密文推明文的后验概率(posteriori probability)跟明文本身的前验概率(priori)是一样的。

以上表明密文不会泄露明文的任何信息,形式化的定义如下:

其中Pr[C=c]>0只是保证条件概率的分母不为0

五. 举例:双子母的移位密码

证明:双子母的移位密码无法实现完美安全

解:

该题的本质则是证明:

其实很容易证明。我们此处举一个简单的例子,假设明文有两种情况aa或者是ab

很明显当密文为XX时,其明文绝对不可能是ab,也就是:

Pr[M=ab|C=XX]=0

但是:

Pr[M=ab]=1/2

证明完毕

六. 从密文角度看完美安全

如果密文的分布与明文分布无关,其实也能说明完美安全性。

假定有两个明文m和m',如下:

m,m'\in M

如果加密明文m形成的分布,与加密m'形成的密文分布一样的话,则可以得到:

注意以上概率分布来源于密钥K的选择以及加密算法Enc的随机性。也就是以上概率分布仅取决于加密方案,与明文分布M无关。换句话说,密文不包含明文m的任何信息,从而无法区分m和m'形成的密文,这不就是完美保密性想表达的内容。

七. 完美保密性质

推论

给定明文空间为M,加密方案为(Gen,Enc,Dec),如果以上m与m'的条件满足的话,那么该密码方案是完美安全的(perfect secret)

证明:

首先所有的概率均为正数:

Pr[M=m]>0

已知明文推断密文的概率可计算为:

第一个等号:密文随机变量C的定义

第二个等号:明文M=m

第三个等号:密钥K与明文M相互独立

以上概率为:已知明文m,遍历密钥空间K,使其加密结果刚好为c

根据条件概率的性质,可得:

证明充分性。

已知完美安全性,所以可得:

带入上式子,可得:

Pr[C=c|M=m]=Pr[C=c]

由此进一步可得:

充分性证明完毕。

证明必要性:

如果明文m的概率恰好为0时,可得:

如果明文m的概率非0时,定义一个新的概率如下:

p_c=Pr[Enc_K(m)=c]

由此可计算为:

必要性证明完毕。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年【陕西省安全员B证】免费试题及陕西省安全员B证复审考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年陕西省安全员B证免费试题为正在备考陕西省安全员B证操作证的学员准备的理论考试专题,每个月更新的陕西省安全员B证复审考试祝您顺利通过陕西省安全员B证考试。 1、【多选题】下列关于安全帽&#xf…

盘点几种有线扩展Wifi覆盖范围方式的优缺点

前言 前几天小白到一个朋友的家里,发现她家的主路由是放在玄关的。 这个方式就导致了她家三个卧室的Wifi信号都很弱。 她叫我过去帮忙弄一下网络的问题,这个对于有一点电脑知识的小伙伴来说,基本上不是什么难事,因为每个房间基本…

Windows 下ffmpeg安装及实践

Windows 下ffmpeg安装及实践 背景安装实践其他 背景 最近负责音频文件处理相关的业务,涉及到 ffmpeg 对一些音频文件格式的校验,记录一下安装过程及踩坑过程。 安装 如图1所示,进入官网,在windows下任选一个文件:h…

负债 1092.8 亿美元,苹果成全球负债第二多的科技公司丨 RTE 开发者日报 Vol.131

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE (Real Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

【网站项目】基于SSM的271楚师师生健康管理系统

🙊作者简介:多年一线开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

【数据结构】在链队列中你可能忽视的二三事

链队列及其基本操作的C语言实现 导言一、链队列二、链队列的基本操作的实现2.1 链队列的数据类型2.2 链队列的初始化2.2.1 带头结点的链队列的初始化2.2.3 不带头结点的链队列的初始化 2.3 链队列的判空2.3.1 带头结点的链队列的判空2.3.2 不带头结点的链队列的判空 2.4 链队列…

《WebKit 技术内幕》学习之七(4): 渲染基础

4 WebKit软件渲染技术 4.1 软件渲染过程 在很多情况下,也就是没有那些需要硬件加速内容的时候(包括但不限于CSS3 3D变形、CSS3 03D变换、WebGL和视频),WebKit可以使用软件渲染技术来完成页面的绘制工作(除非读者强行…

电力需求侧管理,缓解电力系统峰值压力

电力需求侧管理和电力负荷管理数字化解决方案 《电力需求侧管理办法(征求意见稿)》和《电力负荷管理办法(征求意见稿)》的出台正逢其时,结合了新型电力系统实际问题,为缓解电力供需矛盾提供了政策支持和解…

处理Synology Photos视频不生成缩略图

1、在套件中心新增一个套件 套件位置:矿神群晖SPK套件源DSM7.x by IMNKS.COM 2、安装ffmpeg 3、连接ssh,运行命令 如果没有开启ssh功能,在控制面版 - 终端机和 SNMP 命令如下: sudo -i cp /volume2/\appstore/ffmpeg/bin/ffmpe…

如何自己实现一个Spring Boot Starter

现在很多开源的组件都会提供对应的 springboot-starter 包给我们去用,要做一个 starter 包并不难。参照Spring内置的实现就好了: 1、在工程里引入 starter 打包相关的依赖。 2、在我们工程内建 spring.factories 文件,编写我们配置类的全限类…

JavaScript 学习笔记(WEB APIs Day2)

「写在前面」 本文为 b 站黑马程序员 pink 老师 JavaScript 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。推荐先按顺序阅读往期内容: 1. JavaScript 学习笔记(Day1) 2. JavaSc…

C# 使用System.Threading.Timer 实现计时器

写在前面 以往一般都是用 System.Timers.Timer 来做计时器,而 System.Threading.Timer 也可以实现计时器功能,并且还可以配置首次执行间隔,在功能上比System.Timers.Timer更加丰富;根据这个特性就可以实现按指定时间间隔对委托进…

Postman如何做接口测试:如何导入 swagger 接口文档

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

samba服务搭建,并将共享目录映射到windows

系统版本:centos7 1、centos 安装samba yum -y install samba 2、查看安装信息 rpm -qa |grep samba 3、设置开机自启动 systemctl enable smb.service systemctl enable nmb.service 4、设置samba服务器配置文件 sudo vi /etc/samba/smb.conf 注意&#…

【blender渲染】blender流体模拟基础

各位新年好哇,最近在做demo的时候,为了更好的效果,开始摸索一点离线渲染的东西。像这种后续渲染的处理,由于3ds max是更偏向于建模的dcc,有点不那么好使(没有说看不起vray的意思哈)。 像在实时…

计算机组成原理 01:计算机的发展历程

计算机的发展历程 导言什么是计算机系统计算机系统 硬件软件因此,计算机性能的好坏取决于“软”、“硬” 件功能的总和。 硬件的发展计算机发展阶段第一代:电子管时代第二代:晶体管时代第三代:中小规模集成电路时代第四代&#x…

算法第二十二天-最大数

最大数 题目要求 解题思路 今天的题目,让我们将一组数字重新组合,构成一个最大的整数。由于构成的整数非常大,所以返回结果需要字符串格式。 分析一下规律: 为了避免用int型或者long型越界,所以我们需要把数字先转换…

独立服务器有哪些优势

建立和维护一个强大的线上网站存在对于个人、企业和组织来说至关重要。而作为构建一个稳定、高效网站的基石之一,服务器的选择变得越来越重要。在服务器的选择中,独立服务器已经成为了许多人首选的方案。 独立服务器究竟有哪些优势呢? 1、稳…

拦截器与过滤器

拦截器(Interceptor)是一种特殊的组件,它可以在请求处理的过程中对请求和响应进行拦截和处理。拦截器可以在请求到达目标处理器之前、处理器处理请求之后以及视图渲染之前执行特定的操作。拦截器的主要目的是在不修改原有代码的情况下&#x…

常用芯片学习——HC245芯片

HC245三态输出八路总线收发器 使用说明 这些八路总线收发器专为数据总线之间的异步双向通信而设计。控制功能实现可更大限度地减少外部时序要求。根据方向控制 (DIR) 输入上的逻辑电平,此类器件将数据从 A 总线发送至 B 总线,或者将数据从 B 总线发送至…