首页 > 其他分享 >浙大暑期密码学课程|可证明安全基础

浙大暑期密码学课程|可证明安全基础

时间:2023-07-11 12:44:47浏览次数:39  
标签:DH 规约 浙大 敌手 暑期 密钥 密码学 安全性

浙大暑期密码学课程|可证明安全基础

视频地址:浙大暑期Crypto课程-Provable Security Basics( 上)浙大暑期Crypto课程-Provable Security Basics( 下)

参考:笔记分享|浙大暑期密码学课程:可证明安全基础

前言

本次课程由浙江大学的张秉晟老师带来,主要讲解密码学中的可证明安全理论基础

图片

现代密码学在20世纪70年代末得到发展,密码学可以用于保证机密性,完整性和认证,并广泛用于多个现代密码学原语中,如零知识证明,全同态加密等。

图片

可证明安全

可证明安全主要分为以下三个步骤:

  • 首先确定威胁模型
  • 其次构造方案
  • 最后给出一个正式的安全性证明

图片

公钥加密始于1976年Diffie和Hellman的论文,并提出了DH密钥交换/协商,当然DH密钥协商的安全性并非完全建立在离散对数上,RSA的安全性也不完全建立在factoring(大数分解问题)上。

图片

Textbook RSA

在这里我们要讲述的是Textbook RSA是不安全的,一般而言,需要对消息进行padding才可以使用相应的RSA方案。

  • padding:与对称加密算法DES,AES一样,RSA算法也是一个块加密算法( block cipher algorithm),总是在一个固定长度的块上进行操作,即需要填充消息,但跟AES等不同的是,block length是跟key length有关的。
  • 更多参考:RSA非对称加解密算法填充方式(Padding)

图片

单向函数

接下来介绍了单向函数,在单向函数中,多项式时间的敌手没法快速地找到单向函数输出所对应的原像,以下是单向函数的定义和安全性博弈(Game)。

图片

假设\(f(x)\)是一个单向函数,但是\(f(m)\)和\(f(m||r)\)都不是关于m的承诺方案,因为commitment需要保证hiding和binding,可能该输出会泄露m中的部分比特信息,但如果f是一个随机预言机(random oracle),那么\(f(m||r)\)是一个承诺。

图片

DH密钥协商

以下是离散对数的定义,在离散对数中,给定一个生成元\(g\)和一个群元素\(g^x\),敌手无法在多项式时间内求解\(x\)。

图片

以下PPT介绍的是基于DH的密钥协商协议,分为初始化阶段密钥生成阶段生成会话密钥阶段

图片

安全性证明

我们在证明DHKE安全性之前,需要确定DHKE在哪个假设之下是安全的,我们需要先确定安全性和假设,然后使用规约的方式来证明DHKE可以在多项式时间内被规约到特定假设若该假设是困难的,则说明被证明的密码方案很难被攻破,就具有安全性

图片

  • 首先我们需要先定义安全目标,在协议/算法执行过程中,敌手是谁,敌手的攻击能力和确定敌手的攻击目标。
    • 敌手是:第三方
    • 敌手攻击能力:窃听,猜测
    • 敌手攻击目标:得到\(k=g^{st}\)

图片

  • 以下是关于密钥恢复(Key Recovery)算法的安全性的安全定义和安全模型。

图片

规约理论

下图主要介绍了如何将DH密钥协商协议的安全性规约到特定的困难问题,最简单的方式是将DH密钥协商协议的安全性规约到离散对数问题,但是目前并不知道怎么样将密钥协商协议的安全性进行规约。

图片

所以我们需要引入计算性的DH问题,简记为CDH,下图介绍了CDH的敌手攻击能力和对应的博弈。

图片

离散对数(DL)和CDH的关系如下图所示,当CDH是困难的,那么DL是困难的,同时如果DL问题是困难的,CDH问题在某些条件下才是困难的,我们将采用该定理来实现安全性的规约

图片

规约其实就是假设某个问题是困难的,那么能够规约到该问题的原问题也是困难的,CDH和DL问题也是这样的关系,下图描述了他们之间的关系。

图片

敌手无法获得密钥k,密钥协商只实现这种安全性是不够的,还需要敌手无法获得关于k的任何信息

图片

不可区分安全

这种性质常见的典型体现是一次一密,即每次使用一个新的随机密钥k,对m进行异或操作,给定密文c和随机值,敌手很难在多项式时间内判断哪个是随机值,哪个是密文。

图片

该定义对应了不可区分安全,即敌手在多项式时间内无法确定特定数据,哪个是随机选取的,哪个是正确生成的,如下图所示。

图片

下图定义了不可区分(IND)的模型,同时为后续证明DH在DDH上实现IND安全先行进行了描述。

图片

