两种公钥加密算法——Merkle-Hellman背包、RSA

2023-10-30

今天看了一些加密体制,很厉害,佩服之余顺便总结下公钥(对称密钥很多啊,历史比较有名的有DES、AES、RC系列...水平不够说不清楚,所以不写了)。自己以后也要看,所以尽量通俗易懂(其实是不怎么会很官方很学术,顺道说,明天就七夕了,我还在搞些啥跟啥,怎么过%>_<%)。这些加密算法具体的发展历程,内容即变种可以百度,蛮有意思的,。

①Merkle-Hellman背包
       先说说背包问题吧(第一次看觉得。。。wc,背包也可以拿来加密,难不成是忽悠?)。
已知东西大小(一个整数序列An,n∈Z)和背包大小(目标和T),然后问哪些东西恰好能装满背包。即找出一个01序列P(n∈Z)使得ΣAi*Pi=T。
       这是个NP问题(什么是NP问题不解释了),反正要找出这个P序列复杂度还挺高的,而这个序列刚好就可以当做明文啦。序列An就是公钥,而T自然而然就是密文(加密后数据)。
这里的明文P(待加密的数据)与一般的不太一样,是由0、1组成的比特流(别小看二进制,计算机所有数据存储可都是01哟)。

具体实现例子:
       假设明文P=0100 1011 1010 0101,公钥An={15,13,9,16},
加密:
       那密文就等于{13,40,24,29}。第一个13由前4个Pi*Ai得到,即0*15+1*13+0*9+0*16=13,其他类似。
