后量子密码学中的模数是多少?

news2025/3/1 4:09:45

密码学:后量子密码学中的模数是多少?

未标题-3

只要是从事网络安全或安全软件开发的人,就都可能已经了解过公钥加密以及在20世纪70年代末和80年代前后创建的方法。现在我们可能需要学习更多的理论,因为我们所学的方法可能会受到量子计算机的威胁。

如果想开始学习这些新方法,那就有必要往下读了。

(mod p) 运算

在传统的公钥加密中,我们使用一个模数来创建有限域。虽然这听起来很复杂,但实际上这是一个非常简单的概念。对于有限域,我们引入一个模数,它通常是一个素数。对于素数,我们从整数除法中确定余数,然后取余数作为结果。例如,如果素数为17,我们将得到 0 到 16 范围内的输出值:

5 (mod 17) = 6
19 (mod 17) = 2
100 (mod 17) = 15

(mod p)运算的伟大之处在于,我们仍然可以进行加减乘除,并最终得到相同的结果,例如:

15 (mod 17) +100 (mod 17) = (15+100) (mod 17) = 13
15 (mod 17) * 100 (mod 17) = (15*100) (mod 17) = 4

在离散对数中,我们经常使用Diffie Hellman方法,我们选择一个共享素数 § 和一个共享生成器值 (g),并计算:

A = g^x (mod p)
B = g^y (mod p)

交换A和B,共享密钥为:

K = A^y (mod p)

之所以有效,是因为:

K = A^y (mod p) = (gx)y (mod p) = g^{xy} (mod p)

在RSA方法中,我们使用模数(N)。对于加密,我们有:

C = M^e (mod N)

要破译:

M = C^d (mod N)

在这种情况下,N是两个素数的乘积,RSA 的优势在于分解模数 (N) 的难度。椭圆曲线方法也使用一个素数§的模数,其中我们有:

y² =x³ + ax + b (mod p)

这将我们在椭圆曲线上使用的点的值限制在 0 和 (p-1) 之间。

多项式

但是,量子计算机将破解RSA、椭圆曲线和离散对数,那么后量子密码学中的模数相当于什么?我们可以使用格加密,这涉及到我们使用多项式值来表示我们的位串。

如果我们有一个值19,它可以表示为10011和一个多项式值:

x⁴+x+1

67可以用1000011表示,并且是一个多项式:

x ⁶+ x +1

如果我们把这两个多项式相加,我们得到:

( x⁴ + x +1)+( x ⁶+ x +1)= x ⁶+ x ⁴+1+1

因为我们使用的是 Base 2,所以 1+1 等于 0,因此我们得到:

( x⁴ + x +1)+( x ⁶+ x +1)= x ⁶+ x

同样的道理也适用于添加相同的幂,例如:

x⁴ + x⁴ = 0
x⁴ + x⁴ + x⁴ = x⁴

以此类推。

在格密码中,我们用多项式进行加,减,乘,除。一个运算可能有一个x³+x+1的多项式,和一个x²+1的秘密多项式,然后将它们相乘得到一个结果。为了恢复原来的值,我们可以除以秘密多项式。

但是,我们如何将多项式的最大幂限制在有限域内呢?就像我们用传统的公钥方法那样,我们用一个模数,然后除以模数,保留余数。

有限域的模数

有限域或Galois域(GF)具有有限数量的元素,并且阶数等于素数 (GF§) 或素数的幂 (GF(2^ p ))。例如,GF(2n)有2n个元素,它的元素被称为二元多项式(其中多项式因子的系数要么为零,要么为一个值)。为了将多项式减少到给定的大小,我们使用一个模数多项式,它除以输出值。对于GF(128),我们可以使用x ⁷+ x +1 的模数。

让我们举个例子:

a = + x ²+1

b = x ⁶+ x ⁴+ x ³+1

当我们相加时,得到:

a + b = x ³+ x ²+1+ x ⁶+ x ⁴+ x ³+1= x ⁶+ x ⁴+ x ²

现在,我们把它们相乘:

