SO上有一个问题:
What is the difference between encrypting and signing in asymmetric encryption?
我的问题不是重复的。我问这两个程序是否有区别。
我有一个openssl C ++ API来签名和验证消息。让我们说两个函数:
签名
验证
比方说,交换消息的两个方面是 A 和 B 。
货币符号函数使用 A_privateKey ,验证函数使用 B_publicKey 。
现在,我想对邮件的某些部分进行加密。
那么,我可以只使用 sign 函数和 B_publicKey 吗?
还是加密算法完全不同,我需要实现一个新功能?
或者在 sign 函数中进行了一些修改(例如删除生成的哈希)是否可行?
答案 0 :(得分:0)
Now, I want to encrypt some part of the message.
So, could I do it just using sign function with B_publicKey?
符号功能的输出是原始消息的加密的哈希。如果“ A”按照您的描述传输 sign 的输出,则B唯一能做的就是将其解密回原始消息的哈希值。 他没有实际的消息。
由于不对称加密可能是一项计算量很大的操作,无法很好地扩展长消息,因此标准模式如下:
然后鲍勃这样做:
可能还缺少很多其他安全主体,但以上只是一般性想法。