Algorithm 压缩签名
假设我有一个由一方创建的64字节签名(来自ed25519)。该方必须进一步压缩签名,使其在基2048中为4-8位。然后,第二方必须能够根据数据重新创建签名 以下是十进制签名的示例:Algorithm 压缩签名,algorithm,math,computer-science,ed25519,Algorithm,Math,Computer Science,Ed25519,假设我有一个由一方创建的64字节签名(来自ed25519)。该方必须进一步压缩签名,使其在基2048中为4-8位。然后,第二方必须能够根据数据重新创建签名 以下是十进制签名的示例: 567080530494689967561475118494729480814370250578502105830828772557312792414497721283758041824043290237573798765382831862222068237988634991262293689098 如何将此签名压缩
567080530494689967561475118494729480814370250578502105830828772557312792414497721283758041824043290237573798765382831862222068237988634991262293689098
如何将此签名压缩到以2048为基数的大约4位数字?这是否可能使用?签名是64字节,因此有256^64或2^512个可能的签名。仅当在2^512个可能的签名中使用最多2048^8=2^88个时,才可能进行此压缩量。Ed25519的情况似乎极不可能如此
编辑:这个问题被修改和澄清,询问这里是否可以进行数独压缩。有667090375202102072936960=2^72.49。。。填写数独网格的方法,比9^81=2^256.7小得多。。。标记每个细胞的方法。但签名算法的情况不应如此,因此,从理论上讲,这种信息压缩是不可能的。我认为这是不可能的。至少在您说“第二方必须能够从数据中重新创建签名”的部分 这背后的简单原因是熵,即每个签名中包含的信息量。首先,让我们看看在您描述的每种“格式”中,最多可以存储多少信息
- ed25519签名:64字节,即512位(因此可能为2^512,约为1.34e154)
- 以2048为基数的4位数字,即2048^4个可能性,log2((2^11)^4)=44
- 8位(因为你说的是4-8),同样的推理,88位
因此,这意味着,如果您应用从签名到44-88位的转换,您将丢失信息,几乎占用您的64字节。正如无法从校验和中重新创建下载的文件一样,这也使得无法从计算的哈希中重新创建ed25519签名。一些快速问题。。。你对人类可读性的标准是什么?另外,您是要压缩原始的64字节值,还是该64字节值的十进制表示形式?是否涉及任何安全性(“压缩”是否包括用于秘密共享随机数的字节?那个随机数每次都不同吗?你怎么知道签名是可压缩的(有熵)?@templatetypedef人类可读性不是b