问题标签 [keccak]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
149 浏览

c - 我不知道什么可能被窃听

所以我正在尝试编写自己的“keccaksum”程序,除了运行

输出

大多数时候和

一些时间。

这里的相关功能是

这让我相信这段代码的某些部分是未定义的,我不知道什么可能是未定义的。

0 投票
1 回答
2088 浏览

hash - Keccak / SHA-3 的不同哈希与几个程序?

我正在开发 keccak 海绵函数,并且对哈希结果有一些奇怪的行为。

我使用 24 位(3 个字节)的字符串“abc”。http://www.di-mgt.com.au/sha_testvectors.html上的 SHA-3 测试向量表明 SHA3-512 的结果如下:

来自测试向量的 SHA3-512 b751850b1a57168a 5693cd924b6b096e 08f621827444f70d 884f5d0240d2712e 10e116e9192af3c9 1a7ec57647e39340 57340b4cf408d5aec5f308276

我还使用了 cryptopp 5.62 版,它给了我这个输出:

CryptoPP 18587dc2ea106b9a1563e32b3312421ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a65b19d77aa511a9d00bb96

我在 Windows 上使用 HashTab 5.2.0.14,它为我提供了具有“abc”相同输出的文件:

哈希表 5.2.0.14 18587dc2ea106b9a1563e32b3312421ca164c7f1f07bc922a9c83d77cea3a1e5d0c69910739025372dc14ac9642629379540c17e2a65d9d09d77aa511a

因此,有一些参考文献,但其中之一与其他参考文献不同。网站上解释说,输入消息附加了 FIPS-202 草案中定义的 2 位“10”。那么,CryptoPP 和 HashTab 可能使用另一种实现,但是是哪一种呢?

现在我有我的程序和来自 keccak 站点的“参考代码”以及 python 中的另一个实现:

我的程序为“abc”返回这个哈希值:

我的程序 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E6760

这是http://keccak.noekeon.org/files.html上的 keccak 参考代码 ( http://keccak.noekeon.org/KeccakReferenceAndOptimized-3.2.zip ),它计算相同的值:

Keccak-Reference 3.2 Message of size 2040 bits with Keccak[r=1024, c=576] 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E6760 (truncated to the same length)

这是来自https://github.com/mgoffin/keccak-python/blob/master/Keccak.py的 python 实现,结果相同:

keccak-python Value after squeezing : 20FF13D217D5789FA7FC9E0E9A2EE627363EC28171D0B6C52BBD2F240554DBC94289F4D61CB57DF72DF08AAC4366022D5DF23E703B8FDFF6306021DB4D5E67601173D04BF5AEC3EBBCA87696355C5FB4D72D00D2CC4F843A0A3A0ED8924A16FC37769A3DB7C3A84F31E92375A7D74A0136D80A647FBC5AF8D733B43873A3709F

所以我的问题:

1) 根据 NIST 使用 FIPS 202 制定的规范,Keccak 和 SHA-3 是否具有不同的输出?

2)为什么我现在有三个不唯一的不同哈希值?

3) SHA3-512 的容量是否改变为 512 位容量和 1600-512 位速率?这是我在有关 SHA-3 的演示文稿中读到的另一个区别,但我在 FIPS-202 文档中没有找到它。

非常感谢!

问候,

布拉克

0 投票
1 回答
301 浏览

c - 我的 C 程序在 Keccak 实现中打印 0xE 而不是 0x0E

我正在研究 Keccak(SHA-3) 的实现,例如我得到了这个:

Keccak("abc") = 3A985DA74FE225B2 4 5C172D6BD390BD855F 8 6E3E9D525B46BFE24511431532

