密码学系列1-安全规约

ops/2024/9/22 20:52:01/

本篇介绍了安全性规约的概念,双线性映射,常见困难性问题(离散对数CDH,DDHBDH)。

一、大家初看密码方案的时候,一定迷惑于为什么论文用大篇幅进行安全性证明。为什么需要证明安全性呢?

比如一个加密方案,若定义安全性为敌手得不到完整密文,那么敌手就很有可能有能力得到部分密文。而安全的加密方案应该使得敌手得不到任何有用的消息。利用安全性规约,我们能够很优雅、规范、严谨地证明我们方案能够达到的安全性。

二、通常是将我们的方案归约到某一个公认的困难性问题上(如离散对数等).证明思路是如果存在算法攻破我们的方案,那么就可以构造算法攻破公认的困难性问题。(后面详细举例)

严谨来说:首先确定密码算法的安全目标,如加密的CCA安全等,然后构造形式化的敌手模型和实验,把密码算法归约到对已知困难性问题的攻击,这就是可证明安全

下面给出以下常见的困难性问题例子:
例如:离散对数问题:给定 g , c = g a ( m o d p ) g,c=g^a(mod ~p) g,c=ga(mod p),求解参数 a a a是困难的。
有同学可能想的是对 c c c求个对数不就出来了吗。但是需要注意的是这里是做了模 p p p运算,在不模的情况下 g a = c + k p g^a=c+kp ga=c+kp,而 p p p又是一个很大的数,比如128bit(是 p p p的比特长度,而不是数值是128!!, p p p范围在 2 128 2^{128} 2128)。

CDH问题:给定 g , g a , g b g,g^a,g^b g,ga,gb,求解 g a b g^{ab} gab是困难的。

思考: CDH离散对数问题的关系

结论:如果存在敌手A能攻破(求解)离散对数问题,那么就可以求解CDH问题
证明思路:假设小明收到CDH问题实例 g , g a , g b g,g^a,g^b g,ga,gb,他想利用攻击者来求出 g a b g^{ab} gab。那么他把 g a g^a ga g b g^b gb发送给攻击者。因为攻击者有能力求解离散对数问题,敌手把求解的结果 a a a b b b返回给小明,那么小明就可以计算出 ( g a ) b (g^a)^b (ga)b或者 ( g b ) a (g^b)^a (gb)a。小明成功利用攻击者的能力求解出了CDH问题的解。
所以说如果敌手攻破了离散对数,那么小明利用这个攻击者构造了上述算法求解了CDH问题。

**DDH问题:**给定 g , g a , g b , T g,g^a,g^b,T g,ga,gb,T,判定 T = g a b T=g^{ab} T=gab或者 T = g c T=g^c T=gc是困难的。(判定T是计算出来的还是随机选的)

双线性映射:群 G , H , G T G,H,G_T G,H,GT是三个循环群,且群的阶均为素数 p p p,
g g g是群 G G G的生成元, h h h是群 H H H的生成元, e ( g , h ) e(g,h) e(g,h)是群 G T G_T GT的生成元。
定义双线性映射 e : G × H → G T e:G\times H \rightarrow G_T e:G×HGT满足以下性质:
1.对任意的 a , b ∈ Z p ∗ a,b \in \mathbb{Z}_p^* a,bZp, e ( g a , h b ) = e ( g , h ) a b e(g^a,h^b)=e(g,h)^{ab} e(ga,hb)=e(g,h)ab
2. e ( g , h ) ≠ 1 e(g,h)\ne 1 e(g,h)=1 e ( g a , h b ) = 1 e(g^a,h^b)= 1 e(ga,hb)=1当且仅当 a = 0 , b = 0 a=0,b=0 a=0,b=0

思考为什么需要第二点成立:
提示:如果 e ( g , h ) = 1 e(g,h)=1 e(g,h)=1,那么群 G T G_T GT中素由生成元表示任意元 e ( g , h ) a e(g,h)^a e(g,h)a等于多少?

非对称双线性映射 G = H , e : G × G → G T G=H,e:G\times G \rightarrow G_T G=H,e:G×GGT
对称双线性映射 G ≠ H , e : G × H → G T G\ne H,e:G\times H \rightarrow G_T G=H,e:G×HGT
注意:为什么双线性成立,底层原理是什么?这些问题不需要了解!方案构造时只需要知道双线性的性质(除非你要去做优化)。底层已经被封装好了!!

思考:非对称双线性上CDHDDH成立,但是对称DDH不成立。为什么不成立?
对称:给定 g , g a , g b , T g,g^a,g^b,T g,ga,gb,T,判定 e ( g a , g b ) e(g^a,g^b) e(ga,gb)是否等于 e ( g , T ) e(g,T) e(g,T)
非对称:给定 g , g a , g b , T g,g^a,g^b,T g,ga,gb,T,无法计算 e ( g a , g b ) e(g^a,g^b) e(ga,gb),因为 g b g^b gb不在群 H H H上。

同理给出BCDH问题:给定 g , g a , g b , g c g,g^a,g^b,g^c g,ga,gb,gc,求解 e ( g , g ) a b c e(g,g)^{abc} e(g,g)abc是困难的。


http://www.ppmy.cn/ops/9953.html

相关文章

ArkTs

一、概述 ArkTs是由TypeScript扩展而来,在继承TypeScript语法的基础上进行了一系列优化,使开发者能够以更简洁、更自然的方式开发应用。 TypeScript语法: 线上网站:https://www.typescriptlang.org/zh/play 二、TS变量 变量声明: 常量声明: const b…

什么是 Vue 实例,及其与组件的关系

什么是 Vue 实例,及其与组件的关系 什么是 Vue 实例什么是 Vue 组件Vue 实例与组件的关系 什么是 Vue 实例 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的,在创建实例时,可以提供一个选项对象来定义这些配置。 var vm new V…

基于微信小程序的宠物寄养小程序,附源码

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

【行为型模式】命令模式

一、命令模式概述 命令模式的定义:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。(对象行为型) 命令模式优缺点: 优点: 1.类间解耦:调用者角色与接收者角色之间没有任何依…

npm i 依赖下载失败

git config --global url."https://".insteadOf git://解决npm install 报错 npm ERR code 128 Permission denied_please make sure you have the correct access right-CSDN博客

【UI】element-ui的el-dialog的遮罩层在模态框的前面bug

最近在写element ui 的时候使用dialog组件,偶然出现了这种情况 原因: 是因为遮罩层插入进了body标签下,z-index高于当前父元素。 解决:在el-dialog标签里加上:modal-append-to-body"false"就可以了。 饿了么官网文档&a…

为什么删除node_modules文件夹很慢

在处理Node.js项目时,删除node_modules文件夹常常是一个非常缓慢的过程。这个现象主要由以下几个原因造成: 1. 文件和目录数量庞大 node_modules 文件夹之所以删除缓慢,最直接的原因是它包含了大量的文件和目录。当你通过npm或yarn这样的包…

sqlplus / as sysdba登陆失败,(ORA-01017)

周一上班检查alert log,看到某个库报出大量的错误 提示无法连接到ASM实例,这是某知名MES厂商DBA创建的11G RAC刚刚​转交到我手上的,这又是给我挖了什么坑? 报错为ORA-01017​用户名密码不对?​what? 登陆o…