7.1、一致公钥密码系统

news2024/11/27 16:39:05

7.1、一致公钥密码系统

一、引言

在本节中,我们将描述一个真实公钥密码系统的玩具模型。这个模型与维数为 2 的格有着意想不到的联系,由于维数太低,因此存在致命漏洞。不过,它也是一个具有启发性的例子,说明了即使基础难题似乎与格无关,格也可能出现在密码分析中。此外,它还为第 7.10 节将要介绍的 NTRU 公钥密码系统提供了最低维度的介绍。

二、一个简要的加密模型介绍

下表概述了同余加密系统。
在这里插入图片描述

2.1、系统设置

Alice首先选择一个大的正整数 q(公共参数),以及另外两个秘密正整数 f 和 g(满足以下条件):
f < q / 2 , q / 4 < g < q / 2 , a n d g c d ( f , q g ) = 1 f<\sqrt{q/2}, \qquad \sqrt{q/4}<g<\sqrt{q/2}, \qquad and \qquad gcd(f,qg)=1 f<q/2 ,q/4 <g<q/2 ,andgcd(f,qg)=1
然后,她计算出以下结果:
h ≡ f − 1 g ( m o d q ) 其中 0 < h < q h\equiv f^{-1}g\pmod{q} \qquad 其中0<h<q hf1g(modq)其中0<h<q
请注意,f 和 g 与 q 相比很小,因为它们是 o ( q ) o(\sqrt{q}) o(q ) ,而 h 一般是 o ( q ) o(q) o(q)​ ,要大得多。Alice的私钥是一对小整数 f 和 g,她的公钥是大整数 h。

2.2、加密

为了发送消息,Bob选择一个明文m和一个随机整数r(一个随机元素),m和r需要满足一下不等式条件:
0 < m < q / 4 a n d 0 < r < q / 2 0<m<\sqrt{q/4} \qquad and \qquad 0<r<\sqrt{q/2} 0<m<q/4 and0<r<q/2
他计算密文: e ≡ r h + m ( m o d q ) e \equiv rh+m \pmod{q} erh+m(modq),其中 0 < e < q 0<e<q 0<e<q。然后发送给Alice。

2.3、解密

Alice通过第一次计算解密消息: a ≡ f e ( m o d q ) a \equiv fe \pmod{q} afe(modq),其中 0 < a < q 0<a<q 0<a<q​。然后计算:
b ≡ f − 1 a ( m o d q ) 其中 0 < b < q ( 7.1 ) b \equiv f^{-1}a \pmod{q} \qquad 其中 \qquad 0<b<q \qquad (7.1) bf1a(modq)其中0<b<q(7.1)
注意(7.1)中的 f − 1 f^{-1} f1是f模g的逆。

2.4、正确性验证

现在我们验证b = m,这将表明Alice已经恢复了Bob的明文。我们首先观察到量a满足一下等式:
a ≡ f e ≡ f ( r h + m ) ≡ f r f − 1 g + f m ≡ r g + f m ( m o d q ) a \equiv fe \equiv f(rh+m) \equiv frf^{-1}g+fm \equiv rg+fm \pmod{q} afef(rh+m)frf1g+fmrg+fm(modq)
f, g, r,m的大小限制意味着整数rg +fm很小,具体如下:
r g + f m < q 2 q 2 + q 2 q 4 < q rg+fm<\sqrt{\frac{q}{2}}\sqrt{\frac{q}{2}}+\sqrt{\frac{q}{2}}\sqrt{\frac{q}{4}}<q rg+fm<2q 2q +2q 4q <q
因此,当Alice以 0 <a<q 计算 a ≡ f e ( m o d q ) a \equiv fe \pmod{q} afe(modq)时,她会得到精确的值:
a = r g + f m . ( 7.2 ) a=rg+fm. \qquad (7.2) a=rg+fm.(7.2)
关键在于:公式 (7.2) 是整数相等,而不仅仅是 q 的同余。最后Alice计算:
b ≡ f − 1 a ≡ f − 1 ( r g + f m ) ≡ f − 1 f m ≡ m ( m o d g ) 其中 0 < b < g b \equiv f^{-1}a \equiv f^{-1}(rg+fm) \equiv f^{-1}fm \equiv m \pmod{g} \qquad 其中 0<b<g bf1af1(rg+fm)f1fmm(modg)其中0<b<g
由于 m < q / 4 < g m<\sqrt{q/4}<g m<q/4 <g​,因此 b = m。

