单陷门置换

news/2024/11/29 5:31:46/

陷门置换定义

  一个陷门置换族是一个PPT算法元组 ( G e n , S a m p l e , E v a l , I n v e r t ) (Gen,Sample,Eval,Invert) (Gen,Sample,Eval,Invert)

  1. PPT,运行步数是安全参数的多项式函数。
  2. G e n ( l K ) Gen(l^{\mathcal{K}}) Gen(lK)是一个概率性算法,输入为安全参数 l K l^{\mathcal{K}} lK,输出为 ( i , t d ) (i,td) (i,td),其中 i i i是定义域 D i D_i Di上的一个置换 f i f_i fi的标号(“公钥”), t d td td是允许求 f i f_i fi逆的陷门信息(“私钥”)。
  3. S a m p l e ( l K , i ) Sample(l^{\mathcal{K}},i) Sample(lK,i)是一个概率性算法,输入 i i i G e n Gen Gen产生,输出为 x ← R D i x\leftarrow _{R}D_i xRDi
  4. E v a l ( l K , i , x ) Eval(l^{\mathcal{K}},i,x) Eval(lK,i,x)是一个确定性算法,输出为 y ∈ D i y \in D_i yDi。即 E v a l ( l K , i , ⋅ ) : D i → D i Eval(l^{\mathcal{K}},i,\cdot):D_i \rightarrow D_i Eval(lK,i,):DiDi D i D_i Di上的一个置换。
  5. I n v e r t ( l K , t d , y ) Invert(l^{\mathcal{K}},td,y) Invert(lK,td,y),输出为 x x x

  RSA加密算法就是一个典型的陷门置换:
6. G e n ( k ) Gen(\mathcal{k}) Gen(k):随机选取两个 K \mathcal{K} K比特素数 p p p q q q。计算 N = p q N=pq N=pq φ ( N ) = ( p − 1 ) ( q − 1 ) \varphi(N)=(p-1)(q-1) φ(N)=(p1)(q1)。选取与 φ ( N ) \varphi(N) φ(N)互素的 e e e,计算 e d = 1 m o d φ ( N ) ed=1 mod \ \varphi(N) ed=1mod φ(N),输出为 ( ( N , e ) , ( N , d ) ) ((N,e),(N,d)) ((N,e),(N,d))。分别对应 i i i t d td td。定义域 D N , e D_{N,e} DN,e就是 Z N Z_{N} ZN
7. S a m p l e ( K , ( N , e ) ) Sample(\mathcal{K},(N,e)) Sample(K,(N,e)):从 Z N Z_N ZN中选取一个随机元素 x x x
8. E v a l ( K , ( N , e ) , x ) Eval(\mathcal{K},(N,e),x) Eval(K,(N,e),x) y = x e m o d N y=x^e mod \ N y=xemod N
9. I n v e r t ( K , ( N , d ) , y ) Invert(\mathcal{K},(N,d),y) Invert(K,(N,d),y),输出为 x = y d m o d N x=y^dmod \ N x=ydmod N

单陷门置换定义

  在陷门置换中没有考虑任何“困难性”和安全性的概念(可以为线性置换以及求逆),这在密码学上是没有意义的。所以一般认为密码学中的陷门置换是单陷门置换。单陷门置换是指当陷门信息 t d td td未知时,一个随机陷门置换的求逆是困难的。具体定义如下:
  一个陷门置换簇 ( G e n , S a m p l e , E v a l , I n v e r t ) (Gen,Sample,Eval,Invert) (Gen,Sample,Eval,Invert)是单向的,如果对于任意的PPT敌手 A \mathcal{A} A,存在一个可忽略的函数 ϵ ( K ) \epsilon{(\mathcal{K})} ϵ(K),使得 A \mathcal{A} A在下面的对抗中,其优势 A d v A ( K ) ≤ ϵ ( K ) {Adv}_{\mathcal{A}}(\mathcal{K}) \leq \epsilon{(\mathcal{K})} AdvA(K)ϵ(K)
