读改变未来的九大算法笔记05_数字签名

news2025/6/26 10:29:01

 

1. 数字签名”(Digital Signature)

1.1. 单词数字化(digital)意味着其“由数字字符串组成”

1.2. 任何数字化的东西都能被拷贝

1.3. “签名”的全部意义在于能被读取,但不能被除了作者的任何人拷贝(也就是伪造)

1.4. 软件签名是数字签名最明显的应用

1.5. 一个数字签名同时依赖一个只有签名者知道的秘密和被签署的消息

1.6. 没有数字签名,我们所知的互联网就不会存在

2. 用挂锁签名

2.1. 上锁的箱子就是文件的签名

2.1.1. 加锁的箱子透明,这一机制的效果就会更好

2.1.2. 数字签名提供的是可靠性,而非隐秘性

2.2. 一个受信第三方

2.2.1. 参与者不是给银行一份签名,而是给银行一把能打开自己挂锁的实体钥匙

2.3. 如果弗朗索瓦丝需要证明拉维写了欠条,她只要和一些目击证人把锁箱带到银行,在银行用拉维的钥匙打开箱子即可。

2.4. 挂锁能打开就证明只有拉维能对箱中内容负责,而箱中正好是弗朗索瓦丝能试图验证的那份文件

3. 用乘法挂锁签名

3.1. 上锁或开锁动作将由钟算乘法(Multiplication in Clock Arithmetic)代表

3.2. 计算机使用的钟大小非常大——钟大小长度基本在数十或数百位数

3.3. 示例

3.3.1.

3.3.1.1. 钟大小为11的乘法表

3.3.2. 拉维选择11作为钟大小,选择6作为挂锁

3.3.3. 拉维的消息是“5”

3.3.4. “上锁”消息会是6×5,通过钟算得到结果为8

3.3.5. 最终结果“8”就是拉维给原始消息的数字签名

3.3.6. 欧几里得算法得到钥匙为2

3.3.7. 将8用钟算乘以钥匙2,就能得到结果5

3.3.8. 拉维可以公开宣布自己选择的钟大小和钥匙值

3.4. 数字挂锁是私有的,而数字钥匙和钟大小则是公开的

3.4.1. 挂锁值是私有的(或秘密的)

3.5. 乘法方法的缺陷

3.5.1. 用于从挂锁生成钥匙的同样把戏——基本上是指欧几里得算法——能非常完美地逆向运行:同样的技术能让计算机生成与已有钥匙值对应的挂锁值

3.5.2. 敌人无须依靠暴力破解就能逆转过程

3.5.2.1. 欧几里得算法也能根据钥匙值计算出挂锁值,而这一算法要比暴力破解高效得多。这也是乘法方法被认为不安全的原因

4. 用指数挂锁签名

4.1. 著名数字签名机制RSA

4.2. 示例

4.2.1.

 4.2.1.1. 钟大小为22时n的三次方和七次方的值

4.2.2. 拉维选择3作为挂锁值

4.2.3. 消息是“4”,签名是“20”

4.2.4. 钥匙值为7

4.2.5. 20^7钟算结果为4,为原始消息

4.3. 通过试错总有可能算出某人的挂锁值

4.3.1. 暴力破解(Brute Force)

4.3.2. 我们知道挂锁值要小于钟大小,因此我们可以简单地逐一尝试所有可能的挂锁值,直到找到一个能生成正确签名的挂锁值

4.4. 诀窍是RSA机制使用绝对大的钟大小

4.4.1. 数千位数长

4.4.2. 现存最快的超级计算机,也要花数万亿年才能尝试所有可能的挂锁值

4.5. 对敌人是否能用某种方法计算出挂锁值不感兴趣

4.5.1. 想知道敌人是否能足够高效地这么做,从而造成实际威胁

4.5.1.1. 发明一种高效的分解因子算法只会破坏类RSA机制

4.6. 钟大小的两个素数因子仍然保密

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

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

相关文章

linux(信号产生中)理论部分

1.实际执行信号的处理动作称为信号递达 2.信号从产生到递达之间的状态,称为信号未决(Pending) 3.进程可以选择阻塞某个信号的 ----------------------------------------------------------------------------------------------------------…

【JavaSE】Java(五十一):核心要点总结