三、模型攻击

Eva如何攻击这个系统呢?她可以尝试对所有可能的私钥或所有可能的明文进行暴力搜索,但这需要 O(q) 次操作。让我们更详细地考虑一下Eva试图从已知公钥(q,h)中找到私钥(f,g)的任务。不难发现,如果Eva能找到满足以下条件的任意一对正整数 F 和 G:
F h ≡ G ( m o d q ) a n d F = o ( q ) a n d G = o ( q ) ( 7.3 ) Fh \equiv G \pmod{q} \qquad and \qquad F=o(\sqrt{q}) \qquad and \qquad G=o(\sqrt{q}) \qquad (7.3) FhG(modq)andF=o(q )andG=o(q )(7.3)
那么 (F,G) 很可能就是解密密钥。将同余式 (7.3) 改写为 Fh = G + qR,我们可以将Eva的任务重新表述为寻找一对相对较小的整数 (F,G),其性质为:
在这里插入图片描述

因此,Eva知道两个向量 v1 =(1,h) 和 v2 =(0,q),每个向量的长度都是 O(q),她希望找到一个线性组合 w = a 1 v 1 + a 2 v 2 w=a_{1}v_{1}+a_{2}v_{2} w=a1v1+a2v2,使得 w 的长度为 o ( q ) o(\sqrt{q}) o(q ),但要记住系数 a1 和 a2 必须是整数。因此,Eva需要在向量集合中找到一个非零的短向量:
L = a 1 v 1 + a 2 v 2 : a 1 , a 2 ∈ Z L={a_{1}v_{1}+a_{2}v_{2}:a_{1},a_{2} \in Z} L=a1v1+a2v2:a1,a2Z
这个集合 L 就是二维格的一个例子。请注意,它看起来有点像以 { v 1 , v 2 } \{v_{1}, v_{2}\} {v1,v2} 为基础的二维向量空间,只是我们只允许取 v 1 v_{1} v1 v 2 v_{2} v2 的整数线性组合。

对Bob和Alice来说,不幸的是,有一种极其快速的方法可以在二维格中找到短向量。第 7.13.1 节介绍了这种由高斯提出的方法,第 7.14.1 节则用它来破解同余的密码系统。

四、我的一些想法

对于上述模型的解密步骤:
1 ) a ≡ f e ( m o d q ) ; 2 ) b ≡ f − 1 a ( m o d q ) 1)a \equiv fe \pmod{q}; \qquad 2)b \equiv f^{-1}a \pmod{q} 1)afe(modq);2)bf1a(modq)
不能等同于 b ≡ e ( m o d g ) b \equiv e \pmod{g} be(modg),因为在转换模的时候,经过分析: a ≡ r g + f m ( m o d q ) = r g + f m a\equiv rg+fm \pmod{q}=rg+fm arg+fm(modq)=rg+fm,不会模运算,所以a是一个精确的值,而 e ≡ e f − 1 g + m ( m o d q ) e \equiv ef^{-1}g+m \pmod{q} eef1g+m(modq)则会根据 f − 1 f^{-1} f1的范围,可能发生模运算,从而在后续 b ≡ e ( m o d g ) b \equiv e \pmod{g} be(modg)转换模的时候,精度不准产生错误结果。书上的例子举例:

Alice 选择 q = 122430513841,f = 231231, 和 g = 195698。此处 f ≈ 0.66 q f\approx 0.66\sqrt{q} f0.66q g ≈ 0.56 q g\approx 0.56\sqrt{q} g0.56q ,符合范围。Alice计算 f − 1 f^{-1} f1 ≡ 49194372303 (mod q), h≡ f − 1 f^{-1} f1 g ≡ 39245579300 (mod q)。 Alice的公钥是密钥对: (q, h) = (122430513841, 39245579300).

Bob决定使用随机值r = 101010向Alice发送明文m = 123456。他使用Alice的公钥来计算密文: e ≡ rh +m ≡ 18357558717 (mod q),

为了解密e,Alice首先使用她的秘密值f来计算a ≡ fe ≡ 48314309316 (mod q). (注意a = 48314309316 < 122430513841 = q。)然后她使用 f − 1 f^{-1} f1 ≡193495 (mod g)来计算 f − 1 a f^{-1}a f1a ≡ 193495 · 48314309316 ≡ 123456 (mod g),

