现代密码学基础(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]

由此可计算为:

必要性证明完毕。

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

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

相关文章

NVIDIA 再现逆天刀法,千元级 RTX 新卡曝光

这年头,价格 1 字开头入门甜品显卡几乎真就成 N、A 两家弃子了。 以 NVIDIA RTX 4060 与 AMD RX 7600 为例,这两块显卡同为两家新品中最低端型号,其价格直接来到 2K 左右起步。 要知道目前很多普通用户选购一台日常办公、游戏电脑主机&#…

vue(vue2)使用svg格式图标

先安装插件 配置svg文件夹,新建icons文件,svg文件夹放svg后缀文件 index.js文件中的配置 import Vue from "vue" import svgIcon from "/common/iconSvg/index.vue"Vue.component(svg-icon,svgIcon) //挂载全局组件//下面…

Python with Office 054 - Work with Word - 7-9 插入图像 (3)

近日详细学习了寒冰老师的很好的书《让Python遇上Office》,总结了系列视频。 这个是其中的一集:如何在Word中插入图像,我会陆续分享其他的视频并加上相应说明 https://www.ixigua.com/7319498175104942643?logTage9d15418663166a05d10

小程序商城能不能自己开发?

在数字化时代,小程序商城已经成为商家拓展销售渠道、提升品牌影响力的重要工具。那么,商家能否自己动手开发小程序商城呢?答案是肯定的。接下来,以乔拓云为例,为大家详细介绍如何自己搭建小程序商城。 首先&#xff0c…

ntp时间适配服务器和ssh免密登录

1.配置ntp时间服务器,确保客户端主机能和服务主机同步时间 服务端server向阿里时间服务器进行时间同步 第一步:定位服务端server #安装软件 [rootserver ~]# yum install chrony -y # 编辑配置文件,定位第3行,修改…

75.网游逆向分析与插件开发-背包的获取-背包结构与指针的逆向分析

内容参考于:易道云信息技术研究院VIP课 上一个内容:物品名称与物品编号的映射关系分析-CSDN博客 通过上一个内容已经可以通过物品的id得到一个名字,知道了它的算法,它的算法自己封装好了,我们直接用就好,…

机器学习之numpy库

机器学习之numpy库 numpy库概述numpy库历史numpy的核心numpy基础ndarray数组内存中的ndarray对象ndarray数组对象的特点ndarray数组对象的创建ndarray对象属性的基本操作数组的维度元素的类型数组元素的个数数组元素索引(下标) ndarray对象数组的自定义类型切片操作一维数组切片…

【趣味游戏-08】20240123点兵点将点到谁就是谁(列表倒置reverse)

背景需求: 上个月,看到大4班一个孩子在玩“点兵点将点到谁就是谁”的小游戏,他在桌上摆放两排奥特曼卡片,然后点着数“点兵点将点到谁就是谁”,第10次点击的卡片,拿起来与同伴的卡片进行交换。他是从第一排…

npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED

npm install时报错code CERT_HAS_EXPIRED 一、报错情况二、解决方案 一、报错情况 一直用的好好的,突然今天发现npm install 出问题了,具体报错如下: npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to…

unity项目《样板间展示》开发:火焰和UI设计

第二章:火焰和UI设计 前言一、火焰模型管理灶台火焰壁炉火焰 二、电视机播放三、UI设计结语 前言 这次带大家从0到1做一个unity项目:《样板间展示》。 顾名思义,项目内容是展示样板间,即玩家可以与房间中的物体、家具进行交互。 至…

30天零售应用构建挑战:低代码平台的惊人潜力

随着零售业格局的不断演变,零售商正被迫在一个日益活跃、竞争日益激烈的客户驱动型市场中展开竞争。随着互联网上产品信息和评论的出现,消费者的态度发生了巨大的变化——购物者不再依赖销售人员来获取信息。他们现在知道的和许多零售销售人员一样多&…

Portainer Docker容器可视化管理平台实践

Portainer Docker容器可视化管理平台实践 引安装登录Remote ENV 实践 引 平常用docker命令操作比较多,找了一款docker可视化工具,方便快速预览和批量操作,不想一行一行敲的时候,可以偷偷懒。Portainer试用了一下,安装…

linux的安装配置

文章目录 1.centos7安装2.如何进行一个网络的开启3.客户端Xshell和Xftp的一个使用4.换源 1.centos7安装 1.我是在虚拟机里面重装了一个liunx系统,首先我们新建一个虚拟机 2.前面东西都不需要我们进行一个选择,到图中的这一步我们选择一个liunx,版本的话我们选择一个…

网络防御保护1

网络防御保护 第一章 网络安全概述 网络安全(Cyber Security)是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断 随着数…

Midjourney基础 | 使用流程 注册,基础文生图,图的放大微调,保存

文章目录 1 使用流程2 生成自己的第一张图3 图的放大,微调3.1 放大3.2 微调变化 4 图的保存 Midjourney是依托于Discord的,但我也是通过Midjourney才了解的Discord 维基百科说~~Discord是一款专为社群设计的免费网络实时通话,主要针对游戏玩家…

请你来了解一下Mysql-InnoDB中事务的两段式提交

欢迎订阅专栏,了解更多Mysql的硬核知识点,原创不易,求打赏 ACID:事务的四个特性 A:原子性 原子性表示把一个事务中所有的操作视为一个整体,要么全部成功,要么全部失败,是事务模型区…

Flink处理函数(2)—— 按键分区处理函数

按键分区处理函数(KeyedProcessFunction):先进行分区,然后定义处理操作 1.定时器(Timer)和定时服务(TimerService) 定时器(timers)是处理函数中进行时间相关…

LeetCode_11_中等_盛最多水的容器

文章目录 1. 题目2. 思路及代码实现(Python)2.1 双指针 1. 题目 给定一个长度为 n n n 的整数数组 h e i g h t height height 。有 n n n 条垂线,第 i i i 条线的两个端点是 ( i , 0 ) (i, 0) (i,0) 和 ( i , h e i g h t [ i ] ) (i…

联想M7268、7208打印机加粉清零方法

联想小新M7268激光一体机基本参数 产品类型 黑白激光多功能商用一体机 涵盖功能 打印/复印/扫描 最大处理幅面 A4 耗材类型 鼓粉分离 耗材容量 硒鼓LD2268:10000页,墨粉LT2268:1000页 双面功能 手…

Linux常用的管线命令(pipe)

只介绍命令和对应的功能,详细用法可针对性的自行搜索 管线命令基本上都是对文本进行截取的功能,据我观察,他们基本上会以行为单位。 以下命令都可以用在管道上,但是有些也可以单独使用。 以下演示的文件是用last | head -n 12 >…