当前位置: 首页 > news >正文

世界上最著名的密码学夫妻的历史

Alice和Bob是密码学领域里最著名的虚拟夫妻,自1978年“诞生”以来,到走进二十一世纪的移动互联网时代,作为虚构的故事主角,Alice和Bob不仅在计算机理论、逻辑学、量子计算等与密码学相关的领域中得到应用,他们的名字也逐渐地出现在经济学、物理学、以及其它工程领域的论文中。

在密码学领域,有一个著名的密码体制:RSA密码体制,RSA密码体制是密码学提出的第一个公钥密码学体制,RSA这个名字是发明此密码体制的三位密码学家Rivest、Shamir、Adleman的首字母缩写。

Alice和Bob最早出现在1978年2月,由Rivest、Shamir和Adleman三人在《Communications of the ACM》发表的论文《一种实现数字签名和公钥密码系统的方法》(A Method for Obtaining Digital Signatures and Public-key Cryptosystems)中。在这篇论文中首次使用了Alice和Bob来描述方案,因此1978年2月成为了Alice和Bob的生日。

图片

根据Rivest本人回忆,最初使用Alice和Bob的原因主要两个:一是Alice和Bob可以替代之前在密码学领域被频繁使用,然而却枯燥无味的发送方A和接收方B;二是众所周知Alice和Bob分别为女性和男性的名字,这样在论文中可以用she和he来指代Alice和Bob,避免混淆。这样一来,Alice和Bob也赋予了人格,变得更加立体且有画面感,帮助读者更容易理解通信的整个过程。

至于为什么会是Alice和Bob, Rivest自己猜测可能是因为个人比较痴迷《爱丽丝梦游仙境》。

图片

这是Alice和Bob有史以来第一次连接到密码学,并就此开始了一个漫长而传奇的历史。

图片

1978年后,Alice和Bob很快在密码学领域崭露头角,成为密码学界的“著名人物”。慢慢地,很多密码学家开始用Alice和Bob代替A和B。

1979年,RSA算法的发明者Shamir,Rivest和Adleman在他们的《心理扑克》(Mental Poker)一章中提到了Alice和Bob;

1981年,密码学家Michael O. Rabin为哈佛大学艾肯计算实验室(Aiken Computing Lab)撰写的一份技术报告《如何利用不经意传输实现秘密交换》(How to Exchange Secrets with Oblivious Transfer)也提到了Alice和Bob。

1981年,密码学家Manuel Blum发表了一篇题为《通过电话抛硬币:一个用于解决不可能问题的协议》(Coin Flipping by Telephone: A Protocol for Solving Impossible Problems)的报告。文章中第1句话就写到:“Alice and Bob want to flip a coin by telephone.”

在之前的论文或报告中,密码学家一般只使用Alice和Bob代替A和B,而Alice和Bob更像是一个代号。但在这篇报告中,Manuel Blum真正把Alice和Bob带到了背景故事里面,成为了故事中的两个立体人物。而正是从此时开始,Alice和Bob有了一段历史,开始获得个性。Manuel Blum写到:“They have just divorced, live in different cities, want to decide who gets the car.” 

然而,不是所有的密码学家都使用Alice和Bob,例如密码学家ElGamal在发表的题为《基于离散对数问题的公钥密码系统和签名方案》(A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms)的文章中就没有提到Alice和Bob。再比如1988年,密码学家Silvio Micali、Charles Rackoff和Bob Sloan对Alice和Bob的使用也模棱两可,他们写道:The goal is that A(lice)… becomes able to securely send a message m to B(ob).

Alice和Bob成为密码学主人公的事件,是1984年密码学家John Gordon在瑞士苏黎世的四月会议上发表的关于Alice和Bob的“餐后演讲”, Gordon采用了一种轻松的方式来记录Alice和Bob的生活,在这次演讲中将Alice和Bob在密码学中的角色总结了一遍:

- Bob是一位股票经纪人,而Alice是一位股票投资人;

- Alice和Bob想要一起欺骗保险公司;

- Alice和Bob使用电话玩扑克;

- Alice想要向丈夫隐瞒她和Bob的财务交易信息;

- Alice和Bob同时被财务机关和警察盯上了;

