学习记录562@公钥密码体系基本概念
公钥密码体系是一个全新的概念和密码体制,它使通信双方在事先没有设共同密钥的情况下用互联网安全快速地交换密钥.
先看一个简单的例子,设想将加密算法比喻成一个带锁扣的盒子,将网络通信比喻成邮政通信.假设甲方需要将数据M(例如M是AES-128密钥)通过邮寄送给乙方并确保M不被他人读到,甲乙双方事先没有设定共同密钥,如果甲方使用常规加密算法将M加密,则乙方因为不知道密钥而无法解读收到的密文为了解决这个问题,乙方于是想出了如下办法:乙方将一个没上锁的空盒子连同一个开启的锁一起邮寄给甲方,钥匙则由乙方自己保管,甲方将M放入空盒,并用寄来的锁将盒子锁上后寄给乙方,乙方用自己保管的钥匙开锁便得M.这是公钥密码体系的基本思想.在这个例子中加密算法是盒子,开启的锁是加密算法的公钥,它用于加密且是公开的,而乙保管的钥匙是加密算法的私钥,它用于解密,因此是不能公开的.
再看一个例子.假设甲方设计了两个函数fo和f1,它们对于任意正整数a,z,y均满足如下关系:
f1(fo(a,y),x)=f1(fo(a,x),y),而且从fo(a,x)和a难以推出x.
甲方据此设计了一个公钥体系,其目的不是加密,而是让甲乙双方确定一个共同的密钥,而且双方执行的操作一样.具体步骤如下:
令a为公钥,甲方随机选取一个正整数x1作为私钥,计算y1=fo(a,x1)并将y1送给乙方;与此同时,乙方也随机选取一个正整数x2作为私钥,计算y2=fo(a,x2)并将y2送给甲方.甲方计算K1=f1(y2,x1)并用K1作为常规加密算法的密钥,乙方计算K2=f1(y1,x2)并用K2作为常规加密算法的密钥.
**因为f1(y2,x1)=f1(fo(a,x2),x1)=f1(fo(a,x1),x2)=f1(y1,x2),所以K1=K2.**因此甲乙双方便获得了一把共同的密钥K1,尽管甲方不知道x2而乙方也不知道x1.窃听者虽然可获得y1和y2,但因为无法获得x1和x2,因而无法算出K1或K2.能否构造这样的函数呢?
1976年 Whitfield Diffie和 Martin Hellman两人用数论方法给出了函数fo和f1的一种设计,由此得到 Diffie-Hellman 密钥交换体系.比1976年早几年,英国学者 Malcolm J. Williamson 也发明了类似的密钥交换体系. Williamson 当时在英国情报系统政府通信总部(GCHQ)工作,圈于GCHQ的保密条令而没有公开发表他的算法.
1977年 Ronald Rivest、Adi Shamir和 Leonard Adleman等三人共同用数论方法设计了一个公钥密码体系,称为RSA公钥密码体系,它不但能用于数据加密,也可用于数据认证。这一工作使他们荣获2002年图灵奖,不过早在1973年,英国学者Clifford Cocks就已经构造了一个与RSA类似的公钥密码系统.Cocks当时也在为GCHQ工作,同样团于GCHQ的保密条令,他的这一成果直到1997年才公之于世,1985年 Neal Koblitz和 Victor Miller各自独立地用椭圆曲线方法设计了一种新的公钥密码体系,称为椭圆曲线公钥体系,其功能与RSA公钥密码体系大体相同。RSA公钥密码体系和椭圆曲线公钥体系均有加密和解密算法,仍用E和D表示公钥密码体系的加密和解密算法,用KuK^{u}Ku 和 KrK^{r}Kr分别表示公钥和私钥.公钥密码体系必须满足以下3个条件:
(1)正向计算易解性
加密C=E(KuK^{u}Ku,M)和解密M=D(KrK^{r}Kr,C)的运算应简单易行,而且公钥和与之相应的私钥对(KuK^{u}Ku,KrK^{r}Kr)应容易产生.这项要求是显然的,因为加密和解密运算不但应该快速,而且公钥和私钥对还应能随时更换.
(2)反向计算难解性
从公钥KuK^{u}Ku推算私钥Kr应是计算难解的,而且从密文C和公钥Ku推算出明文M也应是计算难解的,这项要求也是显然的,因为公钥是公开的,所以要求公钥不能泄露任何有助于获得明文的信息.
(3)公钥和私钥可交换性
公钥和私钥应满足如下关系:
M=D(KuK^{u}Ku,E(KrK^{r}Kr,M)),
=D(KrK^{r}Kr,E(KuK^{u}Ku,M)),
= E (KuK^{u}Ku, D (KrK^{r}Kr, M)),
=E(KrK^{r}Kr,D(KuK^{u}Ku,M)).
这项要求主要用于身份验证和数字签名,它对于密钥交换体系不是必需的公钥体系的计算通常是对正整数进行的,对于任意一个二进制字符串,总可以在其左边加一位二进制数字1而得到一个正整数,给定一个正整数n,可将明文M分成若干段,使每段的长度小于或等于log2n−1\log_2 n-1log2n−1,然后在每段的左边加一位二进制数字1便得到一个小于n的正整数,不失一般性,假定明文是在某个特定范围内的正整数.
以上摘自计算机网络安全书籍
在华尔街凡是想让股市为自己付钱购买汽车、首饰、游艇或者名画的人,他自以为是,认为自己只是下了一个机会均等的赌注,因为他已经做好准备随时抽身而逃——比如,当他希望赚到2个点时,一旦下跌2个点他就会止损。他抱着一种错误的观念,认为自己成功的概率对半开。好吧,我知道有很多人在这样的交易中亏掉了成千上万美元,尤其是多头市场刚刚进行了一次温和的回调之前,他却在高位买进。这绝对不是交易之道。
学习记录562@公钥密码体系基本概念相关推荐
- 【学习记录】卷积神经网络常用概念
一.卷积与池化 卷积本身来自于信号处理领域,是一项广泛应用于信号处理的技术,在数学上指的是函数经过反转和平移再次求乘积的积分的过程. 在传统的图像处理中,卷积核一般是人为设定,使用不同的卷积核可以提取 ...
- CloudCompare学习记录(一)主要概念
1.菜单 · 文件 (打开, 保存, 退出, 等.) · 编辑 (编辑选择实体和它们的属性--颜色.法向量和标量场(scalar field)等.) · 工具 (分割, 匹配, ...
- 2022-10-20 学习记录——节点边际电价
学习记录--节点边际电价 1.概念 节点边际电价:某一节点的单位电量发生变化而引起整个系统边际发电成本的变化量. 节点边际电价 = 系统能量电价 + 阻塞价格 + 网损费用(暂不考虑) 多 ...
- MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令
相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...
- 【Android学习专题】java基本语法和概念(学习记录)
学习记录来自菜鸟教程 Java 变量 Java 中主要有如下几种类型的变量 局部变量 在方法.构造方法或者语句块中定义的变量被称为局部变量.变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁 ...
- 学习:赛博空间 Cyberspace 概念
学习:赛博空间 Cyberspace 概念 赛博空间 Cyberspace 概念 赛博空间是哲学和计算机领域中的一个抽象概念, 指的是以计算机.现代通讯网络.虚拟现实等信息技术的综合运用为基础, 以知 ...
- Java学习记录五(多线程、网络编程、Lambda表达式和接口组成更新)
Java学习记录五(多线程.网络编程.Lambda表达式和接口组成更新) Java 25.多线程 25.1实现多线程 25.1.1进程 25.1.2线程 25.1.3多线程的实现 25.1.4设置和获 ...
- Qt程序单元测试学习记录
7月比较忙,很少更新博客,上旬任务是给公司原来的程序做简单的单元测试.毕业这两年写过很多代码,从来没有注意过单元测试这东西,现在开始认真对待,开始看别人写的文章来学习.这里记录下最近学到的,以及自 ...
- java之JVM学习全过程学习记录
java之JVM学习记录其中有许多借鉴综合,感谢通哥也感谢大佬们,一起学习加油) 1.JAVA的三种常量池字符串常量池,运行时常量池,class文件常量池 2.类加载器加载类文件和执行引擎学习过程 3 ...
最新文章
- java 参数类型不确定_详细解析Java虚拟机的栈帧结构
- 12864输出字符c语言,大家看看该怎么改才能让12864液晶显示屏显示21个字符啊?...
- Teams的manifest文件开始支持多语言
- 数据结构与算法--翻转单词顺序
- 计算机小键盘价格,带小键盘的笔记本电脑是多少寸
- java selenium sleep_【转】java-selenium三种等待方式
- 解读NoSQL数据库的四大家族
- f分布表完整图a=0.01_Matlab中的数据分析之概率分布与检验实例讲解
- bmc156 linux驱动源码,BMC156 BOSCH博世 加速+电子罗盘 全新电子罗盘传感器 只做原装...
- 公私钥加解密+数字签名原理图(原创)
- Spring Boot:The field file exceeds its maximum permitted size of 1048576 bytes.
- 二分类图片标签从0-1改为0-255——将图片位深度从1改为8
- homeassistant 快速入门
- 洛特卡-沃尔泰拉模型(Lotka-Volterra model)
- 《青玉案·元夕》——辛弃疾
- 算法的衡量:时间复杂度和空间复杂度
- 58金融客服电话--24小时全国统一服务热线
- 基于JAVA的网上花店销售系统的设计与实现(附:源码 论文 sql文件)
- 点击菜单更改菜单栏背景图片
- A股上市公司名义所得税率(2003-2019)
热门文章
- 常见聚类算法及使用--层次聚类(Agglomerative clustering)
- win8.1通过update升级win10的一些问题和思考
- 数据仓库(1)什么是数据仓库,数仓有什么特点
- html5制作大小写转换,Convert Case - 英文大小写转换工具
- GeoScene Pro 共享图层类型、共享包简介
- Machine Learning-based Selection of Graph Partitioning Strategy Using the Characteristics of Graph D
- 鸿蒙手机 跳票,不会跳票!华为官宣:鸿蒙手机系统马上就来,对标苹果安卓!...
- int fputc(int c,FILE *sream) 实例代码
- 突发!Windows XP源码遭泄露
- docker 安装后无权限问题