a × b =( x ³+ x ²+1)×( x ⁶+ x ⁴+ x ³+1)= x⁹ + x ⁷ + x ⁶+ x ³+ x ⁸+ x ⁶+ x ⁵+ x ²+ x ⁶+ x ⁴+ x ³+1= x ⁹+ x ⁸+ x ⁷ + x ⁵+ x ⁴+ x ²+1

我们现在用这个值除以模数。在此例中,对于 GF(128),模数是x⁷ + x +1:

截屏2022-11-16 上午10.04.22

对于GF(128), a×b的结果如下:

a × b = x ⁶+ x ⁵+ x ⁴+ x ³+ x ²

在Sage中:

截屏2022-11-16 上午10.05.25

示例运行:

截屏2022-11-16 上午10.05.40

如果我们现在使用 GF(256) :

截屏2022-11-16 上午10.05.53

示例运行:

截屏2022-11-16 上午10.06.04

我们可以看到,在Sage中GF(256)的默认模数为:

x ⁸+ x ⁴+ x ³+ x ²+1

我们可以在 Sage 中使用列出默认模值:

截屏2022-11-16 上午10.06.58

给出了:

截屏2022-11-16 上午10.07.26

不可约多项式

就像公钥加密中的素数一样,我们需要一个不能被任何数整除的多项式。为此,我们使用一个不可约多项式。不可约多项式的例子有:

img

我们的不可约多项式是x、x²、x²+x+1 和 x³+x²+1。它们等价于我们在传统公钥加密方法中使用的素数,并类似于(mod p)运算。一种常用的方法是 x⁸+x⁴+x³+x+1,用于AES加密。在Sage中,我们可以定义自己的模数,例如:

k.<x>= GF(2^8, modulus=x^8+x^4+x^3+x+1)<x>= GF(2^8, modulus=x^8+x^4+x^3+x+1)

如果我们有y = x ⁵+ x ³+ x ²+1 的输入值 101101,我们乘以h = x ⁴+ x +1,我们得到:

r = yh = (x⁵+x³+x²+1) × (x⁴+x+1)

然后我们可以创建以下Sage代码:

\# Rijndael finite field
k.<x>= GF(2^8, modulus=x^8+x^4+x^3+x+1)
y = (x^5+x^3+x^2+1)
h= (x^4+x+1)
r=y*h
print(f"(x^5+x^3+x^2+1) * (x^4+x+1)= {r} ({r.integer_representation()})")

当运行时,我们会得到的结果:

$ sage 1.sage
(x^5+x^3+x^2+1) * (x^4+x+1)= x^7 + x^4 + 1 (145)

现在可以除以我们的不可约多项式,得到原来的值:

\# Rijndael finite field
k.<x>= GF(2^8, modulus=x^8+x^4+x^3+x+1)
y = (x^5+x^3+x^2+1)
h= (x^4+x+1)
r=y*h
r2=r/h
print(f"{r}/ (x^4+x+1)= {r2} ({r2.integer_representation()})")

得到的结果:

$ sage 1.sage
x^7 + x^4 + 1/ (x^4+x+1)= x^5 + x^3 + x^2 + 1 (45)

我们可以看到乘法,除法,加减法,这些运算都是可逆的。

结论

公钥加密的旧篇章即将结束,新篇章即将开启。在20世纪70年代末完成的工作对我们很有帮助,但现在我们面临着量子计算机会打破这些方法的威胁。事实上,我们开发的方法从来都不是真正可证明的难题——它们只是在传统计算机中难以破解。所以,让我们来看看多项式,模和格的奇妙世界。

Source:https://medium.com/asecuritysite-when-bob-met-alice/so-whats-a-modulus-in-post-quantum-cryptography-b75292111d65

关于

ChinaDeFi - ChinaDeFi.com 是一个研究驱动的DeFi创新组织,同时我们也是区块链开发团队。每天从全球超过500个优质信息源的近900篇内容中,寻找思考更具深度、梳理更为系统的内容,以最快的速度同步到中国市场提供决策辅助材料。

