现代密码学导论-4-完美保密及其三个等价定义

news2025/1/14 2:47:57

目录

完美保密 Perfectly Secret Encryption

2.1 完美保密的定义

DEFINITION 2.3 完美保密加密方案的定义

LEMMA 2.5 完美保密方案的等价定义(一)

证明引理2.5与定义2.3等价

完美不可区分性

不可区分实验 The adversarial indistinguishability experiment

DEFINITION 2.6 完美不可区分方案的定义

LEMMA 2.7 完美保密方案的等价定义(二)

证明引理2.7与定义2.3等价

Example 2.8 证明维吉尼亚密码体制不满足完美不可区分


  • 完美保密 Perfectly Secret Encryption

在上一章中,我们介绍了一些历史上的加密方案,并表明它们很容易被破解。在本章中,我们研究了另一个极端,并研究了即使在具有无限计算能力的对手面前也可证明安全的加密方案。这种计划被称为完美保密。我们严格定义了这一概念,并探索了实现完美保密的条件。在某种意义上,本章中的材料更多地属于“古典”密码学的世界,而不是“现代”密码学的。除了这里介绍的所有材料都是在20世纪70年代中期和80年代发生的密码学革命之前开发的这一事实之外,我们在本章中研究的结构仅依赖于第1.4节中概述的第一和第三原则。也就是说,使用了精确的数学定义并给出了严格的证明,但不必依赖任何未经证实的计算假设。避免这种假设显然是有利的;然而,我们将看到,这样做有其固有的局限性。因此,除了作为理解现代密码学基本原理的良好基础外,本章的结果也证明了我们后来采用上述三个原理的合理性。

2.1 完美保密的定义

我们想象一个对手知道M的概率分布;也就是说,对手知道不同的消息将被发送的可能性。对手也知道正在使用的加密方案。对手唯一不知道的是双方共享的密钥。消息由诚实的一方选择并加密,由此产生的密文被传输给另一方。对手可以窃听双方的通信,从而观察这个密文。(也就是说,这是一种唯密文攻击,攻击者只看到一个密文。)对于一个完全秘密的计划,观察这个密文应该不会对对手关于实际发送的信息的知识产生影响;换句话说,以观察到的密文为条件,某些信息m∈M被发送的后验概率,应该与m被发送的先验概率没有什么不同。这意味着密文没有揭示潜在的明文,对手对加密的明文也一无所知。

DEFINITION 2.3 完美保密加密方案的定义

一个在明文空间M上的加密方案(Gen,Enc,Dec),如果对于每个明文 m ∈ M,对每个密文c ∈ C,其中Pr[C=c]>0,有:

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

则称这种加密方案是完美保密


LEMMA 2.5 完美保密方案的等价定义(一)

一个在明文空间M上的加密方案是完美保密的,当且仅当,对于每个明文m,m‘ ∈ M,以及每个密文 c ∈ C有:(即加密不同的明文得到相同的密文的概率是一样的,这个概率是通过遍历密钥空间得出来的)


证明引理2.5与定义2.3等价

等价性的证明需要两个方向分别证明

我们先证明定义2.3可以推出引理2.5

我们先来证明A式

Pr[C = c | M = m]= Pr[Enck(m) = c] 

 

我们来逐行解释一下。

第一行的等式,是由于C的定义

第二行的等式,是我们把M=m当做条件使用

第三行的等式,是因为密钥K的选取和密文M无关

对于Pr[C = c] > 0 (any c ∈ C),根据联合概率的两种拆解方式,我们还可以得到B式

 

取M上的均匀分布。如果该方案是完美保密的,那么有Pr[M = m | C = c] = Pr[M = m],带入B式子,得到C式

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

 由于m和c是任意的,这表明对于每一个m,m'∈M和每一个c∈M,有

我们来逐行解释一下。

第一行的等式,是逆用了A式

第二行的等式,是使用了C式

第三行的等式,是逆用了C式和使用了A式

我们再证明引理2.5可以推出定义2.5

我们假设上面的式子对于每个m, m’∈M 和每个c∈C都成立,记为D式

我们假设 Pr[M = m] > 0

对于c ∈ C,我们定义

记为E式

