【现代密码学基础】详解完美安全与不可区分安全

目录

一. 介绍

二. 不可区分性试验

三. 不可区分性与完美安全

四. 例题

五. 小结


一. 介绍

敌手完美不可区分,英文写做perfect adversarial indistinguishability,其中adversarial经常被省略不写,在密码学的论文中经常被简称为IND安全。

完美不可区分与香农的完美安全是类似的。该定义来源于一个被动窃听的敌手试验:给敌手一个密文,然后让敌手猜测明文来源于可能得两个中的哪一个。这个过程其实也可以用计算安全来衡量。

二. 不可区分性试验

敌手A首先随意选择两个明文,如下:

m_0,m_1\in M

接着借助Gen算法产生密钥k,利用该密钥对其中的一个明文进行加密。当然此过程明文的选择需要相等的概率。

接着将该密文给敌手A,让他猜测哪一个明文被加密了。如果猜对了,则认为敌手A成功了。

如果敌手成功的概率不会好于1/2,那么认为该加密方案时完美不可区分的。其实,对于任意的加密方案,敌手都可以采用随机均匀的方法进行猜测,这个时候成功的概率即为1/2,不可区分性要求敌手的攻击策略不会优于随机猜测。

注意此处的不可区分性并没有限制敌手的计算能力(computational power)。

将加密方案形式化表达为:

\Pi=(Gen,Enc,Dec)

将消息空间表示为M,令A代表敌手,可以抽象成一个确定性的算法,由此可将如上的试验定义为:

PrivK_{A,\Pi}^{eav}

试验的具体步骤如下:

注意区分敌手A输出1,代表m1.

试验输出1,代表敌手猜测成功,两者是完全不一样的。

三. 不可区分性与完美安全

在不可区分性试验中,当敌手A随机猜测时,那么他成功的概率就是1/2.完美不可区分性则要求敌手A没有更好的其他策略了。

将以上的过程总结为形式化的定义,如下:

当一个方案是完美不可区分时,那么它也是完美安全的。两者可以互推。

四. 例题

假定某维吉尼亚密码(Vigenere cipher)的明文空间是双子母串。密钥周期可能是1也可能是2,两者均匀选择,如下:

T=\lbrace 1,2\rbrace

请证明该维吉尼亚密码不是完美不可区分的。

解:

利用\Pi代表该维吉尼亚密码,要想证明该密码方案不是完美不可区分的,其本质则是证明不可区分性试验输出1的概率大于1/2,如下:

接下来我们来详细解释该实验如何展开。

让敌手A执行如下步骤:

第一步:输出两个明文,如下:

m_0=aa\quad m_1=ab

在收到挑战密文c后,如下:

c=c_1c_2

分成两种情况,敌手输出不同的值:如果发现c1=c2,那么输出0;否则输出1

接下来计算该实验成功的概率可能有些繁琐,但是思想是很直接的。计算如下:

第一个等号:将试验成功分成两种不同的情况,对应两个条件概率

第二个等号:试验成功则是敌手输出的b和实际选择的b相同

以上b代表到底选择哪个明文,当然要求此过程明文的选择是均匀随机比特串。

当敌手输出0时,说明两个密文字母相等。此时b=0,明文m0=aa,也就是c1=c2.出现此种现象有两种可能性:

当密钥的周期为1时,对应的概率为1/2

当密钥的周期为2时,且第一个密钥和第二个密钥相等的概率可计算为:

\frac{1}{2}\frac{1}{26}

由此可计算当b=0时,敌手A输出0的概率为:

当b=1时,如果要求c1=c2,也就是敌手依旧输出0,由于明文字母是不一样的,所以要求此时的密钥周期必定为2,此时只有一种情况可以实现,所以可以计算为:

第一个等号:从互补的情况开始思考

第二个等号:1/2代表密钥周期为2,1/26代表:26(1/26)(1/26)

将两者进行合并可得:

很显然该方案不是完美不可区分的。

五. 小结

密码学可分为密码编码学和密码分析学。前者研究如何编解码信息,实现网络安全通信与传输;后者研究如何破译密码或其实现,寻找传输的薄弱环节,二者对立统一、相互促进.

密码编码学

密码编码学主要研究解决信息安全中的机密性、数据完整性、认证、身份识别、可控性及不可抵赖性等问题中的一个或几个。按照加密方式,密码体制可分为对称加密和非对称加密。前者用同一密钥加解密信息,密钥通常需要通过安全的方式分配给通信双方;后者用不同的密钥加解密信息,可将其中一项密钥作为公钥公开,仅将私钥妥善保管即可实现安全通信。

作为密码编码学的重要组成部分,密码算法的安全性和算法设计至关重要。对密码算法的安全性要求主要包括计算安全性、可证明安全性、无条件安全性等,其侧重点有所不同,主要特征如下:

(1)计算安全性:

指用目前算力无法在规定时间内攻破密码算法来说明密码体制的安全性。虽然目前没有被证明计算安全的密码算法,但其可操作性强使得计算安全性成为常用的密码算法评价标准。然 而,计算安全性仅说明密码算法的安全性和可计算问题相关,无法证明密码算法绝对安全

(2)可证明安全性:

指用多项式规约技术形式化证明密码体制的安全性。它通过有效的转化将对密 码算法的攻击规约为可计算问题的求解。

(3)无条件安全性:

指攻击者在计算资源无限的情况下,密码算法也无法被攻破。密码算法设计的基本原则是加密算法应有不可预测性,主要体现在:1)密码算法需要有较高的线性复杂度,即仅依据密文信息,攻击者很难用统计学方法分析明密文间的关系,从而重现加解密过程;2)加解密流程应足够“混乱”和“扩散”,即通过扩散处理使得加密元素之间相互影响,输入中任何微小的变化都会造成输出改变.

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

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

相关文章

海外盲盒系统搭建,盲盒出海的关键方式

随着我国盲盒的爆火,潮玩市场中的各大品牌都陆续加入到了盲盒赛道中,盲盒市场持续火热。 与此同时,盲盒出海成为了这两年的一大趋势,预计今年全球潮玩市场规模可以达到448亿美元,增长速度非常快。海外广阔的市场前景将…

回溯法:0-1背包问题

问题描述 给定种物品和一背包。 物品的重量是, 其价值为,背包的容量为 c。 问应该如何选择装入背包中的物品,使得装入背包中物品的总价值最大?注意物品不重复! 实例:物品价值V{12, 11, 9, 8}, 物品重量W{8, 6, 4, 3},…

不用VBA,如何表格中写公式实现汉字转拼音?

Excel网络函数库自2018年发布以来,我们几乎每天都在帮助用户解决各种办公自动化问题。解决的问题多了,慢慢的我们对用户的业务场景、问题来源、困难诉求有了基本认识。为了更好的帮助大家,未来,我们将对不同职业的办公效率改善问题…

(蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)

能够表示为某个整数的平方的数字称为“平方数 虽然无法立即说出某个数是平方数,但经常可以断定某个数不是平方数。因为平方数的末位只可能是:0,1,4,5,6,9 这 6 个数字中的某个。所以,4325435332 必然不是平方数。 如果给你一个 2 位或 2 位以上的数字&am…

Pandas中不同类型的join操作

Pandas模块包含各种功能,可以在数据框上执行各种操作,如join,concatenate,delete,add等。在本文中,我们将讨论可以在Pandas数据框上执行的各种类型的join操作。Pandas中有五种类型的Join。 为了理解不同类…

systemverilog/verilog文件操作

1、Verilog文件操作 Verilog具有系统任务和功能,可以打开文件、将值输出到文件、从文件中读取值并加载到其他变量和关闭文件。 1.1 、Verilog文件操作 1.1.1、打开和关闭文件 module tb; // 声明一个变量存储 file handler integer fd; initial begin // 以写权限打开一个文…

编译和链接(翻译环境:预编译+编译+汇编+链接​、运行环境)

一、翻译环境和运行环境​ 在ANSI C的任何一种实现中,存在两个不同的环境。​ 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。​ 第2种是执行环境,它用于实际执行代码。​ VS中编译器:cl.exe ;Linux中…

linux sudo指令提权

sudo指令 sudo 是在linux中用于以超级用户(root)权限执行命令的命令。它允许普通用户在执行特定命令时提升其权限,以完成需要超级用户权限的任务。sudo 的名称是 "superuser do" 的缩写。 格式 接受权限的用户登陆的主机 &#xff…

Python自动化测试【selenium面试题】

一、selenium中如何判断元素是否存在? expected_conditions模块提供了16种判断方法,以下方法是判断元素存在DOM中: presence_of_element_located """ An expectation for checking that an element is present on the DOM of…

【网站项目】基于ssm的青大校园预点餐系统

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

算法通关村番外篇-LeetCode编程从0到1系列五

大家好我是苏麟 , 今天带来算法通关村番外篇-LeetCode编程从0到1系列五 . 数学 1523. 在区间范围内统计奇数数目 描述 : 给你两个非负整数 low 和 high 。请你返回 low 和 high 之间(包括二者)奇数的数目。 题目 : LeetCode 1523. 在区间范围内统计奇…

目标检测数据集 - 跌倒检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍:跌倒检测数据集,真实场景高质量图片数据,涉及场景丰富,比如交通事故跌倒、打架跌倒、运动跌倒、楼梯跌倒、生病跌倒、遮挡行人跌倒、严重遮挡行人跌倒数据;适用实际项目应用:公共场所监控或室内…