如果使用b≡e(mod g),则计算结果为b≡e(mod g) ≡ 18357558717 (mod 195698)=107827,错误值。

五、我的一些疑问

模型破解攻击时,为什么会想到公式: Fh≡G(mod q),以及将公式转变为:F(1,h)-R(0,q)=(F,G)

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

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

相关文章

【Pytorch】CNN中的Attention

目录 更大层面上的Attention在attention中&#xff0c;怎么分区channel-wise还是spatial-wise举一个Spatial-Channel Attention的例子 使用广泛的Dot-product Attentionattention机制中的query,key,value的概念解释Attention的一个例子 更大层面上的Attention 在attention中&a…

网络服务综合实验项目

目录 实验要求 运行环境 基础配置 业务需求 实验步骤 一、基础配置 1.1、配置静态IP 1.1.1、 在192.168.159.130中配置 1.1.2、 在192.168.159.131中配置 ​编辑 1.2、修改主机名及hosts映射 1.2.1、在192.168.159.130中配置 1.2.2、 编辑配置hosts文件 1.2.3、重启…

1. 两数之和(C++)(map)(哈希算法)

✨欢迎来到脑子不好的小菜鸟的文章✨ &#x1f388;创作不易&#xff0c;麻烦点点赞哦&#x1f388; 所属专栏&#xff1a;刷题 我的主页&#xff1a;脑子不好的小菜鸟 文章特点&#xff1a;关键点和步骤讲解放在 代码相应位置 前提&#xff1a; 看本文章之前&#xff0c;建…

前端开发项目技术总结

前端 vue框架简单学了一遍&#xff0c;也做了demo&#xff0c;主要学了创建项目、路由、状态管理、UI组件库等。 最近在做前端的项目&#xff0c;总结一些开发遇到的问题和解决方案 数据绑定模型 vue框架的标签 :data 和prop标签 data绑定对应的模型&#xff0c;prop是对应…

【C++杂货铺】详解类和对象 [下]

个人博客&#xff1a;代码菌-CSDN博客 专栏&#xff1a;C杂货铺_代码菌的博客-CSDN博客 目录 &#x1f308;前言&#x1f308; &#x1f4c1; 初始化列表&#xff08;灰常重要&#xff09; &#x1f4c2; 引入 &#x1f4c2; 概念 &#x1f4c2; 特性 &#x1f4c1; 拓展构…

【计算机二级考试C语言】C递归

目录 C 递归 数的阶乘 实例 斐波那契数列 实例 C 递归 递归指的是在函数的定义中使用函数自身的方法。 举个例子&#xff1a; 从前有座山&#xff0c;山里有座庙&#xff0c;庙里有个老和尚&#xff0c;正在给小和尚讲故事呢&#xff01;故事是什么呢&#xff1f;"从…

关闭idea之后,项目还在运行,端口被占用

今天在写项目的时候&#xff0c;中途安装了一个插件&#xff0c;而且插件显示需要重启idea&#xff0c;重启的时候项目正在运行&#xff0c;重启之后发现idea没有显示有项目正在运行&#xff0c;当我要开启项目的时候&#xff0c;发现无法开启&#xff0c;显示端口被占用了&…

您企业的(AI)人工智能处于哪个准备阶段?

全新AI准备度评估工具现已推出 根据Gartner 2020年CIO调查报告&#xff0c;仅19%的首席信息官声称其AI项目已投产。这意味着&#xff0c;如果要将AI计划部署到生产过程中&#xff0c;高达80%的企业无法实现。我们发现&#xff0c;澳鹏客户取得成功的几率要高出三倍&#xff0c…

@Test Annotation属性- dependsOnMethods属性

目录 语法 如果test1&#xff08;&#xff09;失败了怎么办&#xff1f;test2&#xff08;&#xff09;测试会发生什么&#xff0c;因为它依赖于test1&#xff1f; 如果我们在test1&#xff08;&#xff09;方法上不使用Test注释&#xff0c;但在test 2&#xff08;&#xf…

放弃Nacos作为配置中心,转而选择这款神器~

目前&#xff0c;我们所有微服务的配置中心都没有采用Nacos&#xff0c;而是选择了另一款携程开源的分布式配置中心Apollo&#xff0c;今天就跟大家详细介绍一下这款神级配置中心 1. 基本概念 由于 Apollo 概念比较多&#xff0c;刚开始使用比较复杂&#xff0c;最好先过一遍…