我们联立A、D、E式,得到F式

F式对于每一个m’∈M均成立,我们有

我们来逐行解释一下

第一行使用了全概率公式

第二行使用了F式,第二个等号利用了F式中m的任意性

这样我们就由引理2.5推出了定义2.5


完美不可区分性

完美保密的另一个等价定义。这个定义是基于一个实验,即对手被动地观察一个密文,然后试图猜测两条可能的消息中哪一条被加密了。我们引入了这个概念,因为它将作为我们在下一章中定义计算安全性的起点;在本书的其余部分中,我们将经常使用像这样的实验来定义安全性。

在目前的情况下,我们考虑以下实验:一个对手A首先指定两个任意的消息m0,m1∈M。接下来,使用Gen生成一个密钥k。然后,选择A指定的两条消息中的一条(概率为1/2),使用k加密;结果密文给A,最后输出“猜测”哪条消息被加密;如果猜测正确,则成功。如果没有一个对手A成功的概率大于1/2,那么加密方案是完全无法区分的。我们强调,对A的计算能力没有施加任何限制。

假设 Π = (Gen, Enc, Dec)是一个具有消息空间M的加密方案。假设A是一个对手,它在形式上只是一个(有状态的)算法,我们可以假设它是确定性的而不失去一般性。

我们定义一个对于方案Π和敌手A的实验,记为

下面给出该实验的准确定义 


不可区分实验 The adversarial indistinguishability experiment

  1. 敌手A输出一对明文m0,m1 ∈ M
  2. 运行Gen生成一个随机密钥k,并选择一个统一的bit b∈{0,1}。计算密文c←Enck(mb),并返回给A。我们将c称为挑战密文
  3. A输出一个比特b’
  4. 如果b’ = b,那么实验的输出为1。否则,实验的输出为0。如果实验的输出为1,那么我们就说敌手A成功了


DEFINITION 2.6 完美不可区分方案的定义

一个在明文空间M上的加密方案:Π = (Gen, Enc, Dec)是完美不可区分的,当且仅当对每个敌手A都有:

 

 


LEMMA 2.7 完美保密方案的等价定义(二)

一个加密方案 Π 是完美保密的,当且仅当它是完美不可区分的。


证明引理2.7与定义2.3等价

我们先证明可以由引理2.7推出定义2.3

首先,完美不可取分意味着

等价于Pr[M=m0 | C=c] = Pr[M=m1 | C=c] = 1/2

而M = {m0,m1} ,即,明文空间中只有m0和m1

因此Pr[M=m] = 1/2

因此Pr[M=m | C=c] = Pr[M=m]对于任意m∈M均成立

我们再证明可以由定义2.3推出引理2.7

我们已经证明过引理2.5等价于定义2.3

引理2.5表明

Pr[Enck(m0)] = Pr[Enck(m1)]

我们之前证明了A式成立:Pr[C = c | M = m]= Pr[Enck(m) = c]

因此Pr[C=c | M=m0] = Pr[C=c | M=m1]

我们使用贝叶斯公式,得到

Pr[M=m0 | C=c] Pr[C=c] / Pr[M=m0] = Pr[M=m1 | C=c]Pr[C=c] / Pr[M=m1]

消去等式两边的相同部分,得到

Pr[M=m0 | C=c] / Pr[M=m0] = Pr[M=m1 | C=c] / Pr[M=m1]

因为Pr[M=m0] = Pr[M=m1]

所以Pr[M=m0 | C=c] = Pr[M=m1 | C=c]

这样就证明了不可区分性


Example 2.8 证明维吉尼亚密码体制不满足完美不可区分

设 Π 为两个长度为 2 的字符串的明文空间上的维基尼尔加密方案,并且密钥周期概率均匀地在{1,2}中选择。

敌手 A 的实验策略:输出两条明文m0 = aa,m1 = ab

对于返回的密文c = c1c2,敌手的输出策略为:如果c1 = c2,则输出 0 (即认为被加密的明文是m0);否则输出 1

敌手 A 实验成功的概率:

其中,b是决定哪个消息被加密的统一位

分两种情况进行讨论

M=m0,即b=0时:

如果密钥的周期为1,那么c1 = c2,根据敌手的策略,敌手输出 0 的概率为1