然后公钥An{15,13,9,16}是公开的,密文T{13,40,24,29}可能被窃取到,这个例子n只有4,所以也蛮好猜明文的。比如13刚好在公钥有&
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两种公钥加密算法——Merkle-Hellman背包、RSA 的相关文章

  • 为什么 KeyPairGenerator.genKeyPair() 这么慢

    我有一些 Java 代码 当我运行函数时KeyPairGenerator genKayPair 工作时间为 40 秒或更长时间 如何改变这种现状呢 如果我跑 openssl req x509 nodes days 365 newkey rs
  • 如何在 Java 中验证公钥和私钥对

    有没有一种方法可以在 java 中验证给定的私钥 例如某个 key 文件 是否与某个使用 RSA 算法的某个 pub 文件匹配的公钥 您可以通过以下方式验证密钥对是否匹配 创建一个挑战 足够长度的随机字节序列 signing的挑战私钥 验证
  • 如何从 Base64 编码字符串构造 java.security.PublicKey 对象?

    我有一个来自外部源 Android Store 的 bse64 编码字符串公钥 我需要用它来验证签名内容 如何将字符串转换为 java security PublicKey 接口的实例 如果这有什么区别的话 我正在使用 Java 6 密钥
  • 从 jquery 安全地调用我的 Web api

    我有一个简单的问题 可能会指出一个复杂的答案 我有一个运行良好的网络 API 但现在我想设置身份验证 授权 我需要它在所有平台上工作 但主要来自 jQuery 当然 我不想像这样以纯文本形式沿着管道发送我的用户名和密码 function G
  • 如何从 SSL 证书中提取密钥?

    我有一个在以下网站购买的 SSL 证书 pem crt der格式 我想知道如何从证书中获取密钥文件 有什么办法可以做到这一点吗 您可以提取公钥 这的用处有限 也许您将在其他不使用证书的工具 例如 SSH 或 PGP 中使用相同的密钥 使用
  • 如何使用 RSAEncryption 创建带有 SHA1 摘要的 PKCS7/CMS?

    我创建了一个pkcs7块 可以自己验证 但是结果和我使用OpenSSL的伙伴不一样 我创建的p7块无法被我的伙伴验证 我们仔细检查代码 只找到c 中找不到对应项的代码 OPENSSL signInfo gt digest enc alg g
  • 对 99 位数字长的大数进行因式分解的问题

    号码是 112887987371630998240814603336195913423482111436696007401429072377238341647882152698281999652360869 我的代码如下 def getfa
  • 如何在 Go 和 Android 之间使用 RSA

    我 1 在 Go 中创建公钥并将其发送到 Android 2 android使用下面的代码来加密它的数据以字符串类型发送到Go 3 去获取字符串数据并尝试解密 但不能 我的Go代码 DecryptWithPrivateKey decrypt
  • 如何在 ios、swift 中生成公钥/私钥对,如下所示

    这就是我生成公钥 私钥对的方式 var statusCode OSStatus var publicKey SecKey var privateKey SecKey let publicKeyAttribute NSObject NSObj
  • 如何在 Python 中使用 PKCS12 对 RSA 密钥进行编码?

    我正在使用 Python 在 Google App Engine 下 并且我有一些需要以 PKCS 12 格式导出的 RSA 私钥 有什么可以帮助我的吗 我正在使用 PyCrypto KeyCzar 并且我已经弄清楚如何以 PKCS8 格式
  • 如何使用 OpenSSL 从 .cer 中提取 RSA 公钥并将其存储在 .pem 中?

    我需要从一个文件中提取公钥 RSA cer文件 我希望提取密钥并将其存储在 pem文件 这样我就可以使用它的值来加密值js加密 https github com travist jsencrypt 以下命令将转换 cer to pem op
  • Android 中使用 Base64 编码的公钥进行 RSA 加密

    如何使用base 64编码的公钥对字节数组进行RSA加密 在阅读了几篇关于如何在 Java 中进行 RSA 加密的文章 谷歌搜索 后 发现了以下片段 public byte rsaEncrypt byte data PublicKey pu
  • 如何从 ActionMailer 发送签名电子邮件?

    我使用 GMail 作为我的 SMTP 服务器 我的配置工作得很好 config initializers action mailer rb ActionMailer Base smtp settings tls gt true addre
  • PHP shell_exec 使用 ssh 运行 shell 脚本

    我有一个 shell 脚本 使用 ssh 和密钥连接到另一台机器 因此它不需要用户名和密码 当我从命令行运行这个脚本时 它工作正常 但是当我从 php shell exec 运行这个脚本时 它不起作用 如果我与 PHP 建立 ssh 连接并
  • 如何在 C# 中创建 PKCS12 .p12 文件?

    这可能是一个n00b问题 但我在这方面确实没有任何经验 我需要创建一个包含 X509 证书和私钥的 p12 捆绑包 我当前有两个对象 X509Certificate2 和包含关键信息的 RSAParameters 对象 如何将它们合并到 p
  • RSA OAEP、Golang 加密、Java 解密 -BadPaddingException:解密错误

    我正在尝试解密使用 RSA OAEP 在 Golang 中加密的字符串 但出现 BadPaddingException 解密错误 很难弄清楚我错过了什么 这是Golang加密方法 func encryptString rootPEM io
  • 在 .Net Core 上使用非对称密钥

    我正在尝试运行此示例中的代码 https learn microsoft com en us dotnet standard security how to store asymmetric keys in a key container
  • 对 Java 安全性和 BouncyCastle API 感到茫然和困惑

    我一直在尝试理解 Java 的 BouncyCastle 加密 API 不幸的是 我发现 Java 密码学总体上被服务提供者接口和术语所掩盖 以至于我无法理解任何东西的实际作用 我已经尝试反复阅读必要的文档 但它仍然难以理解 引入了许多远远
  • 计算 RSA 128 位密钥长度需要多长时间? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我在网上做了一些研究 似乎表明 RSA 加密的推荐密钥长度是 1024 位 但是我有一个问题 对于今天使用的普通计算机来说 计算 128 位 RSA
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器

