是否有用于加密作为数字签名的标准格式



发送带有非对称加密加密的消息时,例如

漫长的漫长,很长的消息在这里。// encrypted with recipents public key

John Doe // encrypted with own private key

签名

一个人想与自己的数字签名保持一致吗?是否有标准格式或用于签名零件的广泛使用的约定?甚至,是否有任何惯例,或者完全随机,每个人都想放在那里?

编辑:

我想我的问题本身本身并不意味着标准。关于约定,如果有人在即时信使或电子邮件中发送示例格式消息。

首先 - 用户用其私钥签名,而不是加密。

现在是主题:

有几种协议可以传递加密和签名的数据。

如果您正在使用(Web)服务,则可以查看WS安全性或XML签名

如果您正在寻找更广泛的标准,则可以搜索" CMS加密消息语法"或PKCS#7

也有特定工具的协议,例如使用openssl,文档内签名(pdf,word,..)...不是标准本身,而是常用。

您在评论中提到:

首先 - 用户使用其私钥签名,而不是加密。是的,但是签名并不意味着使用您的私钥加密签名(以便任何人都可以使用您的公共密钥检查),就像我的示例中一样?

尽管此评论的答案通常是: no

密码签名可以以许多不同的方式构建。在RSA中,签名操作类似于加密的某些元素,但这是一个巧合。

例如,以一些椭圆曲线的Schnorr签名方案:

(In this example, G is a base point for some secure elliptic curve E.
 All variables between brackets are scalars modulo the order of E.)

Setup:
  Alice has a private key x (random).
  Bob has Alice's public key P_A = [x]G.
Alice signs a message m:
  k := random()
  Q := [k]G
  c := H(Q||P_A||m)
  r := k + c*x
  Alice outputs s := (Q, r)
Bob verifies s over m:
  c := H(Q||P_A||m)
  Check if [r]G == Q + [c]P_A

您可以看到,这里没有"加密"的真正概念。它是 Just 一个协议。

最新更新