You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FIPS 186-4生成器g可验证规范生成Python代码返回False问题求助

FIPS 186-4 DSA生成器g实现结果不匹配问题排查

我此前在Crypto StackExchange提问过该问题,已采纳答复给出的修改建议调整代码,但运行后比对结果仍然返回False。

更多背景:我正在学习FIPS 186-4标准,其第43页给出了A.2.3 Verifiable Canonical Generation of the Generator g算法,用于生成DSA的生成器。我基于该算法编写了如下Python代码,使用的测试数据来自NIST公开的FIPS-186-4 DSA测试向量,但代码运行后和预期的G值比对始终返回False,求各位帮忙排查问题。

算法说明图

from Crypto.Hash import SHA256

P = 0xff600483db6abfc5b45eab78594b3533d550d9f1bf2a992a7a8daa6dc34f8045ad4e6e0c429d334eeeaaefd7e23d4810be00e4cc1492cba325ba81ff2d5a5b305a8d17eb3bf4a06a349d392e00d329744a5179380344e82a18c47933438f891e22aeef812d69c8f75e326cb70ea000c3f776dfdbd604638c2ef717fc26d02e17
Q = 0xe21e04f911d1ed7991008ecaab3bf775984309c3
domain_parameter_seed = b'180180ee2f0ae4a7b3a1ab1b8414228913ef2911'
ggen = b'6767656e'
index = b'79'
G = 0xc52a4a0ff3b7e61fdf1867ce84138369a6154f4afa92966e3c827e25cfa6cf508b90e5de419e1337e07a2e9e2a3cd5dea704d175f8ebf6af397d69e110b96afb17c7a03259329e4829b0d03bbc7896b15b4ade53e130858cc34d96269aa89041f409136c7242a38895c9d5bccad4f389af1d7a4bd1398bd072dffa896233397a


def compute_gen():
    k = (P - 1) // Q
    for count in range(1, 0xffff):
        U = domain_parameter_seed + ggen + index + count.to_bytes(2, 'big')
        W = int.from_bytes(SHA256.new(U).digest(), 'big')
        g = pow(W, k, P)
        if g != 1:
            break
    return g


print(compute_gen() == G)

内容的提问来源于stack exchange,提问作者keep_learning

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 20:36:01