YOLOv5改进系列(29)——添加DilateFormer(MSDA)注意力机制(中科院一区顶刊|即插即用的多尺度全局注意力机制)

【YOLOv5改进系列】前期回顾&#xff1a; YOLOv5改进系列&#xff08;0&#xff09;——重要性能指标与训练结果评价及分析 YOLOv5改进系列&#xff08;1&#xff09;——添加SE注意力机制 YOLOv5改进系列&#xff08;2&#xff09;——添加CBAM注意力机制 YOLOv5改进系列&…

【Java 数据结构】栈和队列

栈和队列 1. 栈(Stack)1.1 概念1.2 栈的使用1.3 栈的模拟实现1.4 栈的应用场景1.5 概念区分 2. 队列(Queue)2.1 概念2.2 队列的使用2.3 队列模拟实现2.4 循环队列 3. 双端队列 (Deque)4. 面试题 1. 栈(Stack) 1.1 概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在…

STM32入门教程-2023版【5-1】NVIC

关注 点赞 不错过精彩内容 大家好&#xff0c;我是硬核王同学&#xff0c;最近在做免费的嵌入式知识分享&#xff0c;帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 四、NVIC &#xff08;1&#xff09;NVIC基本结构 外部中断的整体结构图如下&#xff1a; 这个NVI…

代码随想录算法训练营29期|day37 任务以及具体任务

第八章 贪心算法 part06 738.单调递增的数字 版本2 class Solution {public int monotoneIncreasingDigits(int n) {String s String.valueOf(n);char[] chars s.toCharArray();int start s.length();for (int i s.length() - 2; i > 0; i--) {if (chars[i] > chars…

利用ASM功能实现零停机oracle RAC存储迁移

在实际生产过程中&#xff0c;经常会遇到比如新旧存储替换等场景&#xff0c;如果是一般情况可能只有做数据迁移才能实现&#xff0c;而迁移可能就存在停机的可能 这里介绍利用ASM DG加盘踢盘功能实现零停机存储迁移&#xff1b;原理很简单 将新存储磁盘添加到data dg&#xf…

江科大stm32学习笔记9——OLED调试工具

一、OLED OLED&#xff1a;有机发光二极管&#xff0c;供电3~5.5V&#xff0c;0.96寸OLED通信协议&#xff1a;I2C/SPI&#xff0c;分辨率&#xff1a;128*64 二、调试方式 串口调试&#xff1a;通过串口通信&#xff0c;将调试信息发送到电脑端&#xff0c;电脑使用串口助手…

Mysql数据库锁--全局锁、表锁、行锁

Mysql数据库按照加锁范围划分 根据加锁的范围&#xff0c;MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类 全局锁 全局锁就是对整个数据库实例加锁。MySQL 提供了一个加全局读锁的方法&#xff0c;命令是 Flush tables with read lock (FTWRL)。当你需要让整个库处于只…

CTF盲水印工具:Blind-WaterMark安装

工具下载地址&#xff1a;GitCode - 开发者的代码家园 下载完毕后&#xff0c;只留这些东西就行 接下来需要安装两个依赖&#xff1a; opencv、matplotlib 直接pip install安装的话&#xff0c;工具使用会报错 所以需要到网站里挑选适合的版本进行安装 下载地址&#xff1…

四通道 LVDS 差分线缆接收器MS21148T

产品简述 MS21148T 是一款四路低压差分信号 (LVDS) 线路接收器。在 输入共模电压范围内&#xff0c;每一路差分接收器都可以把 100mV 的差 分输入电压转换成有效的逻辑输出。 该芯片可应用于约 100Ω 的 受控阻抗介质上进行点对点基带数据传输。传输介质可以是印 刷电…

基于 Langchain-Chatchat,我搭建了一个本地知识库问答系统

文章目录 一、LangChain-Chatchat二、搭建步骤2.1 环境配置2.2 模型下载2.3 初始化知识库和配置文件2.4 一键启动2.5 启动界面示例 技术交流群用通俗易懂方式讲解系列 一、LangChain-Chatchat 基于 ChatGLM 等大语言模型与 Langchain 等应用框架实现&#xff0c;开源、可离线部…