F u n c t i o n A ( K ) : {Function}_{\mathcal{A}}(\mathcal{K}): FunctionA(K):
   ( i , t d ) ← G e n ( K ) (i,td)\leftarrow Gen(\mathcal{K}) (i,td)Gen(K)
   y ← S a m p l e ( K , i ) y \leftarrow Sample(\mathcal{K},i) ySample(K,i)
   x ← A ( K , i , y ) x \leftarrow \mathcal{A}(\mathcal{K},i,y) xA(K,i,y)
  如果 E v a l ( K , i , x ) = y Eval(\mathcal{K},i,x)=y Eval(K,i,x)=y,返回1;否则返回0。
   A \mathcal{A} A的优势 A d v A ( K ) {Adv}_{\mathcal{A}}(\mathcal{K}) AdvA(K)定义为 A d v A ( K ) = P r [ F u n c t i o n A ( K ) = 1 ] {Adv}_{\mathcal{A}}(\mathcal{K})=Pr[{Function}_{\mathcal{A}}(\mathcal{K})=1] AdvA(K)=Pr[FunctionA(K)=1],其中 P r Pr Pr表示概率。
  为了方便理解可以将 i i i表示为置换 f f f t d td td表示为逆置换 f − 1 f^{-1} f1


http://www.ppmy.cn/news/660609.html

相关文章

HTML - 替换(置换)元素和非替换(置换)元素

通常我们都将html元素分为块级元素、行内元素以及行内块级元素,但是今天冲浪时发现一个将html元素分类的新名词对——替换元素和非替换元素,其实也可以称为置换元素和非置换元素。接下来就记录一下个人对于这个新名词对的一些浅显见解,如有问…

数据结构和算法的概念以及时间复杂度空间复杂度详解

⭐️ 什么是数据结构? 百度百科给数据结构的定义: 数据结构(Data Structure)是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 数据结构就是数据在内存中的存储方式。 ⭐️ 什么是算法? 百度百…

置换密码

置换密码又称换位密码,是根据一定的规则重新排列明文,以便打破明文的结构特性。置换密码的特点是保持明文的 所有字符不变,只是利用置换打乱了明文字符的位置和次序。也就是说,改变了明文的结构,不改变明文的内容。 例…

4.5 置换矩阵

4.5 置换矩阵 是不是任意可逆矩阵都可进行 L D U LDU LDU 分解呢?其实不能,消元操作需要除以对角元素 a i i a_{ii} aii​ ,当其为 0 0 0 时,则会失败。这时可在下面行中选择任一对角元素不为 0 0 0 的行,对调这两…

重点!!!页面置换算法(最佳置换算法(OPT) 、先进先出置换算法(FIFO) 、最近最久未使用置换算法(LRU) 、时钟置换算法(CLOCK) 、改进型的时钟置换算法)

文章目录 前言知识总览最佳置换算法(OPT)先进先出置换算法(FIFO)最近最久未使用置换算法(LRU)时钟置换算法(CLOCK)改进型的时钟置换算法知识回顾与重要考点 前言 此篇文章是我在B站学习时所做的笔记&#…

近世代数--置换群--置换permutation分解成什么?置换的级如何计算?

近世代数--置换群--置换permutation分解成什么?置换的级如何计算? 置换的分解置换的级计算 博主是初学近世代数(群环域),本意是想整理一些较难理解的定理、算法,加深记忆也方便日后查找;如果有错…

置换群 理解

http://blog.163.com/myq_952/blog/static/863906320110211731329/ 置换的概念是什么?一个有限集合的一一变换叫做置换,一对对置换组成了置换群。对于一个集合a(a[1],a[2],a[3]...a[n]) 通过置换可以变成 (b[a[1]],b[a[2]],b[a[3]]...b[a[n]]) b的作用就是置换(可以…

置换矩阵(permutation matrix)

左行:一个矩阵或向量左乘一个 permutation matrix,交换的是该矩阵或向量的行;右列:一个矩阵或向量右乘一个 permutation matrix,交换的是该矩阵或向量的列; P,A,B 分别为三阶方阵,其中 P 为置换…