如果密钥的周期为2,那么只有当密钥的第一个字母和第二个字母恰好相等的情况下敌手才能输出 0 ,即在这种情况下敌手输出 0 的概率为1/26

因此

 

M=m1,即b=1时:

那么只有当密钥的周期为2,并且密钥的第二个字母恰好比第一个字母小 1 的时候,敌手才会输出 0

 我们把两种情况的概率相加,得到

 因此,这个方案并不是完全无法区分的。

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

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

相关文章

基于微信小程序的家校通系统-JAVA【数据库设计、源码、开题报告】

第一章 绪 论 1.1选题背景 随着网络时代的到来,互联网的优势和普及时刻影响并改变着人们的生活方式。在信息技术迅速发展的今天,计算机技术已经遍及全球,使社会发生了巨大的变革。 为了不受时间和地点的限制,智能手机用户可以通…

MySQL学习笔记-----Navicat设置建表

1.数据库字段设置 id 主要设置有bigint 和int两种 长度一般都是20 字符 主要设置 varchar 长度 我一般设置 255 时间 主要是设置为timestamp 混合日期和时间值,时间戳 ,建议在java端的DTO或者request设置时间格式 判断状态 比如mybatis-pl…

宋祖德六评岳云鹏,大饼脸、文化低、总有一句能戳中你的内心

都知道娱乐圈有一个纪委书记,那就是万达的公子王思聪,其实在郭德纲的北京德云社,也有一位义务纪委书记。著名导演宋祖德,就是德云社的纪委书记,这些年他把所有的重心,都放在了约束德云社上面。 俗话说&…

Mysql优化-经验分享

目录什么是索引索引类型主键索引唯一索引组合索引前缀索引全文索引空间索引索引的数据结构HASH表二叉树平衡二叉树红黑树B树B树索引的存储引擎MyISAMInnoDB索引优化方向分层SQL优化表设计三范式索引合理使用服务器优化内存升级碎片优化工具的使用explainshow processlistshow p…

基于单片机的音乐盒

本设计是基于单片机的音乐盒,主要实现以下功能: 1,可通过按键控制音乐的选择、声音的大小和开始/停止播放; 2,通过MP3模块播放音乐; 3,可通过蓝牙连接手机,用手机远程控制&#xff…

书法比赛评分系统-JAVA【数据库设计、源码、开题报告】

1 引言 1.1 选题背景及意义 书法艺术,是中国的国粹;是经过数千年历史积淀和先哲们上下求索而形成的灿烂的文化瑰宝;是囊括了人与天地之间的大学问;是中华民族智慧的结晶;是最具中国特色的文化艺术门类。它不仅在中国,而且在世界上也享有极高的荣誉&…

Spring Boot 自定义配置元数据

Spring Boot 自定义配置元数据 概述 开发Spring Boot应用程序时, 可以把 application.properties文件中的配置属性直接转换为 Java Bean对象。这也是Spring Boot 约定大于配置的理念的体现,通过框架内置的各种属性按照不同的需求进行排列组合,满足特定…

Spring Boot Admin2 @EnableAdminServer的加载

其他相关文章&#xff1a; 1、Spring Boot Admin 参考指南 2、SpringBoot Admin服务离线、不显示健康信息的问题 首先根据官网的“快速开始”&#xff0c;快速搭建一个Spring Boot Admin Server项目 1、添加Spring Boot Admin启动器到依赖 pom.xml <dependency><grou…

低代码会使初级码农失业吗?

低代码的目的是提升效率&#xff0c;不是压榨生存空间。低代码不代表低技术&#xff0c;所以低代码并不会导致初级码农失业&#xff0c;实际上不仅不会导致失业&#xff0c;还帮助更多人走上了“开发者”岗位。 何为低代码&#xff1f; 所谓“低代码”&#xff08;Low-Code&a…

day29 SQL注入增删改查盲注延时布尔报错

前言 #知识点&#xff1a; 1、明确查询方式注入Payload 2、明确查询方式注入产生功能 3、明确SQL盲注延时&布尔&报错 #详细点&#xff1a; 盲注就是在注入过程中&#xff0c;获取的数据不能回显至前端页面。 此时&#xff0c;我们需要利用一些方法进行判断或者尝…

