Я пытаюсь внедрить AES-256-GCM в Python без использования внешних библиотек, и я внедрил шифрование и дешифрование в AES-256-ECB, AES-256-CBC, AES-256-CTR и AES-256-ofb-моде, и я также внедрил базу и декодирующую и декодирующую плюс, и все, что у меня есть, и все, что я имею в хорошем состоянии, и у меня есть все, что я имею в хорошем состоянии, и у меня есть все, что я имею в действие, и у меня есть все, и все, что у меня есть, и все, что я имею в действие. строго против различных источников. < /p>
Вы можете увидеть более раннюю версию моей работы здесь, я сам реализовал код в соответствии с различными источниками. AES-256-GCM, которая является моей первоначальной целью, но я не могу ее реализовать. В настоящее время у меня нет возможности проверить, были ли мои результаты правильными. < /P>
Я нашел эту спецификацию и это и это.GHASH_POLY = 0xE1000000000000000000000000000000
def ghash_mul(a: int, b: int) -> int:
c = 0
for i in range(127, -1, -1):
if a >> i:
c ^= b
if b & 1:
b = (b >> 1) ^ GHASH_POLY
else:
b >>= 1
return c
< /code>
Я нашел это, мне легко адаптировать код к моим потребностям, но я не могу проверить его правильности.def ghash_mult(x, y):
res = 0
for i in range(127, -1, -1):
res ^= x * ((y >> i) & 1)
x = (x >> 1) ^ ((x & 1) * GHASH_POLY)
return res
< /code>
Я избавился от блоков комментариев и утверждать, как они не были необходимы.In [354]: ghash_mul(255, 255)
Out[354]: 184305769290552241502318497701996581888
In [355]: ghash_mult(255, 255)
Out[355]: 184305769290552241502318497701996581888
In [356]: ghash_mult(12345, 255)
Out[356]: 176413478065579303506952143281585670830
In [357]: ghash_mul(12345, 255)
Out[357]: 184305769290552241502318497702000014804
In [358]: ghash_mul(MAX128, MAX128)
Out[358]: 324345477096475565862205004031948663466
In [359]: ghash_mult(MAX128, MAX128)
Out[359]: 324345477096475565862205004031948663466
In [360]: ghash_mult(999, 999)
Out[360]: 184305769290552241502318497701997396837
In [361]: ghash_mul(999, 999)
Out[361]: 237807196120895105386696731878281261212
< /code>
Какой правильный? Или они оба не правы? Как я могу правильно реализовать функцию умножения, используемая в ghash?
Подробнее здесь: https://stackoverflow.com/questions/795 ... unction-in
Как правильно реализовать функцию умножения, используемая функцией ghash в AES-256-GCM? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение