读改变未来的九大算法笔记04_公钥加密

news2024/12/24 0:32:08

 

1. 加密的目的就是传输秘密

2. 分块密码(Block Cipher)的现代加密技术使用了相加把戏的变体

2.1. 加法得出的结果能用于统计分析,这意味着一些人能通过分析你的大量加密消息来得到密钥

2.2. 任何知道密钥的人都能用相反的步骤运行所有操作,以获得最初的、解密的消息

2.3. 最流行的分块密码是高级加密标准(Advanced Encryption Standard)

2.3.1. AES能配合多种不同配置使用,但标准配置是使用16个字母的“块”,配备128位密钥,进行10轮混合操作

3. 单向操作

3.1. One-way Action

3.2. 颜料混合把戏中的单向操作是“混合颜料”

3.3. 可以做一些事情,但不能取消做过的事

4. 混合操作就是离散指数

4.1. Discrete Exponentiation

5. 分离操作被称为离散对数

5.1. Discrete Logarithm

6. 幂函数

6.1. Power Notation

6.2. 写下许多相同数字相乘的快捷方法

6.2.1. 6×6×6×6=6^4

7. 钟算

7.1. Clock Arithmetic

7.2. 钟的大小可以是任何数

7.2.1. 非一座普通的钟上熟悉的12个数字

7.3. 数字从0而不是从1开始计数

7.4. 只能使用比钟大小小的私人数字

7.4.1. 现实中运用时通常会使用几百个数位长的钟大小

7.5. 钟大小必须是一个素数

7.5.1. 只有1和其自身两个除数

7.6. 基数必须是钟大小的本原根(primitive root)

7.6.1. 基数的幂最终将循环遍钟上每个可能的值

7.7. 示例

7.7.1. 用大小为7的钟做钟算,只要像平常一样将数字相加再相除即可,不过不管结果如何,你只要取除以7所得的余数即可

8. 迪菲–赫尔曼密钥交换

8.1. Diffie-Hellman Key Exchange

8.2. 1976年首次发表了这一算法

8.3. 怀特菲德·迪菲(Whitfield Diffie)

8.4. 马丁·赫尔曼(Martin Hellman)

8.5. https:使用的方法是迪菲–赫尔曼机制或工作原理类似的替代方法之一

8.6. 颜料混合把戏(Paint-mixing Trick)

8.6.1. 你和阿诺德各自选择一种“私人颜色”

8.6.2. 选择一种新的不同的颜色成分并公开宣布,我们称这种颜色为“公开颜色”

8.6.3. 你和阿诺德各用一桶公开颜色和一桶私人颜色制造一种混合颜色。这就是你的“公开 – 私人混合颜色”

8.6.4. 你选取一批阿诺德的公开–私人混合颜色,拿回自己的角落。现在加入一桶私人颜色

8.6.5. 阿诺德选取一批你的公开 – 私人混合颜色,拿回他的角落,在那里,他再加入一桶他的私人颜色

8.6.6. 你和阿诺德制作了同样的混合颜色

8.7. 用数字进行颜料混合把戏

8.7.1. 机密信息和公开信息用一种在数学上不可逆的方式“混合”在一起,就像混合在一起的颜料一样,再也分不开

8.8. 共享密钥

8.8.1. 示例

8.8.1.1.

 

8.8.1.2. 你和阿诺德各自单独选择一个私人数字

8.8.1.2.1. 你选择8作为私人数字,而阿诺德选择9

8.8.1.3. 你和阿诺德公开就两个公开数字达成一致——钟大小(11)和另一个被称为基数的数字(选2为基数)

8.8.1.4. 通过使用幂符号和钟算,你和阿诺德各自将自己的私人数字和公开数字相混,分别得到一个公开–私人数字(public–private number,PPN)

8.8.1.4.1. PPN=base^私人数字(钟大小)

8.8.1.4.2. 你的PPN=(2^8=256,256 mod 11)=3(钟大小为11)