随机推荐

  • Vulkan教程翻译之九 Descriptor Set Layouts 和 Pipeline Layouts

    原文链接 https vulkan lunarg com doc sdk 1 2 131 2 windows tutorial html 08 init pipeline layout html Descriptor Set Layouts
  • element中对el-input 自定义验证规则

    element中对el input 自定义验证规则 首先明确要使自定义校验生效的话 必须 prop 和 rules 的 键对应 如示例 prop description 在 rules 中有对应的键
  • git连接不到远程ssh,解决Unable to negotiate with **** port 22: no matching host key type found. Their offer:

    使用git链接远程push时ssh方式出错 连接失败 解决方法如下 参考文章 记一次使用git报错 解决Unable to negotiate with port 22 no matching host key type found The
  • 【python 6】Numpy

    文章目录 一 创建ndarry 1 使用 np array 由 python list 创建 2 使用np的常规函数创建 二 ndarry 的属性 三 ndarry 的基本操作 四 ndarry 的矩阵操作 Numpy 是python的数值
  • 问题1:VS2017:找不到 Windows SDK 版本10.0.17134.0

    我电脑的VS版本 1 问题1 找不到 Windows SDK 版本10 0 17134 0 请安装所需的版本的 Windows SDK 或者在项目属性页中或通过右键单击解决方案并选择 重定解决方案目标 来更改 SDK 版本 2 出现问题的过
  • 数据结构之---C语言实现拓扑排序AOV图

    有向图的拓扑排序 杨鑫 include
  • React TypeScript

    1 安装 就像安装其他插件库一样 在项目文件夹下执行 npm install antd save 如果你安装了 yarn 也可以执行 yarn add antd 2 引用 import Button Tooltip from antd im
  • window下C语言中strtok函数的使用

    基础知识 原型 char strtok char str const char delim 功能 分解字符串为一组字符串 参数说明 str为要分解的字符串 delim为分隔符字符串 其中 str 不能用指针来存储 因为这个方法的本质是 找到
  • IOS 使用自定义View实现圆形布局(Swift)

    前面写过用安卓实现 还是同个需求 只不过现在需要做苹果版本 网上搜到了类似的案列点击打开链接只不过他的是用UICollectionView 跟我的需求有点不符合 没有搜到完全符合的案例 没办法自己写个 记录一下 也给有同种需求的童鞋填个坑
  • C#泛型List删除多个元素的方法

    泛型List如果删除一个 很简单 直接 RemoveAt index 即可 但如果有多个元素 那么删除起来并不是特别简单 需要使用 for 循环的倒叙删除 例子如下 class Program public class Students p
  • windows10安装linux环境

    Windows里玩转Linux 目标 一般的做法 神仙般的做法 可能会遇到的问题 目标 想要在windows里玩转linux 一般的做法 在windows里安装vmware或virtual box 新建一个虚拟机 在虚拟机里通过iso安装l
  • Python ttkbootstrap 制作账户注册信息界面

    前言 ttkbootstrap 是一个基于 tkinter 的界面美化库 使用这个工具可以开发出类似前端 bootstrap 风格的 tkinter 桌面程序 ttkbootstrap 不仅有丰富的案例 同时还有完善的官方文档 可惜是英文的
  • 宽高都200px的div在浏览器窗口居中(水平垂直都居中)

    1 fixed 从中间移动定位 position fixed width 200px height 200px left 50 top 50 margin left 100px margin top 100px 第一行设置完 盒子的左上角的
  • 国茂股份全面迁移到亚马逊云科技,降本增效,驱动业务增长

    亚马逊云科技宣布 中国通用机械工业减速机行业的标杆企业江苏国茂股份有限公司 简称 国茂股份 正在全面迁移到亚马逊云科技 在中国大陆 西云数据运营宁夏区域 光环新网运营北京区域 将ERP 企业资源计划系统 APS 高级计划与排程系统 MES
  • Docker安装使用阿里云镜像

    registry mirrors https kfwkfulq mirror aliyuncs com https 2lqq34jg mirror aliyuncs com https pee6w651 mirror aliyuncs co
  • 【满分】【华为OD机试真题2023 JS】最小的调整次数

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 最小的调整次数 知识点队列栈 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 有一个特异性的双端队列 该队列可以从头部或尾部添加数据 但是只能从头部移出数据 小A
  • dns服务器响应 异常,DNS云学堂|快速定位DNS解析异常问题,牢记这四种DNS状态码...

    DNS的状态码在进行故障排查的时候起着至关重要的作用 在DNS的维护中会经常遇到DNS解析异常问题 通过DNS的状态码可以初步判断DNS解析的异常问题 本期云学堂通过详解DNS状态码的定义 给出常见状态码的场景举例 enjoy 写在前面 本
  • (一)Matlab三日基础入门——矩阵和数组

    目录 创建数组 方式一 直接创建 方式二 调函数创建 zeros 功能 创建由0组成的数组 ones 功能 创建由1组成的数组 rand 功能 创建 0 1 之间均匀分布的随机数生成的数组 矩阵和数组运算 单一运算符 转置 行列互换 计算矩
  • [leetcode]刷题--关于位运算的几道题

    1 位运算的本质 其实是对二进制补码储存形式的修改 位运算常见的运算符为 lt lt 左移n个位置 算数移位 符号位不变 gt gt 右移动n个位置 采用直接丢弃末尾数字的方法 符号位不变 移位都是算数移位 按位取反 对于包括符号位在内全部
  • 两种公钥加密算法——Merkle-Hellman背包、RSA

    今天看了一些加密体制 很厉害 佩服之余顺便总结下公钥 对称密钥很多啊 历史比较有名的有DES AES RC系列 水平不够说不清楚 所以不写了 自己以后也要看 所以尽量通俗易懂 其实是不怎么会很官方很学术 顺道说 明天就七夕了 我还在搞些啥跟