Layer 2道友 - 欢迎对Layer 2感兴趣的区块链技术爱好者、研究分析人与Gavin(微信: chinadefi)联系,共同探讨Layer 2带来的落地机遇。敬请关注我们的微信公众号 “去中心化金融社区”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fwESDiC5-1668580050225)(/Users/mac/Desktop/image-20220429123349102.png)]

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

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

相关文章

网页字体图标用法

目录前言引用流程1、打开网页2、选择自己喜欢的图标加入购物车3、下载图标4、引用引用前言 1、接下来介绍引用图标都是免费的&#xff0c;可以放心食用。 2、标签可以自己设计&#xff0c;用css、svg画图或者引用图片都可以。但我们设计的很难超过专业人员的设计。引用图片的画…

深入理解mvcc机制(详解)

深入理解mvcc机制一&#xff0c;MVCC定义1&#xff0c;undolog日志2&#xff0c;undolog版本控制链3&#xff0c;readView3.1&#xff0c;readview简介3.2&#xff0c;readview和undolog结合使用规则3.3&#xff0c;readview和undolog基本使用4&#xff0c;总结一&#xff0c;M…

Java学习----前端3

今日学习内容如下&#xff1a; JavaScript JavaScript是一种基于对象和事件驱动的客户端脚本语言动态、弱类型、基于原型&#xff0c;内置了支持类 解释器称为 JS 引擎&#xff0c;内置于浏览器中 ECMA 欧洲计算机制造商协会Hello world <input type"button" on…

与git相关错误的究极解决方案

没有科学上网导致的git推送和拉取错误&#xff0c;严重阻碍了搬砖进度&#xff0c;遇到的与git有关的错误&#xff1a; 1. gnutls_handshake() failed: The TLS connection was non-properly terminated. 2. Failed to connect to github.com port 443:connection timed out …

Postman 如何获取请求结果并设置到请求头中

目录1.设置环境变量2.获取token&#xff0c;并赋值给环境变量3.将环境变量添加到请求头Postman&#xff1a; 是一款用于接口调试和测试的开发工具&#xff0c;功能强大&#xff0c;使用简单。 无论是开发人员进行接口调试&#xff0c;还是测试人员做接口测试&#xff0c;Postma…

本地生活小程序有什么功能_本地生活小程序的优势

对于平台运营方 痛点&#xff1a;社区团购毛利偏低 零售行业竞争激烈&#xff0c;单纯依靠社区团购卖货整体毛利率较低 手中大量用户&#xff0c;缺少好的变现模式&#xff0c;迫切需要提升盈利能力。 优势&#xff1a;提升盈利&#xff0c;解决流量变现 本地生活属于轻资产…

8Manage:千万别忽视了供应商绩效管理

供应商绩效管理是采购管理流程中的一部分&#xff0c;现代企业几乎都会对供应商实行绩效考核。绩效管理的主要目的是了解供应商的表现、促进供应商改进&#xff0c;并为工业商奖励、供应商优化提供依据&#xff0c;以此来发现优质的供应商&#xff0c;及时改进不合格的供应商。…

Python控制自己的手机摄像头拍照,并把照片自动发送到邮箱

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 今天这个案例&#xff0c;就是控制自己的摄像头拍照&#xff0c; 并且把拍下来的照片&#xff0c;通过邮件发到自己的邮箱里。 想完成今天的这个案例&#xff0c;只要记住一个重点&#xff1a;你…

CSDN的MD编辑器【写作技巧】

CSDN的MD编辑器【写作技巧】在线LaTeX公式的编辑器快捷键&#xff0c;结合快捷键提高效率写作技巧在线LaTeX公式的编辑器 推荐去https://www.latexlive.com/在线LaTeX公式编辑器 将写好的公式代码复制过来。 然后复制在CSDN编辑器里面前后加上符合$就行了 前后加两个该符合就会…

Java环境安装即配置

一、java1.8的安装步骤 1 安装目录创建java文件夹 在想要安装java的目录下创建一个java文件夹,不能出现特殊符号和汉字、空格等 2 java文件夹内创建jdk和jre Java安装需要两部分,一个jdk一个jre 所以在java文件夹中创建两个文件夹 3 解压安装包 通过百度网盘分享的文件&#…