然后下图定义了决定性DH问题,简记为DDH,该问题相对于CDH而言,在安全性证明规约中更通用,下图是DDH问题的敌手攻击能力和博弈描述。

图片

张老师最后给出了详细的推导和证明过程,详情请见视频。

标签:DH,规约,浙大,敌手,暑期,密钥,密码学,安全性
From: https://www.cnblogs.com/pam-sh/p/17544337.html

相关文章

  • 暑期熔炉7月9
    站在能分割世界的桥还是看不清在那些时刻遮蔽我们黑暗的心究竟是什么 笔记StringBuffer类1.创建StringBufferstr=newStringBuffer();创建一个空缓冲区默认长度为16的字符串StringBufferstr=newStringBuffer(length);创建一个长度为length的缓冲区的字符串......
  • 20230710巴蜀暑期集训测试总结
    T1打个不太暴的暴力但是爆了。只对了subtask1,不清楚发生了什么。先建出Kruscal重构树,对每个询问二分答案,判断就用暴力启发式合并T2打了一个\(20pts\)dp。第一步没有想到,每怎么见过这种题。将问题转化为满足\(\foralli,x_i\leA_i,x_i\leB_i\)的序列\(x\)个数。枚......
  • 暑期思维训练
    LISorReverseLIS?设一个长为\(n\)的整数序列\(a\)是\(\{a_1,a_2,a_3,\cdots,a_n\}\),那么\(a'\)表示\(\{a_n,a_{n-1},a_{n-2},\cdots,a_1\}\),\(\operatorname{LIS}(a)\)表示\(a\)的最长严格上升子序列的长度。现在给定\(a\)数组,请你将\(a\)数组重新排列,使得重......
  • 暑期记录2
    7月3这周我就开始了java的学习,首先我根据老师的要求下载并安装了编程软件eclipse,但是下载安装完成之后还需要下载jdk,修改环境配置,我通过查阅资料,大约花了1个小时才终于算是彻底完成了java编程的前期工作,面对一个全新的编程软件,开始是比较迷茫的,但通过上网查阅相关资料,对软件以及j......
  • 暑期第三周总结
    本周花在学习上的时间大概为21小时,花在代码上的时间大概为11小时。花在解决问题上的时间大概为4小时。本周,我完成了hive数据库的使用,包括但不限于创建数据库,删除数据库,数据库和hdfs的关系,创建表的语法,数据类型,内部表,外部表,内部表和外部表的区别,比如创建内部表的语法为createtable......
  • 暑期熔炉7月7
    你用尾巴,摇来一个家,所以我一生都称呼你爸爸,我的尾巴小,可它在长大,骄傲真可怕。    今日酒醒无梦,梦回唐朝,我好似见到那李白。梦里的他也在喝酒,还在欣赏一副洛神图。洛神图中有诗提,是那陈王曹植所作。洛神舞美陈王才,太白醉入我梦来。......
  • 20230706巴蜀暑期集训测试总结
    T1我是个大聪明!一眼矩乘。构造转移矩阵构造了3.5h!最开始以为只有\(15\times15\),直接手打。写到一半发现不一定四种颜色都有,是\(52\times52\)的,这时候狗被脑子吃了,还想手打,于是就打到了3h。差不多打了一大半,脑子终于把狗还回来了,意识到就算打完也不可能调得出来,就开始另辟蹊径,......
  • 20230707巴蜀暑期集训测试总结
    T1SPFA就能过!给我震惊到了。可以斜率优化。对每个站点维护一个凸包。\[f(x)=Ax^2+Bx+C\\dp_{v,q}=\min_{i=0}^{p}\{dp_{u,i}+f(p-i)\}\\(i,dp_{x,i}+Ai^2-Bi)\]T2考场想了想区间dp,有点思路但是时间不多了有点慌,打个暴搜直接跑。相当于将位置当作第二关键字比较,最大的数......
  • 浙大暑期密码学课程-笔记|两方安全计算
    浙大暑期密码学课程-笔记|两方安全计算视频地址:浙大暑期Crypto课程-MPCI(上)、浙大暑期Crypto课程-MPCI(下)参考:笔记分享|浙大暑期密码学课程:两方安全计算摘要多方安全计算(MPC)有着广泛的应用,本次课程将由来自浙江大学的张秉晟老师带来,主要讲解两方安全协议。安全多方计算的定......
  • 20230706巴蜀暑期集训测试总结
    T1我是个大聪明!一眼矩乘。构造转移矩阵构造了3.5h!最开始以为只有\(15\times15\),直接手打。写到一半发现不一定四种颜色都有,是\(52\times52\)的,这时候狗被脑子吃了,还想手打,于是就打到了3h。差不多打了一大半,脑子终于把狗还回来了,意识到就算打完也不可能调得出来,就开始另辟蹊径,......