8.8.1.4.3. 阿诺德的PPN=(2^9=512,512 mod 11)= 6(钟大小为11)

8.8.1.5. 你和阿诺德各自单独获得对方的公开–私人数字,再将其与自己的私人数字相混合

8.8.1.5.1. 共享密钥=其他人的PPN^私人数字 (钟大小)

8.8.1.5.2. 你的共享密钥=(6^8=1679616,1679616 mod 11)=4(钟大小为11)

8.8.1.5.3. 阿诺德的共享密钥=(3^9=19683,19683 mod 11)=4(钟大小为11)

8.8.1.6. 尽管你按照不同的顺序混合了各种成分,但你和阿诺德都使用了相同的成分,因此也得到了相同的共享密钥

9. RSA

9.1. 1978年

9.2. 罗纳德·李维斯特(Ronald Rivest)

9.3. 阿迪·沙米尔(Adi Shamir)

9.4. 雷奥纳德·阿德尔曼(Leonard M.Adlemen)

9.5. 20世纪70年代为自己的系统申请了专利,而他们的专利直到2000年年末才失效

10. 背后的故事

10.1. 英国政府在数年前就已经知道类似迪菲–赫尔曼密钥交换和RSA系统

10.2. 那些发明迪菲–赫尔曼机制和RSA的先驱是英国政府通信实验室GCHQ的数学家

10.3. 他们工作的结果被记录在内部机密文件中,直到1997年才被解密

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

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

相关文章

MathType7中文标准版数学公式编辑工具

MathType 是一款专业的数学公式编辑工具,提供交互式编辑器, 让你在编辑数学试卷、书籍、报刊、论文、幻灯演示等文档轻松输入各种复杂的数学公式和符号。当您准备坐下来撰写科学或技术论文,测试,幻灯片演示文稿或任何想要包括数学符号的地方时…

互联网野蛮生长,但金三银四好像消失了!

每次看到程序员字眼,就是秃头,肥胖,宅男、996,程序员,但是耐不住工资高啊!但只有程序员才知道,干IT的,都有一个自己的程序员梦,梦想着能用 “代码改变世界”。 代码能不…

音视频实战开源项目学习第二期!

前言: 大家好,今天继续分享音视频开源学习第二期,在前面的一期里面,我已经给大家演示了如何去跑起这个开源项目,包括源码下载; 音视频实战开源项目学习第一期! 今天继续来讲解这个开源项目。 不…

chatgpt赋能python:Python多行连一行:简便省事的代码优化方法