- Alice由于一些不为人知的过往,Alice不相信Bob。

Gordon这次的演讲标志着Alice和Bob历史的一个重要事实,最终影响了密码学界,而Alice和Bob也成为密码学的虚拟主人公,Gordon在2005年的《网络世界》文章中回忆道:Today, nobody remembers I invented Strong Primes, but everyone knows me as the guy who wrote the story of Alice and Bob.

至此,Alice和Bob成为了密码学界不可或缺的“关键人物”,但他们的“野心”显然并未得到满足,“扩张之路”依旧在继续。

图片

虽然Alice和Bob诞生在密码学的学术领域,但他们也很快被用于其他学术领域和背景。

1980年以后,Alice和Bob也逐渐出现在“计算机学术领域”中,1983年Joseph Y. Halpern和Michael O. Rabin在一篇关于《模态逻辑》(Modal logic)的论文中使用了Alice和Bob。

后来,Alice和Bob也逐渐出现在量子计算领域。Bessette、Brassard、Salvail、Smolin共同发表的论文《实验量子密码学》(Experimental Quantum Cryptography),论文中的第2章提到,通过公钥密码学体制引入量子密码学,随着量子计算和量子密码学开始在文献中被讨论,Alice和Bob再次被引用。

除了Alice和Bob,在密码学领域还有很多其他的角色:

图片

参考链接:

[1]http://www.cs.tufts.edu/comp/165/papers/RSA-CACM-article.pdf

[2]http://cryptocouple.com/

相关文章:

世界上最著名的密码学夫妻的历史

Alice和Bob是密码学领域里最著名的虚拟夫妻,自1978年“诞生”以来,到走进二十一世纪的移动互联网时代,作为虚构的故事主角,Alice和Bob不仅在计算机理论、逻辑学、量子计算等与密码学相关的领域中得到应用,他们的名字也…...

二维码网络钓鱼攻击泛滥!美国著名能源企业成主要攻击目标

近日,Cofense发现了一次专门针对美国能源公司的网络钓鱼攻击活动,攻击者利用二维码将恶意电子邮件塞进收件箱并绕过安全系统。 Cofense 方面表示,这是首次发现网络钓鱼行为者如此大规模的使用二维码进行钓鱼攻击,这表明他们可能正…...

前端面试题-CSS

1. 盒模型 ⻚⾯渲染时, dom 元素所采⽤的 布局模型。可通过 box-sizing 进⾏设置。根据计算宽⾼的区域可分为 content-box ( W3C 标准盒模型)border-box ( IE 盒模型)padding-boxmargin-box (浏览器未实现) 2. BFC 块级格式化上下⽂,是⼀个独⽴的渲染…...

6.1 安全漏洞与网络攻击

数据参考:CISP官方 目录 安全漏洞及产生原因信息收集与分析网络攻击实施后门设置与痕迹清除 一、安全漏洞及产生原因 什么是安全漏洞 安全漏洞也称脆弱性,是计算机系统存在的缺陷 漏洞的形式 安全漏洞以不同形式存在漏洞数量逐年递增 漏洞产生的…...

STM32--EXTI外部中断

前文回顾---STM32--GPIO 相关回顾--有关中断系统简介 目录 STM32中断 NVIC EXTI外部中断 AFIO EXTI框图 旋转编码器简介 对射式红外传感器工程 代码: 旋转编码器工程 代码: STM32中断 先说一下基本原理: 1.中断请求发生&#xff1a…...

Python + Selenium 处理浏览器Cookie

工作中遇到这么一个场景:自动化测试登录的时候需要输入动态验证码,由于某些原因,需要从一个已登录的机器上,复制cookie过来,到自动化这边绕过登录。 浏览器的F12里复制出来的cookie内容是文本格式的: uui…...

文件的导入与导出

文章目录 一、需求二、分析1. Excel 表格数据导出2. Excel 表格数据导入一、需求 在我们日常开发中,会有文件的导入导出的需求,如何在 vue 项目中写导入导出功能呢 二、分析 以 Excel 表格数据导出为例 1. Excel 表格数据导出 调用接口将返回的数据进行 Blob 转换,附: 接…...

[C++] string类的介绍与构造的模拟实现,进来看吧,里面有空调

