最早的公钥算法--单向陷门函数
陷门原指Bug漏洞,这里却巧妙的成为非对称密码算法的科学方法。这种非对称密码算法比RSA早7年。
这种陷门单向算法函数可以实现公钥加密,但无法做数据签名,还不是完善的非对称算法。
单向陷门函数(Trapdoor One-way Function) ,满足下列条件的函数fff:
(1)正向计算容易,即如果知道了密钥pxpxpx和消息xxx,容易计算y=fpx(x)y=f_px (x)y=fpx(x)。
(2)在不知道密钥sksksk的情况下,反向计算不可行,即如果只知道消息yyy而不知道密钥sksksk,则计算x=fsk−1(y)x=f_{sk}^{-1} (y)x=fsk−1(y)是不可行的(所谓计算不可行,是指计算上相当复杂,在有限的时间和成本范围内很难得到想要的结果,已无实际意义)。
(3)在知道密钥sksksk的情况下,反向计算是容易的,即如果同时知道消息yyy和密钥sk4sk4sk4,则计算x=fsk−1(y)x=f_{sk}^{-1} (y)x=fsk−1(y)是容易的,这里密钥sksksk相当于陷门,它和pkpkpk配对使用的。
也就是说,对于单向陷门函数,它是指除非知道某种附加的信息,否则这样的函数在一个方向上计算容易,在另外的方向上要计算是不可行的;有了附加信息,函数的逆就可以容易计算出来。
注:
①仅满足(1)(2)两条的为单向函数,第(3)条为陷门性,其中的密钥sksksk称为陷门信息。
②当用陷门函数f作为加密函数时,可以将pkpkpk公开,此时加密密钥pkpkpk便称为公开密钥。fff函数的设计者将陷门信息sksksk保密,用作解密密钥,此时密钥sksksk被称作秘密密钥。由于加密函数fff是公开的,任何人都可以将信息xxx加密成y=fpx(x)y=f_px (x)y=fpx(x),然后发送给目的接收者。(当然可通过不完全信道传递)。由于目的接收者拥有sksksk,自然可以解出x=fsk−1(y)x=f_{sk}^{-1} (y)x=fsk−1(y)。
③单向陷门函数的第(2)条性质表明窃听者由截获的密文y=fpx(x)y=f_px (x)y=fpx(x)推测消息的明文是不可行的。
最早的公钥算法--单向陷门函数相关推荐
- 哈希算法(Hash函数)简单介绍
1.什么是哈希算法?(Hash函数) 哈希算法的定义和原理: 将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则,就是哈希算法.而通过原始数据映射之后得到的二进制值串就是哈希值. 设计一 ...
- 对称密钥算法和公钥算法的优缺点
对称密钥算法 对称密钥算法是应用较早的加密算法,技术成熟.在对称密钥算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去.收信方收到密文后,若想解读 ...
- 陷门函数Trapdoor Function
陷门函数:正向计算是很容易的,但若要有效的执行反向计算则必须要知道一些secret/key/knowledge/trapdoor(知识?),也称为伪随机置换,可用于构造公钥密码系统. 若 f 为陷门函 ...
- 【机器学习】基于粒子群算法的非线性函数寻优
本微信图文介绍了基于粒子群算法的非线性函数寻优过程,并利用Matlab实现.
- MAT之PSO:利用PSO算法优化二元函数,寻找最优个体适应度
MAT之PSO:利用PSO算法优化二元函数,寻找最优个体适应度 目录 实现结果 设计代码 实现结果 设计代码 figure [x,y] = meshgrid(-5:0.1:5,-5:0.1:5); z ...
- C++ stl 通用算法和成员函数使用
在stl中既有通用函数,又有相同成员函数主要表现在list中. 以remove为例 list<int> coll;// insert elements from 6 to 1 and 1 ...
- matlab碎纸拼接相似函数,基于蒙特卡洛算法构建能量函数的碎纸图片拼接方法
基于蒙特卡洛算法构建能量函数的碎纸图片拼接方法 [专利摘要]本发明提供了一种基于蒙特卡洛算法构建能量函数的碎纸图片拼接方法,主要涉及双面打印文件的拼接及复原问题,通常由于图片较多,信息量较大,故通常为 ...
- java 蓝桥杯算法训练 sign函数
试题 算法训练 sign函数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定实数x,输出sign(x)的值. sign(x)是符号函数,如果x>0,则返回1:如果x=0, ...
- python pso_利用python实现PSO算法优化二元函数
python实现PSO算法优化二元函数,具体代码如下所示: import numpy as np import random import matplotlib.pyplot as plt from ...
最新文章
- 有个程序员老公有多爽???
- 在Docker中运行Spring Boot的高级功能测试
- emulator: ERROR: x86 emulation currently requires hardware acceleration!
- Hadoop-Yarn-框架原理及运作机制
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1083:计算星期几
- [HDOJ5542]The Battle of Chibi(DP,树状数组)
- 第二十七期:德国工业4.0眼里“工业互联网”与“智能制造”
- 比较下OceanBase的选举协议和Raft的选举协议的区别
- jQuery插件之ajaxFileUpload异步上传
- python 网格搜索_Python机器学习笔记:Grid SearchCV(网格搜索)
- 市电220V说的是峰峰值还是有效值呢?
- WIN10 宽带拨号自动连接设置
- 沧海拾珠(持续更新。。。)
- Chip-seq数据寻找Indel
- 装配作业指导书是什么?装配作业指导书主要包括哪些内容?
- vsCode html文件格式化
- html scr 拼接,浅谈html中scr与href是什么?scr与href有什么区别?
- 微信小程序-评论系统
- ib物理hl难吗?ib物理考点避坑指南
- 回望2021,展望2022-我的个人年度回顾与总结