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

目录

一. 介绍

二. 不可区分性试验

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

四. 例题

五. 小结


一. 介绍

敌手完美不可区分,英文写做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.mzph.cn/news/638079.shtml

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

相关文章

ICLR 2024 时间序列相关最新论文汇总,涉及transformer、GNN、大模型等热门领域

ICLR(International Conference on Learning Representations),国际公认的深度学习顶会之一,与AAAI、CVPR、ACL和NIPS等老牌学术会议齐名,由图灵奖巨头Yoshua Bengio和Yann LeCun牵头举办,在人工智能、统计…

UI -- Vue3

Vue3 模板 Vue3 UI package.json同级components/slButton/element.vue <template><div class"dddiv"><span>测试321</span></div> </template><script setup>defineOptions({name: "sl-button" }); </scr…

Spring | Srping AOP (AOP简介、动态代理、基于“代理类”的AOP实现)

目录: 1.Spring AOP简介1.1 AOP简介1.2 AOP术语 2.动态代理2.1 JDK动态代理2.2 CGLIB代理 3.基于“代理类”的AOP实现3.1 Spring的通知类型3.2 ProxyFactoryBean ( 可通知.xml配置文件完成aop功能 ) 1.Spring AOP简介 1.1 AOP简介 Spring的AOP模块&#xff0c;是Spring框架体系…

SpringMVC获取参数与页面跳转

获取参数 第一种 直接当成方法的参数&#xff0c;需要与前台的name一致 相当于Request.getAttribute("username") Controller 第二种 使用对象接收 页面的name也要和对象的字段一致 创建一个对应的实体类 Controller 将参数更换为User对象就行 SpringMVC获取到…

P2P DMA并不是所有场景都会有性能提升

P2P (Peer-to-Peer) DMA技术理论上可以带来性能提升&#xff0c;特别是在特定的工作负载和场景下。例如&#xff0c;当两个高速设备&#xff08;如GPU与NVMe SSD&#xff09;需要频繁进行大量数据交换时&#xff0c;通过P2P DMA&#xff0c;数据可以直接在设备间传输&#xff0…

结构体内存对齐(面试重点)

结构体内存对齐 1. 结构体类型的声明1.1 结构体的概念1.1.1 结构的声明1.1.2 结构体变量的创建和初始化 1.2 结构的特殊声明1.3 结构的自引用 2. 结构体内存对齐2.1 对齐规则2.1.1 练习1:2.1.2 练习2:2.1.3 练习3:2.1.4 练习4: 2.2 offsetof宏的使用2.3 为什么存在内存对齐?2.…

electron + selenium报错: Server terminated early with status 1

解决办法&#xff1a; 这种错误一般是浏览器创建的某方法致命错误导致的&#xff0c;查看一下实例化driver的地方有哪些配置&#xff0c;着重看日志、用执行信息存储一类的配置&#xff0c;我的问题是日志文件夹改过了但没有创建 // 浏览器参数设置 const customArguments [-…

Mac book air 重新安装系统验证显示 untrusted_cert_title

环境&#xff1a; Mac Book Air macOS Sierra 问题描述&#xff1a; Mac book air 重新安装系统验证显示 untrusted_cert_title 解决方案&#xff1a; 1.终端输入命令行输入 date 会看到一个非常旧的日期 2.更改日期为当前时间 使用以下命令来设置日期和时间&#xff1a…

react和vue的区别

一、核心思想不同 Vue的核心思想是尽可能的降低前端开发的门槛&#xff0c;是一个灵活易用的渐进式双向绑定的MVVM框架。 React的核心思想是声明式渲染和组件化、单向数据流&#xff0c;React既不属于MVC也不属于MVVM架构。 如何理解React的单向数据流&#xff1f; React的单…

React.js快速入门教程

介绍 React.js是一个由Facebook开发的用于构建用户界面的JavaScript库。它主要用于构建单页面应用程序&#xff08;SPA&#xff09;&#xff0c;可以轻松地创建交互性强、快速响应的用户界面。 React.js的特点 1.声明式设计 −React采用声明范式&#xff0c;可以轻松描述应用…

java黑马学习笔记

数组 变量存在栈中&#xff0c;变量值存放在堆中。 数组反转 public class test{public static void main(String[] args){//目标&#xff1a;完成数组反转int[] arr {10,20,30,40,50};for (int i 0,j arr.length - 1;i < j;i,j--){int tep arr[j]; //后一个值赋给临时…

20240119-子数组最小值之和

题目要求 给定一个整数数组 arr&#xff0c;求 min(b) 的总和&#xff0c;其中 b 的范围涵盖 arr 的每个&#xff08;连续&#xff09;子数组。由于答案可能很大&#xff0c;因此返回答案模数 Example 1: Input: arr [3,1,2,4] Output: 17 Explanation: Subarrays are [3]…

Vision Transformer(VIT)模型介绍

计算机视觉 文章目录 计算机视觉Vision Transformer&#xff08;VIT&#xff09;Patch EmbeddingsHybrid ArchitectureFine-tuning and higher resolutionPyTorch实现Vision Transformer Vision Transformer&#xff08;VIT&#xff09; Vision Transformer&#xff08;ViT&am…

User表设计

>: cd luffyapi & cd apps2.创建app >: python ../../manage.py startapp user创建User表对应的model&#xff1a;user/models.py from django.db import models from django.contrib.auth.models import AbstractUser class User(AbstractUser):mobile models.Cha…

PACS医学影像采集传输与存储管理、影像诊断查询与报告管理系统,MPR多平面重建

按照国际标准IHE规范&#xff0c;以高性能服务器、网络及存储设备构成硬件支持平台&#xff0c;以大型关系型数据库作为数据和图像的存储管理工具&#xff0c;以医疗影像的采集、传输、存储和诊断为核心&#xff0c;集影像采集传输与存储管理、影像诊断查询与报告管理、综合信息…

使用helm部署 redis 单机版

1、配置helm redis repo helm repo add bitnami https://charts.bitnami.com/bitnami 2 安装下载helm redis 下面是默认安装&#xff0c;不过前往别直接拿着下面安装命令就安装&#xff0c;官方默认安装的默认参数配置往往和我们实际场景不一样&#xff0c;需要配置一些参数…

4D毫米波雷达——FFT-RadNet 目标检测与可行驶区域分割 CVPR2022

前言 本文介绍使用4D毫米波雷达&#xff0c;实现目标检测与可行驶区域分割&#xff0c;它是来自CVPR2022的。 会讲解论文整体思路、输入数据分析、模型框架、设计理念、损失函数等&#xff0c;还有结合代码进行分析。 论文地址&#xff1a;Raw High-Definition Radar for Mu…

韵达快递单号查询入口,对需要的快递单号记录进行颜色标记

选择一款好的工具&#xff0c;往往能事半功倍&#xff0c;【快递批量查询高手】正是你物流管理的得力助手。它不仅可以助你批量查询快递单号的物流信息&#xff0c;还能帮你对需要的快递单号记录进行标记&#xff0c;让你享受高效便捷的物流管理体验。 所需工具&#xff1a; …

​LeetCode解法汇总2182. 构造限制重复的字符串

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 给你一个…

CompletableFuture应用源码分析

CompletableFuture应用&源码分析 2.1 CompletableFuture介绍 平时多线程开发一般就是使用Runnable,Callable,Thread,FutureTask,ThreadPoolExecutor这些内容和并发编程息息相关。相对来对来说成本都不高,多多使用是可以熟悉这些内容。这些内容组合在一起去解决一些并…