RSA可以同时用作加密和签名吗?

2024-03-09

抱歉,我的脑子突然空白了……

编辑(场景)

如果我想要信息绕过简单的过滤器,例如f-ck,用公钥加密信息,用私钥签名可以吗?

公钥可能已经被双方交换过了,而且公钥也很难得到。

EDIT 2

这些信息本身可能并没有那么大的凭据。

加密和签名的目的是为了绕过和完整性。


RSA is two算法:一种用于非对称加密,一种用于签名。碰巧这两种算法可以使用相同的私钥结构(这是混乱的根源:许多文档,包括RSA标准 http://www.rsa.com/rsalabs/node.asp?id=2125,尝试将签名解释为“用私钥加密”,这充其量是不准确的)。

对两种用途使用相同的密钥是可能的,但并不真正推荐,因为两种用途之间的相互作用尚未得到充分探索;此外,加密密钥和签名密钥通常具有不同的生命周期,具有不同的保护机制(例如,您通常希望保留用于加密的私钥的备份,以防止数据丢失:丢失私钥意味着丢失所有数据)已使用该密钥加密;当您这样做时not想要签名密钥的备份)。

你的场景有点不清楚。不对称加密使用公钥,而生成签名则使用私钥。如果A想要向B发送带有加密(为了保密)和签名(为了完整性)的消息,那么A将使用B知道私钥的公钥对数据进行加密; A 将使用 B 知道其公钥的私钥对数据进行签名。这需要two密钥对:一对用于加密和解密(A 加密,B 解密,B 知道私钥),另一对用于签名(A 签名,B 验证,A 知道私钥)。如果 A 和 B 都知道私钥,那么他们就有一个共享的秘密,并且使用起来更简单(也更快)对称的加密(AES http://en.wikipedia.org/wiki/Advanced_Encryption_Standard)和完整性检查(HMAC https://www.rfc-editor.org/rfc/rfc2104).

标准免责声明:你看起来像是在设计自己的加密协议。不要这样做。这条道路会导致无数其他聪明人偶然发现的同样的安全失败。使用经过尝试和验证的协议,例如SSL/TLS https://www.rfc-editor.org/rfc/rfc5246 or OpenPGP https://www.rfc-editor.org/rfc/rfc4880.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RSA可以同时用作加密和签名吗? 的相关文章

  • Python 中 GCM 模式下的 AES [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道 python 库或 c 库的包装器可以通过以下方式轻松提供经过身份验证的 AESGCM mo
  • FileSink、StringSink、Filesource、StringSource Crypto++ 之间有什么区别

    我正在读取图像 对其进行加密 然后解密 目标是最终循环并记录该过程完成所需的时间 目前我所拥有的它读取文件 然后加密它 加密它 然后根据恢复的数据创建另一个文件 我不需要用解密的图片创建另一个文件 以前我一直在使用StringSource
  • Java 中所有 UTF-8 字符的维吉尼亚密码

    我有一个简单的函数 用于通过 Java 中的 Vigen re 加密字符串 我省略了解密 因为这只是计算新值的行中的 而不是 但此功能仅适用于普通字母 A Z 如何更改该函数以使其支持小写字母以及大写字母和所有其他 UTF 8 字符 pub
  • PHP使用RSA私钥解密数据

    我有一个程序 使用 C rsa 公钥加密密码 输出字节数组 为了让我轻松传输它并维护数据 我将字节直接转换为十六进制字符串 现在这就是我遇到问题的地方 我将发布数据发送到我的脚本 现在不确定将其转换为什么以及如何解密它 我正在尝试使用htt
  • Spring属性解密

    我们混合了一些尚未迁移到 spring boot 或 spring cloud 的遗留 Spring 应用程序以及 Spring Boot 应用程序 我正在创建一个 Spring 组件 如果属性值已加密且具有前缀 则该组件将在加载环境时自动
  • 使用 NSValueTransformer 加密 iOS 核心数据

    我正在尝试使用 Core Data 和 CommonCrypto 加密数据 我正在尝试使用 NSValueTransformer 来延迟加密和解密 但是 当我现在尝试将加密数据保存到持久存储协调器时 它失败了 每次我尝试将数据保存到数据库时
  • 如何以编程方式改进破解替换密码?

    我已经编写 正在编写 一个程序来分析加密文本 并尝试使用频率分析来分析和破解它 加密文本采用每个字母替换其他字母的形式 即 a gt m b gt z c gt t 等 所有空格和非字母字符均被删除 大写字母变为小写 一个例子是 原始输入
  • git 在推/拉时加密/解密远程存储库文件

    在传输到远程存储库之前是否可以通过 git Push 自动加密文件 并在 git pull 时自动解码它们 也就是说 如果我有一些与 git 存储库共享访问的远程服务器 并且我不希望我们的项目在未经许可的情况下被盗 也许在推之前和拉之后有一
  • 使用 aes_256_cbc 密码加密时的默认 IV 是多少?

    我在一个文件中生成了一个随机 256 位对称密钥 用于使用 OpenSSL 命令行加密一些数据 稍后我需要使用 OpenSSL 库以编程方式解密该数据 我没有成功 我认为问题可能出在我正在使用 或没有使用 的初始化向量中 我使用以下命令加密
  • AES:如何检测输入的密码是否错误?

    A text s已加密 s2 iv Crypto Cipher AES new Crypto Hash SHA256 new pwd digest Crypto Cipher AES MODE CFB iv encrypt s encode
  • AES-256 加密和 Apple iTunes 导出限制

    我有一个很大的问题 我开发了 3 个应用程序 2 个用于 IOS 1 个用于 mac osx 来加密文件RNCryptor https github com rnapier RNCryptor 女巫是一个CCCryptor AES 加密 包
  • OpenSSL 和 CryptoJS SHA256 加密转换

    我的问题是 OpenSSL 的新版本与 CryptoJS 的默认设置不兼容 openssl enc 用于基于密码的密钥派生的默认哈希值 1 1 0 中更改为 SHA256 而较低版本中更改为 MD5 https unix stackexch
  • 将 Azure CDN 与共享访问签名结合使用

    我正在尝试合并 Azure 来存储应用程序的大部分文件 我想将这些文件上传到 azure 中的私有容器和私有 blob 并通过 Azure CDN 将这些上传内容复制到所有其他节点 仍然作为私有容器和 blob 然后 我希望我的应用程序向存
  • RSA_public_decrypt 和 MS Crypto API 等效项

    我正在尝试开发许可证验证解决方案 许可证使用 OpenSSL 在服务器上进行编码RSA private encrypt功能 对于 Mac OS X 使用RSA public decrypt它就像一个魅力 在 Windows 上 我必须使用非
  • 如何使用 OpenSSL 从 .cer 中提取 RSA 公钥并将其存储在 .pem 中?

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

    任何人都可以为我指明正确的方向 以便能够加密字符串 并返回带有加密数据的另一个字符串吗 我一直在尝试使用 AES256 加密 我想编写一种需要两个 NSString 实例的方法 一个是要加密的消息 另一个是用于加密它的 密码 我怀疑我必须生
  • java.io.IOException:无效的密钥库格式

    有谁知道如何解决这个问题 我尝试了很多方法 但没有一个有效 当我单击更多详细信息时 我得到以下信息 at sun security provider JavaKeyStore engineLoad Unknown Source atsun
  • 未提供 Bouncycastle 加密算法

    我正在尝试将 BouncyCastle 与 android 一起使用来实现 ECDH 和 EL Gamal 我添加了 bouncycastle jar 文件 bcprov jdk16 144 jar 并编写了一些适用于我的计算机 jvm 的
  • 将 CryptoStream 解密为 MemoryStream

    我编写了一个过程 其中文件被加密并上传到 Azure 然后必须解密下载过程 这会失败并出现 填充无效且无法删除 错误 或 要解密的数据长度为无效的 错误 我在网上尝试了很多解决方案 包括C 使用 RijndaelManaged 和 Cryp
  • ECB、CBC、CFB哪种加密模式

    我的 php 脚本和 c 应用程序将相互传递一个 32 个字符长的哈希字符串 最佳模式是什么 我想到了 ECB 但我不确定 因为它说如果使用超过 1 个区块就不要使用 我如何知道该块有多大 他们偶尔会传递一个大文本文件 这将是加密此 CBC

随机推荐