Как правильно реализовать функцию умножения, используемая функцией ghash в AES-256-GCM?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как правильно реализовать функцию умножения, используемая функцией ghash в AES-256-GCM?

Сообщение Anonymous »

Я пытаюсь внедрить 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как зашифровать AES-GCM в программировании на C Sharp? Я хочу зашифровать и расшифровать AES-GCM на языке C Sharp. Но я
    Anonymous » » в форуме C#
    0 Ответы
    54 Просмотры
    Последнее сообщение Anonymous
  • Как мне зашифровать с помощью aes-256-gcm и поместить его в файл pkcs7?
    Anonymous » » в форуме C#
    0 Ответы
    111 Просмотры
    Последнее сообщение Anonymous
  • Как настроить сервер с: TLS1.3, обмен ключами: ECDHE-SECP256R1-RSA-PSS-RSAE-SHA384, шифр: AES-256-GCM, MAC: AEAD, ALPN:
    Anonymous » » в форуме C#
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Aes-256-GCM OpenSSL > nodeJS
    Anonymous » » в форуме C++
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Aes-256-GCM OpenSSL > nodeJS
    Anonymous » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»