基于JAVA的房屋租赁系统平台【数据库设计、源码、开题报告】

数据库脚本下载地址&#xff1a; https://download.csdn.net/download/itrjxxs_com/86427640 租户在租房过程中如何才能保护自己的合法权益? 出租方在租房过程中又如何证明房屋的所属关系?种种租赁相关话题&#xff0c;成了当下关注的民生热点&#xff0c;为了切实解决人民群…

BUUCTF Reverse/[GXYCTF2019]simple CPP

BUUCTF Reverse/[GXYCTF2019]simple CPP 先看文件信息&#xff0c;是个64位的程序&#xff0c;且没有加壳 IDA64位打开 int __cdecl main(int argc, const char **argv, const char **envp) {bool v3; // si__int64 v4; // rax__int64 v5; // r8__int64 v6; // r8unsigned __in…

【ESP32_8266_MQTT篇】

文章目录MQTT介绍1 MQTT历史2 MQTT版本MQTT介绍 MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范&#xff0c;易于实现。这些特点使得它对很多场景来说都是很好的选择&#xff0c;特别是对于受限的环境如机器与机器的通信&…

Java面向对象的特点之:继承

对于继承&#xff0c;当大家看到这个词语的时候&#xff0c;在现实生活中&#xff0c;想必也会自然而然的想到了&#xff1a;继承家产&#xff1f;&#xff1f;那么&#xff0c;在Java的面向对象的时候&#xff0c;也存在这样的思想&#xff01;&#xff01; 下面笔者来带领大…

【ASM】字节码操作 工具类与常用类 LocalVariablesSorter 源码介绍以及原理介绍

文章目录 1.概述2. LocalVariablesSorter#2.1 class info2.2 fields2.3 constructors2.4 methods2.4.1 newLocal method2.4.2 local variables method3.工作原理3.1 添加新変量3.2处理旧变量4.总结1.概述 在上一节文章中:【ASM】字节码操作 工具类与常用类 LocalVar

深度学习入门——基于TensorFlow的鸢尾花分类实现(TensorFlow_GPU版本安装、实现)

基于TensorFlow的鸢尾花分类实现0 引言1 基本介绍和环境搭建1.1关于TensorFlow-GPU环境搭建第一步:安装Anaconda&#xff1a;第二步&#xff1a;安装GPU版本需要&#xff0c;明确显卡型号第三步&#xff1a;打开conda终端建立Tensorflow环境第四步&#xff1a;激活虚拟环境&…

最简单例子解释python的transpose函数

二维数组的transpose就是矩阵的转置&#xff0c;这里直接略过。直接讨论三维情况。 首先&#xff0c;我们要弄清楚transpose的轴是什么意思&#xff1f; 0是代表了第一个轴&#xff0c;1是代表了第二个轴&#xff0c;2是代表了第三个轴&#xff0c;这里我们用x&#xff0c;y&…

基于PHP+MySQL米步童鞋商城网站的设计与实现

随时时代的发展,更多的宝妈们希望给宝宝买鞋子的时候能够通过更加简单方便的方式来进行,因为宝妈每天都要面对很多的时候,不能够经常到商场闲逛,所以她们急需一种通过互联网的方式来购买童鞋,所以我们通过PHP语言和MySQL数据开发了米步童鞋商城网站 米步童鞋商城网站的主要功能…

认识JUC

JUC 一、Java JUC 简介 在 Java 5.0 提供了 java.util.concurrent &#xff08;简称 JUC &#xff09;包&#xff0c;在此包中增加了在并发编程中很常用 的实用工具类&#xff0c;用于定义类似于线程的自定义子 系统&#xff0c;包括线程池、异步 IO 和轻量级任务框架。 提供…

基于阈值预分割的区域生长分割法研究-含Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、区域生长原理✳️ 三、基于阈值预分割的区域生长算法✳️ 四、确定生长准则✳️ 五、实验结果✳️ 六、参考文献✳️ 七、Matlab代码获取✳️ 一、引言 在区域分割处理技术之中&#xff0c;又包含有区域生长分割技术以及区域分裂合并分割…