而不是(根据:http ://www.di-mgt.com.au/sha_testvectors.html )

3A985DA74FE225B2 04 5C172D6BD390BD855F 08 6E3E9D525B46BFE24511431532

如您所见,我的程序错过了“0x00”,我不确定我做错了什么。

对不起,这是我的主要方法代码:

0 投票
2 回答
886 浏览

hash - 散列函数(例如 SHA)是否独立于平台?

我需要比较来自不同平台的散列数据。使用的哈希函数是 Keccak 的 SHA3。

我首先假设哈希生成的值是平台无关的;但后来这两个在线工具证明了我的相反:

这是我对单词数据(sha3 256bits)进行哈希处理时的相应输出:

  • 8f54f1c2d0eb5771cd5bf67a6689fcd6eed9444d91a39e5ef32a9b4ae5ca14ff
  • efda893aa850b0c0e61f33325615b9d93bcf6b42d60d8f5d37ebc720fd4e3daf

我对这个主题的了解非常有限,但我一直认为哈希函数是平台无关的(这就是我们使用 MD5 校验和的原因,对吧?)。

任何关于这个主题的光都将受到高度赞赏。

最好的。

0 投票
1 回答
177 浏览

macos - 气苹果语法错误

我尝试将此程序集文件:https ://github.com/gvanas/KeccakCodePackage/blob/master/SnP/KeccakF-1600/OptimizedAsmX86-64/KeccakF-1600-x86-64-gas.s转换为苹果语法。(旧语法)

我将 .eq 替换为 #define,将 .global 替换为 .globl,删除 .type、.size。

再次出现一些错误(我使用clang):

1 --

错误:指令 subq *25, %rsp 的操作数无效(指令为 : subq $8*25, %rsp

2 --

后端错误:64 位模式不支持 32 位绝对寻址:

movb KeccakPowerOf2(arg2), %al

xorb %al, (arg1)

#define arg1 %rdi

#define arg2 %rsi

KeccakPowerOf2: .byte 1, 2, 4, 8, 16, 32, 64, 128

3 --

后端错误:64 位模式不支持 32 位绝对寻址

leaq KeccakLaneComplementTable, arg5

#define arg5 %r8

`KeccakLaneComplementTable:

有任何想法吗 ?

谢谢

0 投票
1 回答
52 浏览

random - PRNG 用于基于哈希的身份验证

我正在尝试使用http://www.springer.com/us/book/9783540887010https://www.imperialviolet.org/2013/07/中描述的“树链”结构来实现基于哈希的身份验证18/hashsig.html

为此,我需要一个(确定性的)PRNG 能够从种子/密钥和私钥列表的索引中生成大量私钥。我想简单地 Hash(secretkey + index) 来生成密钥,但是在阅读了一些 NIST 对 PRNG 的建议之后,我想知道是否有更好/更安全的方法?假设 sha-3 作为散列函数,这种 Hash(secretkey + index) 方法是否存在严重问题?

谢谢

0 投票
1 回答
308 浏览

c++ - Keccak 输出错误

我正在尝试使用这个官方库运行 Keccak 224。不幸的是,我从函数中得到了错误的哈希值。我怀疑这是图书馆的错,而是我做错了什么。

这就是我正在尝试的:

带有 SHA-3-224 (Keccak) 的“abc”的正确哈希应该是:

e642824c3f8cf24a d09234ee7d3c766f c9a3a5168d0c94ad 73b46fdf

但我只是从这种调用图书馆的方式中得到废话。我究竟做错了什么?一个小例子会很好,它可以解释我如何达到预期的结果以及我做错了什么。

0 投票
1 回答
546 浏览

cryptography - KECCAK 中使用的 Merkle-Damgård 和海绵函数之间的区别

你好,漂亮的 Stackoverflow 社区!

我很难理解 Merkle-Damgård 构造和 KECCAK 中使用的海绵函数之间的区别。Merkle-Damgård 构造迭代地接收消息块,但就我在描述中发现的内容而言,海绵函数不也是如此吗?两者的插图看起来非常相似,我只是找不到我真正理解的解释。有人可以更容易地解释差异吗?

0 投票
1 回答
10750 浏览

solidity - 在solidity 中,keccak 256 函数返回一个哈希值。keccak 256 返回多少位?

我使用了以下命令: keccak256('abc', 'pqr', 123); 一旦我运行它,我就会得到一个值。这是多少位值?

0 投票
0 回答
57 浏览

macos - 气苹果语法错误再次

在这个指令上:

jmp *KeccakP1600_Permute_NroundsTable-8(rT1)

铿锵说道:

错误:64 位模式不支持 32 位绝对寻址

在哪里

KeccakP1600_Permute_NroundsTable:

#define rT1 %rax

我该如何解决?

谢谢