文章目录 1、string类的出现1.1 C语言中的字符串 2、标准库中的string类2.1 string类 3、string类的常见接口说明及模拟实现3.1 string的常见构造3.2 string的构造函数3.3 string的拷贝构造3.4 string的赋值构造 4、完整代码 1、string类的出现 1.1 C语言中的字符串 C语言中&…...

【Apollo】赋能移动性:阿波罗自动驾驶系统的影响

前言 Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。 开放能力、共享资源、加速创新、持续共赢是 Apollo 开放平台的口号。百度把自己所拥有的强大、…...

Camunda 7.x 系列【19】表达式语言

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 概述2. 变量与函数2.1 流程变量2.2 内置环境变量2.3 Spring、CDI Bean2.4 内置上下文函数…...

详解RFC 793文档-4

3.7 数据通信 一旦连接建立,数据就通过交换数据段进行通信。由于错误(校验和错误)或网络拥塞可能导致数据段丢失,TCP使用重传(超时后)来确保每个段的交付。由于网络或TCP重传,可能会到达重复的段。对于重复段,TCP对段中的SEQ和ACK号执行某些检测,以验证它们的可接受性…...

ubuntu16编译内核源码并替换

文章目录 1.找到和ubuntu内核版本相同的内核源码包2.下载下面三个文件3.相关步骤4.安装编译环境软件参考: 1.找到和ubuntu内核版本相同的内核源码包 4.15.0-112.113 : linux package : Ubuntu (launchpad.net) 2.下载下面三个文件 3.相关步骤 uname -r #查看内核…...

AI 绘画Stable Diffusion 研究(九)sd图生图功能详解-老照片高清修复放大

大家好,我是风雨无阻。 通过前面几篇文章的介绍,相信各位小伙伴,对 Stable Diffusion 这款强大的AI 绘图系统有了全新的认知。我们见识到了借助 Stable Diffusion的文生图功能,利用简单的几个单词,就可以生成完美的图片…...

Linux系统安装Google Chrome

1.进入谷歌浏览器官网 Google Chrome - Download the Fast, Secure Browser from GoogleGet more done with the new Google Chrome. A more simple, secure, and faster web browser than ever, with Google’s smarts built-in. Download now.http://www.google.cn/intl/en_…...

带你了解SpringBoot支持的复杂参数--自定义对象参数-自动封装

😀前言 本篇博文是关于SpringBoot 在响应客户端请求时支持的复杂参数和自定义对象参数,希望您能够喜欢😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章…...

Raspberry Pi Pico RP2040制作低成本FPGA JTAG工具

目录 1 准备工作和前提条件 1.1 Raspberry Pi Pico RP2040板子一个 1.2 xvcPico.uf2固件 1.3 Vivado USB驱动 2 操作指南 2.1 按住Raspberry Pi Pico开发板的BOOTSEL按键,再接上USB接口到电脑 2.2 刷入固件 2.3 Vivado USB 驱动 2.3.1 打开Zadig驱动工具 2.3…...

【工具】Python从临时邮箱获取验证码

安装好依赖库之后代码可直接运行, captcha re.search(r您的验证码为: \*(\w)\*, response.json()[body][html])正则表达式部分改成自己的。 import random import requests import re from faker import Fakerdomain "https://api.mail.cx/api/v1" # 临…...

时序预测 | MATLAB实现基于GRU门控循环单元的时间序列预测-递归预测未来(多指标评价)

时序预测 | MATLAB实现基于GRU门控循环单元的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于GRU门控循环单元的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 1.Matlab实现GRU门控循环单元时间序列预测未…...

在本地搭建WAMP服务器并通过端口实现局域网访问(无需公网IP)

文章目录 前言1.Wamp服务器搭建1.1 Wamp下载和安装1.2 Wamp网页测试 2. Cpolar内网穿透的安装和注册2.1 本地网页发布2.2 Cpolar云端设置2.3 Cpolar本地设置 3. 公网访问测试4. 结语 前言 软件技术的发展日新月异,各种能方便我们生活、工作和娱乐的新软件层出不穷&a…...

Redis之删除策略

文章目录 前言一、过期数据二、数据删除策略2.1定时删除2.2惰性删除2.3 定期删除2.4 删除策略比对 三、逐出算法3.1影响数据逐出的相关配置 总结 前言 Redis的常用删除策略 一、过期数据 Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可…...

循迹小车传感器布局与状态机编程避坑指南:从5路红外到精准过直角弯

循迹小车传感器布局与状态机编程避坑指南:从5路红外到精准过直角弯 在智能小车开发领域,循迹功能是最基础也最具挑战性的环节之一。许多创客和学生在完成硬件搭建后,往往会陷入软件调试的泥潭——小车要么频繁偏离轨道,要么在直角…...

为Cursor AI编程助手配置安全规则:防范代码生成风险

1. 项目概述:为什么我们需要为Cursor定制安全规则如果你是一名开发者,并且已经开始使用Cursor这样的AI编程助手,那你大概率已经体会过它带来的效率革命。它能帮你生成代码、重构函数、甚至解释复杂的逻辑。但效率提升的同时,一个隐…...

5个技巧掌握Obsidian Dataview:从静态笔记到动态知识库的蜕变

5个技巧掌握Obsidian Dataview:从静态笔记到动态知识库的蜕变 【免费下载链接】obsidian-dataview A data index and query language over Markdown files, for https://obsidian.md/. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-dataview Obsid…...

从零构建μC/OS-II硬件抽象层:以ARM7 LPC2292为例详解移植核心

1. 项目概述与核心思路十年前,我第一次把μC/OS-II从一个ARM7开发板搬到另一个不同型号的ARM7芯片上,光是改启动文件和中断向量表就折腾了一周。那时候我就想,要是有一套标准化的“中间层”,能把芯片底层的差异给屏蔽掉&#xff0…...

【计算机网络硬核指南】子网划分终极篇:定长+VLSM+超网三合一实战(3道大厂真题逐字节演算)

【计算机网络硬核指南】子网划分终极篇:定长VLSM超网三合一实战(3道大厂真题逐字节演算) 前言 在上一篇文章中,我们系统学习了IP地址基础和子网划分的核心方法,逐题演算了9道经典真题。很多读者反馈说,看…...

手把手教你用Vivado 2019.1和Tri Mode Ethernet MAC IP,在Artix-7上搞定千兆UDP通信(附RTL8211E/YT8531C/KSZ9031配置)

基于Artix-7的千兆以太网UDP通信实战指南 在嵌入式系统开发中,实现稳定可靠的网络通信一直是工程师面临的挑战之一。特别是当项目需要高速数据传输时,如何选择合适的硬件平台和协议栈就显得尤为重要。本文将聚焦Xilinx Artix-7 FPGA平台,详细…...

RK3588开发板Debian系统从零配置到实战:安全加固、Docker部署与性能调优

1. 项目概述:从零上手TL3588的Debian系统最近在折腾一块基于瑞芯微RK3588芯片的开发板,型号是TL3588。这板子性能是真不错,八核CPU加上强大的NPU,拿来做边缘计算、多媒体网关或者轻量级服务器都挺合适。但刚拿到手,面对…...

STM32H743实战笔记:用SN65HVD230驱动14个伺服电机,1M波特率稳不稳?

STM32H743工业级CAN总线实战:14伺服电机集群控制与SN65HVD230极限测试 在工业机器人关节控制领域,多电机协同作业对总线通讯的实时性和稳定性提出严苛要求。最近完成的一个AGV底盘项目让我对STM32H743的CANopen主站性能有了全新认识——当需要同时驱动14…...

基于Node.js与Socket.IO构建开源实时聊天应用:从架构到部署

1. 项目概述:一个为纯净对话而生的开源聊天应用在信息过载的今天,我们每天被各种应用的通知、广告和复杂功能所包围。对于即时通讯这类高频使用的工具,这种“臃肿感”尤为明显。你是否也怀念过早期聊天软件那种简洁、纯粹、专注于信息交换本身…...

物联网设备超低功耗设计实战:从硬件协同到软件优化的全链路解析

1. 项目概述:为什么我们需要一个“超低功耗”的无线平台?在物联网设备开发领域,功耗一直是一个绕不开的核心痛点。我经历过太多项目,前期功能验证一切顺利,一到功耗测试就“翻车”。客户拿着样机问:“你们这…...