- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经实现了RSA加密算法来加密数据加密中使用的对称 key ,但是RSA的 key 大小和密文大小造成了内存问题,所以我搜索了其他公钥加密方法来解决。我找到了椭圆曲线集成加密方案 (ECIES) 并了解其背后的理论,但是,我不太清楚这种方法如何用作公共(public)/非对称加密算法。该方法使用从加密和解密(使用相同 key )的共享 secret 派生的 key 计算对称加密。
那怎么能算是非对称加密算法呢?或者有什么方法可以实现为非对称加密?
最佳答案
Meta:这实际上不是编程或开发问题。它可能属于 crypto.SX;您可能会要求迁移。
确切地说,ECIES 是一种混合 公钥加密方案,但大多数其他方案也是如此。例如,正如您所说,RSA 通常用于加密工作(每条消息)对称 key ,而不是直接加密数据。
Paraphrasing the wikipedia description:
2-5。 Alice 生成一个临时 key 对,导出共享 DEK,加密数据,并使用她的临时公钥发送(编辑)并销毁临时私钥
已添加,并在下面进行了扩展,根据评论:是的,两端的 DEK 相同(注意我使用“the”表示一个而不是多个),这就是该方案有效的原因;并且使用 DEK 进行数据加密和解密的 ECIES 的部分是对称的,但所有其他操作(安全地创建临时共享 DEK)不是。
除了爱丽丝(或鲍勃)之外,没有人知道她的临时私钥是至关重要的;如果他们这样做,他们可以解密。但她不需要明确保密,因为她在使用它发送消息后立即销毁它;这就是短暂的意思。
让我们看看:
收件人的公钥是公开的,任何人都可以加密
收件人拥有(静态)私钥并可以解密
没有其他人拥有 Bob 的(静态)私钥或 Alice 的临时私钥,并且没有其他人可以解密
收件人只需要一对 key ;如果有多个发送者,他们都可以使用相同的公钥,但不能解密彼此的流量,也不需要 secret 获取公钥;对于一千或一百万发件人来说,这与一个发件人的成本相同或略高于一个发件人
改为考虑标准/传统对称方案的属性:
双方必须事先共享一个 key (只有一个,不是一对);双方都必须保密,不能与任何人分享
这通常需要双方提前会面,或使用物理上安全的方式(例如 express )将 key 从一方传递给另一方,或者可能从中央机构传递给双方
每个 key 只能由一对方使用;对于多个发件人,Bob 必须拥有并管理那么多不同的 key ,并且每个发件人(Alice、Abby、Anne 等)必须拥有不同的 key 。每个发件人必须分别与 Bob 会面,或者他们必须各自有一个(或两个)单独的 express 员, 在他们与 Bob 通信之前。对于一千或一百万发件人来说,这变得非常昂贵
ECIES 没有传统或对称系统的这些属性,所有上述公钥或非对称系统的属性,尽管它也使用 一些对称操作及其非对称操作。
这就是为什么它对我来说听起来像是(混合)公钥加密!
关于encryption - ECIES是公共(public)加密算法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50940672/
我正在尝试用 C 编写一个简单的加密程序。我的目标是将 abc(它可以是任何单词)翻译成 123。然后乘以 2 得到 246 然后再次翻译成文本,然后在屏幕上写 bdf。这是我的算法,它不能正常工作。
互联网上有很多关于加密的答案,但我一直无法找到我正在寻找的东西:使用 c# 提供的工具对字符串和文本文件进行加密的简单强加密。 我的主要问题是我不知道如何将 IV 保存到文本文件的开头或如何创建随机
C#“RSACryptoServiceProvider”加密算法是 Microsoft-CryptoAPI 的一部分吗? 通过在 .Net 中使用 CryptoAPI 而不是“RSACryptoSer
我正在编写适用于“流”的 XXTEA 加密算法的实现,即可以像这样使用:crypt mykey 输出。 其中一个先决条件是它根本无法访问文件(它只读取固定大小的 block ,直到找到 EOF)。该
嘿,这是我老师给我的一个加密例子。但是,我仍然搞不懂(Int)Message[i]是什么意思?那么程序在这条线上做什么呢?
嘿,这是我老师给我的一个加密例子。但是,我仍然搞不懂(Int)Message[i]是什么意思?那么程序在这条线上做什么呢?
嘿,我研究这个已经有一段时间了,我记得我的兄弟引导我完成了这个完全相同的算法。 基本上,它只是添加键中字符和短语的 ascii 值。 我可以用这个加密它: def encrypt(key, strin
我正在尝试将 BouncyCaSTLe 与 android 一起使用来实现 ECDH 和 EL Gamal。我已经添加了 bouncycaSTLe jar 文件 (bcprov-jdk16-144.j
我需要加密一个数字,我和这个加密的值将提供给客户询问 key ,所以我想尽量减少数字的数量并使它们都可以打印。 所以我希望结果要么全是数字,要么全是十六进制字符。 我正在使用的当前加密方法(对于非数字
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 5年前关闭。 Improve t
我正在制作 note taking web app它会在您键入时连续保存笔记。我正在发送差异以防止通过线路发送过多数据,这在注释为纯文本时工作正常。 然而,我添加了对加密笔记的支持,所以笔记只会以加密
我正在寻找一种与 JavaScript 和 Java 兼容的安全对称 key 加密算法。 我已经尝试实现一个,但我遇到了一些编码问题。 最佳答案 您不想使用 JavaScript 加密,especia
目录 1 MD5 1.1 算法定义 1.2 MD5算法不安全的原因 1.2.1 字典表很大 1
在查看一些旧的 Coldfusion 代码时,我发现了几个通过加密/解密函数使用 CFMX_COMPAT 算法加密的数据实例。 找了一阵子,一直没找到这是什么算法。文档提到它现在是最不安全的方法,但我
谁能告诉我 iOS 上 SUP 用来加密底层数据库的加密算法是什么? 它是否依赖于 SQLite EE(加密扩展),如果是,使用了 4 种可用算法中的哪一种? 我的猜测是某种 AES,但官方文档中没有
我一直有这个问题。 The specified cryptographic algorithm is not supported on this platform. Exception Details
我正在为一个项目实现 3Des 加密算法。 我使用此代码作为示例: http://www.java2s.com/Code/Java/Security/TripleDES.htm 它工作正常,但我需要发
我正在尝试使用 adobe type 1 字体加密算法来加密文本文件。但是,我不知道如何用汇编语言正确地实现算法。如果可以,请帮助我。 下面是adobe type 1字体加密算法: unsigned
如何添加/创建具有特定加密算法的 c/c++ OpenSSL 静态库?假设我不想实现 md5。如何创建没有 md5 的库? 最佳答案 在配置脚本中你可以指定no-选项,它会在没有你指定的密码的情况下构
我检查了 TripleDES。它的 block 大小是 64 位。 有没有针对8位 block 大小的算法? 谢谢 编辑:我不打算将其用于完美保护,而是用于以防万一的情况,即看到代码的人不应该找到明文
我是一名优秀的程序员,十分优秀!