【论文精读3】MVSNet系列论文详解-P-MVSNet

P-MVSNet全名为“P-MVSNet: Learning Patch-wise Matching Confidence Aggregation for Multi-View Stereo”&#xff0c;名字当中反映了论文的核心模块即基于学习方法的分块匹配置信聚合模块&#xff0c;乍一看有点难理解&#xff0c;但看完本文肯定很清楚啦。 本文是MVSNet系…

mysql 数据库使用分享(多图解析)

1、大体流程 1.1 一些概念 1.1.1 RDBMS 关系型数据库&#xff0c;是指采用了关系模型来组织数据的数据库&#xff0c;其以行和列的形式存储数据&#xff0c;类似excel 1.1.2 OLAP 和 OLTP OLTP(Online transactionprocessing):在线/联机 事务 处理。主要是对数据库中的数据…

PTA:字符串加密

输入一个原始字符串&#xff08;长度小于80&#xff09;&#xff0c;然后输入一个5位的数字字符串作为加密密钥&#xff0c;对原始字符串中的每个字符根据其位置&#xff08;对5取模&#xff09;变换为加上数字字符串中的数字的字符。如输入原始字符串student&#xff0c;然后输…

Linux学习-36-文件系统管理-硬盘结构

10 Linux文件系统管理 之前在安装Linux的时候已经对 Linux 的分区方法和文件系统进行了介绍。不过那种分区方法是在安装系统的同时使用图形界面进行分区&#xff0c;如果添加了一块硬盘&#xff0c;那么当然要有不重新安装系统就可以分区的方法。文件系统即分区&#xff1a;原…

通达信接口进行二次编程开发步骤

大家都知道通达信接口是比较流行的快速通达信数据excel接口&#xff0c;能够提供多家券商&#xff0c;包括通达信数据excel接口、量化回测平台等。 通达信接口API接口说明&#xff08;部分&#xff09; 今天小编主要讲一下&#xff0c;关于通达信接口进行二次编程开发步骤如下…

【Linux】基本指令合集

1、ls 指令 功能: 显示当前目录下的所以子目录和文件 常用选项&#xff1a; -a&#xff1a;显示目录下的所以文件和以 . 开头的隐藏文件 -l&#xff1a;查看文件&#xff0c;ls -l等价于ll -R&#xff1a;显示所以子目录下的文件 -t&#xff1a;以时间排序 举例&#xff1a; …

PyCharm 的初始设置

目标 1、恢复 PyCharm 的初始设置 2、第一次启动 PyCharm/ 3、新建一个 Python 项目 4、设置 PyCharm 的字体显示 5、PyCharm 的升级以及其他 6、PyCharm 的官方网站地址是&#xff1a; PyCharm: the Python IDE for Professional Developers by JetBrains 01. 恢复 Py…

PMP有用吗,PMP含金量,如何转型项目经理?

先说一句&#xff0c;pmp是有用的&#xff0c;含金量也挺高的&#xff0c;也可以转型项目经理的&#xff0c;我再分别说明一下。 1、PMP有用么&#xff1f; 从本质来说&#xff0c;应该是pmp学习项目管理有没有用。 参加PMP认证与考试的过程是一个系统学习和巩固项目管理知识…

小白速点,计算机的存储规则你知道多少

计算机的存储规则 以前的认知 ​ 我们知道计算机中所有的文件都是存储在硬盘上的。当我们在编辑一个文档的时候&#xff0c;点击了保存按钮&#xff0c;那么文件中所有的数据都会保存在硬盘上。 但是他是怎么存储的呢&#xff1f;咱们就需要来学习一下。 计算机的二进制 ​…

三驾马车、四大赛道,元宇宙如何领跑数字经济?

进入2022年,全球互联网巨头继续加快布局元宇宙步伐,国内互联网企业也争相申请注册元宇宙相关商标,抢占数字经济发展先机。 党的十八大以来,发展数字经济逐渐上升为国家战略。多名业内权威人士表示,元宇宙或将引领全球数字经济发展,亟须尽快出台政策,破解制约元宇宙发展的法律…