文章目录 1. String str "love"; 和 String str new String("love);一样吗?2. 如何将字符串反转3. String类的常用方法有哪些?4. new String("sn") new String("ow")会创建几个对象? 1. String str “love”; 和…

「C/C++」C/C++ Lamada表达式

✨博客主页:何曾参静谧的博客 📌文章专栏:「C/C」C/C程序设计 相关术语 Lambda表达式:是C11引入的一种函数对象,可以方便地创建匿名函数。与传统的函数不同,Lambda表达式可以在定义时直接嵌入代码&#xff…

JSON与storage

JSON JSON由来 ◼ 在目前的开发中,JSON是一种非常重要的数据格式,它并不是编程语言,而是一种可以在服务器和客户端之间传输的数据格式。 ◼ JSON的全称是JavaScript Object Notation(JavaScript对象符号)&#xff1a…

苹果震撼发布首款头显,搭配强悍Mac和iOS 17等全新产品,价值25000元!

🌷 博主 libin9iOak带您 Go to New World.✨ 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发…

随机过程与排队论(一页纸总结)

参数为 λ 的泊松过程的点间间距是相互独立的随机变量,且服从均值为 1/λ 的 指数 分布。 病人以每小时3人的泊松流到达医院,设该医院只有一个医生服务且容量为无穷,医生服务的时间服从指数分布,并且平均服务一个病人为30分钟&am…

内联函数 C/C++

代码&#xff1a; file1.c #include<stdio.h>void spam(double v); void masp(double w);inline static double square(double); double square(double x) { printf("%s %s %d\n", __FILE__, __func__, __LINE__);return x * x; } int main() {double q …

chatgpt赋能python:Python如何将图片Resize

Python如何将图片Resize 在网页设计和开发过程中&#xff0c;图片大小和质量对于网站性能和用户体验至关重要。网站图片过大会影响页面加载时间&#xff0c;降低用户体验&#xff1b;同时&#xff0c;过小的图片也会影响网站排名&#xff0c;因为搜索引擎的排名算法很重视网站…

chatgpt赋能python:Python如何循环运行程序

Python如何循环运行程序 Python是一种强大的动态语言&#xff0c;具备灵活性和易用性。在编写Python程序时&#xff0c;一个常见的需求是循环运行程序&#xff0c;特别是需要定期执行一些任务的情况下。 本文将介绍如何在Python中实现循环运行程序&#xff0c;并提供一些例子…

chatgpt赋能python:Python如何循环执行

Python如何循环执行 循环是编程中最基本和常用的结构之一。Python作为一门高级编程语言&#xff0c;提供了多种循环执行的方式。在本文中&#xff0c;我们将介绍Python中的循环语句和循环控制语句以及其运行原理。 Python循环语句 for循环 for循环是Python中最常用的循环语…

chatgpt赋能python:Python列表:如何使用Python将数据存入列表中

Python列表&#xff1a;如何使用Python将数据存入列表中 Python是一种广泛使用的编程语言&#xff0c;由于其易于学习和可读性&#xff0c;在数据科学和分析领域中使用广泛。在本文中&#xff0c;我们将讨论如何使用Python将数据存储在列表中。 什么是Python列表&#xff1f;…

语言是世上最奇妙的事物,没有之一

语言是世上最奇妙的事物&#xff0c;没有之一 品牌是靠语言传播的 语言是咋产生的&#xff1f;太玄了 趣讲大白话&#xff1a;猪如果会说话&#xff0c;谁吃谁还不一定呢 【趣讲信息科技187期】 **************************** 《未来简史》的作者说 人有了语言&#xff0c;就有…

Object类和Java中内置的一些接口

文章目录 一、Object类1.1Object类中的方法1.1.1toString()方法1.1.2equals()方法1.1.3hashCode()方法 二、Java中内置的一些接口2.1Comparable<T>接口2.2Cloneable接口 一、Object类 Object类是所有类的父类 1.1Object类中的方法 1.1.1toString()方法 Object类中的t…

Optimize Game Objects骨骼节点优化后SkinMesh以及动态骨骼

为了降低模型动画的性能开销&#xff0c;可以进行骨骼节点优化。 一、接口 unity官方提供了有两种方式可以进行节点优化&#xff1a; 注意当骨骼节点被优化后&#xff0c; Transform节点被剔除&#xff0c;因此需要将挂点等需要用到的节点暴露出来&#xff0c;即下面两个接口…

【高级篇】微服务保护

文章目录 微服务保护1.初识Sentinel1.1.雪崩问题及解决方案1.1.1.雪崩问题1.1.2.超时处理1.1.3.仓壁模式1.1.4.断路器1.1.5.限流1.1.6.总结 1.2.服务保护技术对比1.3.Sentinel介绍和安装1.3.1.初识Sentinel1.3.2.安装Sentinel 1.4.微服务整合Sentinel 2.流量控制2.1.簇点链路2.…

<DB2>《DB2内存详细介绍》

《DB2内存详细介绍》 1 架构图2 主要概念2.1 内存集&#xff08;Memory Set&#xff09;2.2 内存池&#xff08;Memory Pool&#xff09;2.3 内存块&#xff08;Memory Block&#xff09; 3 内存方案3.1 第一级服务器内存3.2 第二级操作系统内存和实例共享内存3.3 第三级数据库…

K8S | 核心原理分析

整体上理解流程和原理&#xff1b; 一、背景 基于分布式的架构中&#xff0c;需要管理的服务是非常多的&#xff0c;无论是服务的数量还是体系划分&#xff1b; 从服务的能力上看&#xff0c;可以进行分层管控&#xff0c;只是其中有相当一部分服务层&#xff0c;改动更新的频…

【Python黑科技】自动答题项目代码分析(保姆级图文+实现代码)

目录 实现效果图片素材和源码 实现思路1. 打开对应网页&#xff0c;做好准备工作2. 获取正确答案3. 答题4. 提交试卷实现代码总结 欢迎关注 『Python黑科技』 系列&#xff0c;持续更新中 欢迎关注 『Python黑科技』 系列&#xff0c;持续更新中 实现效果 图片素材和源码 已经…

chatgpt赋能python:Python如何在图像上标注

Python如何在图像上标注 对于图像标注&#xff0c;Python提供了许多工具和库&#xff0c;其中最常用的是OpenCV和Pillow。这篇文章将介绍如何使用Pillow在图像上进行标注。 安装Pillow库 在使用Pillow库之前&#xff0c;需要先安装它。在命令行中输入以下命令&#xff1a; …

2023-06-02 stonedb-修改包含内连接的嵌套外连接-问题反思

摘要: 最近在搞一个列存储引擎的包含内连接的嵌套外连接过慢的问题, 连接执行过慢的原因分析见此前的博客分析, 虽然逻辑很绕, 但是也不是无法分析. 更麻烦的问题在于修改查询计划, 让其能按照代价更小的方式正确的执行. 遇到的问题比我在修改查询计划前设想的更为棘手, 本文…