1、R.Merkle和M.Hellman在1978年根据组合数学中背包问题提出了
第一个公钥密码算法。又称为MH背包算法。
2、背包问题
设有一堆物品,体积各不相同,问能否从这堆物品中找出几个正好装满一个给定容量的背包?
3、理论上讲,通过检查背包向量V的所有子集,计算出每个子集的元素之和,总可找出一个子集作为背包问题的解,因此背包问题又称为子集合问题。
当背包的长度n过大时,堆全部子集进行穷举式搜索是不可能的

有一类特殊的背包问题是容易求解的
超递增背包问题

4、背包算法的描述
背包密码密钥对产生的具体过程:

1、产生一个超递增向量V
2、将超递增向量V转化为非超递增向量U
3、公钥是非超递增向量U
4、私钥是转换因子t和k

5、加密变换:
1)将二进制明文消息划分成长度与非超递增向量U长度相等的明文分组b1b2…bn
2)计算明文分组向量B=(b1,b2,.。。。,bn)与非超递增向量
U=(u1,u2,。。。,un)的内积B。U=b1u1+b2u2+…+bnun

所得结果为密文
6、解密变换
1)先还原出超递增背包向量V=t的-1次方Umod k =t的-1次方tV mod k
2)再将密文BX(点乘)U模k乘以t的-1次方的结果作为超递增背包问题的背包容量,求解超递增背包问题,得到消息明文。
7、背包算法的安全性
背包算法利用难解的一般背包问题作为公开密钥,对明文进行加密
私有密钥则利用易解的超递增背包问题给出了一个解密的简单方法
8、背包算法破解
基本思想:
找出一对任意的k‘和t’,使得用公开的背包向量U模k‘乘t’后得到一个超递增向量

WHY?
MH背包体制公开密钥是由超递增向量变换而来,虽经过模乘置乱,但超递增向量内在的规律并不能完全被隐藏,给攻击者留下可乘之机

9、背包算法是第一个使公钥密码体制成为现实的密码算法,他说明了如何将数学难题应用于公钥密码算法的设计
优点:加解密速度很快
缺点:不安全性

7.2背包公钥加密算法相关推荐

  1. 信息安全实验四:RSA公钥加密算法 2019.04.28

    实验四:RSA公钥加密算法 一.实验目的 理解.掌握RAS公钥加密算法的基本过程. 二.实验内容 熟悉MPIR大整数运算库函数的调用. 利用MPIR大整数运算库函数,实现RSA公钥加密算法.要求:1) ...

  2. 两个基于二次剩余的公钥加密算法

    两个基于二次剩余的公钥加密算法 两个基于二次剩余的公钥加密算法 Rabin加密算法 GM加密算法 两个基于二次剩余的公钥加密算法 二次剩余问题:在不知道n的分解情况下,一般性地判断一个整数a是否为模n ...

  3. 公钥密码体制及RSA公钥加密算法(上)

    一.公钥密码体制 (1)公钥(非对称)密码概述: 优点:免去密钥分发,密钥管理简单 (2)公钥加密的设计原则: 已知公私钥,进行加密解密是简单容易的 单向函数:一个函数f,对于定义域内的任意x,计算f ...

  4. 几种主要的公钥加密算法

    RSA加密算法 一.RSA算法是什么? RSA基于数论的欧拉定理,是第一个安全.实用的公钥加密算法,已成为国际标准. 二.秘钥生成步骤 选取两个安全的大素数p.q(大于1024比特) 计算n = p ...

  5. 公钥加密算法——RSA算法

    公钥加密算法--RSA算法 一.加密解密过程 二.算法原理 1.公钥密钥的选取 举个例子 2.私钥求解 3.举个例子 三.分析 附:视频链接   在实际应用场景中,由于效率较低,所以通常在通信建立连接 ...

  6. 公钥密码体制及RSA公钥加密算法(下)

    一.RSA公钥加密算法安全性 1.RSA安全性假定: 基于分解大整数的困难性假定 如果RSA的模数n被成功的分解成p*q,则立刻可以得到对应的φ(n)=(p-1)*(q-1),从而可以确定e模φ(n) ...

  7. 密码学之背包加密系统(Merkle–Hellman公钥加密算法)原理

    背包加密系统 背包问题 假定一个背包可以承重 W,现在有 n 个物品,其重量分别为a1,a2,a3,...,ana_1,a_2,a_3,...,a_na1​,a2​,a3​,...,an​, 问装哪些 ...

  8. # RSA 公钥加密算法

    Blai 终端之间信息传递安全性的保证始终是业务的刚性需求.不同的加密算法针对不同的业务需求, 因为公司是金融公司性质,又不是传统的金融公司(PS:牵扯到数字货币.常听说的比如:比特币),加密算法这块 ...

  9. 公钥加密算法-RSA

    RSA算法 RSA算法是由它的三位开发者,即 Ron Rivest.Adi Shamir 和 Leonard Adleman 的姓氏的首字母组成的 (Rivest-Shamir-Adleman). R ...

最新文章

  1. CentOS 6.5使用yum快速搭建LAMP环境
  2. linux编辑文档windows,1.9vim编辑器linux内核的底层文本编辑器,跟windows系统上的文本文档类似,大部分用这个工具进行文本的编辑,这个工具的操作方式基本上用不到鼠标,多是...
  3. 作为医生,除了买花,还能在情人节用什么特别的方式表白呢?(情书-病历体)...
  4. nodejs 生成证书 和 wss server
  5. 【Java】使用springboot运行程序时出现的错误
  6. TODO算子-双Value类型的操作
  7. Excel:数据处理
  8. python自回归_【时间序列】自回归模型
  9. 【自用】网页设计与制作教程 笔记
  10. C# 如何将EMF文件转换成PNG文件
  11. 什么是广域网和局域网?
  12. Oracle数据库启动过程详解
  13. ubuntu shell命令划重点
  14. 摄影测量(二):航空摄影
  15. 思科三层交换机不同vlan互通_cisco(三层交换和动态路由,不同vlan间的通信,静态路由实现全网互通)...
  16. mysql自增主键和mybatis自增主键不一致问题(已解决):
  17. 【Python-Microfilm-web-app-flask】基于Flask构建的微电影网站实例及源码参考
  18. 《你不可不知的人性》刘墉 读书笔记(五)
  19. buuctf Crypto 异性相吸
  20. matlab动刚度仿真,NVH仿真教程-车身原点动刚度分析与后处理

热门文章

  1. flexnet许可证服务器_ANSYS FlexNet Licensing not running的一种解决方法
  2. 【数据分析干货】全网最全!各行业常见的业务指标整理(二)-线下零售
  3. 做饼状图时,显示百分比的解决方案
  4. 给定一个由0和1组成的矩阵,找出每个元素到最近的0的距离
  5. windows更改rdp远程端口
  6. 再说linux命令行的管道
  7. 打开/关闭移动数据开关
  8. 数据库从属关系的怎么读取
  9. 《数循环》笔记:未来属于终身学习者
  10. 车牌识别,多场景化应用提高通行效率