击败 RSA 哈希验证 - QNX 工作示例

逆向工程 加密 qnx
2021-06-14 23:13:52

我真的很喜欢这篇文章中的答案:

击败 rsa 哈希验证

但是我不太明白这部分:

“将签名 s 提高到 3 个模数 n 的幂,我们最终得到以下值”

我看到了字符串的来源,但有人可以将我指向一个框填充操作或一些 OpenSSL 代码,以便我可以生成显示的结果字符串。

1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff003021300906052b0e03021a050004145e3246e50a4dad079a61f99fa3297c01d802e038

我有一个带有 QNX 的 VAG MIB2,它使用元校验和和签名。所以我觉得如果我能效仿所描述的过程,我就会去看看它会走向何方。

1个回答

提示就在引用的文本中:

将签名 s 提高到 3 模数 n 的幂,我们最终得到以下值

这是经典的RSA 解密操作。

在我们的例子中:

s=0xa73e111de512e09bad2dc08eff685a384fc032192a20fd1e242ad64af5b509a76a7432f754aff0d6b74a7ec2072cbb11e91f68f569508b77712d1869edd6d0b9923eb77ba815dba8e44d5e09412cdf2e830518f3b38d48df892a3a0c65cc67f109e5e0f5f06ce0376d032ab21051510f3dab7f75fcdf54a96d8aa7f3c617f76d
e=3
n=0xC0F389EEC7B66C9DC736508FF88AEB1FB113942EAD020814D08D29E868F14B2086BCD7DDCCBA7559F999E76D24619660BBE17434DA59988087F2A99CD465B1FF423522B78CB0DE463A669613D356DFA9E86E0E2E0B6DAB5DE89131C5A0727AEAB1767278AB101DCD9C3CFC1026705C1DAB3BF53BF50AFAFB3F52DA2CEB0BEE57

可以在任何支持长数字的计算器中进行计算。我通常使用 Python,因为它具有接受模pow 函数

>>> x = pow(s, e, n)
>>> hex(x)
'0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff003021300906052b0e03021a050004145e3246e50a4dad079a61f99fa3297c01d802e038L'
>>>