Python多行连一行:简便省事的代码优化方法 在Python编程中,经常会遇到多行代码的情况,这不仅降低了代码的可读性,也增加了调试的难度。为了解决这个问题,Python提供了多行连一行(以反斜杠\结尾&#xff09…

Mocha AE:工具栏

Mocha AE 工具栏(经典模式)中的工具及视图选项。 保存 Save the project 保存项目 快捷键:Ctrl S 选取类工具 Pick Tool 选取工具 --Marquee Selection 矩形框选 --Lasso Selection 套索选取 Move inner and edge points 移动内部点和边缘…

YOLOv8 训练自己的数据集

本范例我们使用 ultralytics中的YOLOv8目标检测模型训练自己的数据集,从而能够检测气球。 #安装 !pip install -U ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple import ultralytics ultralytics.checks() 一,准备数据 公众号算法美食屋后…

JavaScript之DOM(九)

JavaScript之DOM 1、节点类型2、常用的属性与方法2.1、访问节点的常用方法2.2、增删改节点的常用方法2.3、class的常用方法2.4、css相关操作 DOM – Document Object Model (文档对象模型),是 JS 操作 HTML 文档的接口,它最大的特点就是将文档表示为节点…

CloudQuery一体化数据库SQL操作安全管控平台

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! CloudQuery一体化数据库SQL操作安全管控平台 导读 CloudQuery作为业界领先的面向企业的数据库安全解决方案,CloudQuery致力于打造一站式安全可靠的数据操…

【C++】右值引用和移动语义

1.左值和右值 在C中,每个表达式或者是左值,或者是右值。 左值(lvalue):可以出现在赋值表达式左侧的值,例如变量名a、数据成员a.m、下标表达式a[n]、解引用表达式*p等。左值可以被赋值和取地址。右值(rvalue):只能出现…

jdk动态代理源码分析

jdk动态代理源码分析 前言动态代理----demo 案例jdk动态代理源码创建代理对象获取类把二进制流生成文件 jdk 动态代理的原理 前言 上一篇中我们知道动态代理的使用, Javase 专题之 静态代理和动态代理 我们只知道其中的使用,但是原理是什么? 不明白原理只知皮毛不是我们的目的…

chatgpt赋能python:Python在原图上继续画的SEO

Python在原图上继续画的SEO Python是一种高级的多范式编程语言,它使用简单、易于阅读的语法以及丰富和强大的数据结构使其成为工程师的首选。Python已经成为了一种非常流行的编程语言,它用于多种应用领域,包括Web开发、数据科学、机器学习、…

区间预测 | MATLAB实现基于QRCNN-LSTM卷积长短期记忆神经网络多变量时间序列区间预测

区间预测 | MATLAB实现基于QRCNN-LSTM卷积长短期记忆神经网络多变量时间序列区间预测 目录 区间预测 | MATLAB实现基于QRCNN-LSTM卷积长短期记忆神经网络多变量时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRCNN-LSTM卷积神经…

注解、原生Spring、SchemaBased三种方式实现AOP【附详细案例】

目录 一、注解配置AOP 1. 开启注解支持 2. 在类和方法加入注解 3. 测试 4. 为一个类下的所有方法统一配置切点 二、原生Spring实现AOP 1. 引入依赖 2. 编写SpringAOP通知类 3. 编写配置类bean2.xml 4 测试 三、SchemaBased实现AOP 1. 配置切面 2. 测试 往期专栏…

音视频技术开发周刊 | 296

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 22字声明、近400名专家签署、AI教父Hinton与OpenAI CEO领头预警:AI可能灭绝人类! 这份声明一经发布,便迅速得到了多伦多大学计算机科学…

基于zookeeper的kafka中间件

一、Zookeeper 概述 1、Zookeeper 定义 Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。 2、Zookeeper 工作机制 Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理…

昨天,小灰做了人生的第一次直播!

熟悉小灰的朋友们都知道,小灰是一个非常腼腆的人。虽然我比较擅长写东西,但完全不擅长口头表达,在公开场合讲话很容易紧张。 因此,对于网上直播,小灰在以前完全不敢想象。 但是,人终究需要成长的。就在昨天…

Disco Diffusion 快速入门

Disco Diffusion 快速入门 简介快速开始进阶使用修改prompt给定指导图像修改基础参数运行参数设置运行建议模型设置参数详情 简介 Disco Diffusion(DD)是一个CLIP指导的AI图像生成技术,简单来说,Diffusion是一个对图像不断去噪的…

路径规划 | 图解RRT-Connect算法(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 RRT-Connect基本原理2 RRT-Connect vs. RRT3 ROS C算法实现4 Python算法实现5 Matlab算法实现 0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法、智能算法等)…

chatgpt赋能python:Python实现奇数位偶数位互换的方法

Python实现奇数位偶数位互换的方法 Python是一种高级的、面向对象的编程语言,在当今的编程领域中具有广泛的应用。它被用于数据分析、机器学习、Web开发等众多领域,其简洁的语法和强大的库被开发者们广泛使用。本文将介绍Python中奇数位偶数位互换的方法…

驱动开发:内核实现SSDT挂钩与摘钩

在前面的文章《驱动开发:内核解析PE结构导出表》中我们封装了两个函数KernelMapFile()函数可用来读取内核文件,GetAddressFromFunction()函数可用来在导出表中寻找指定函数的导出地址,本章将以此为基础实现对特定SSDT函数的Hook挂钩操作&…