Рейтинг:0

Правильная реализация AES-256 для отдельного блока E_k, который затем используется в AES-GCM.

флаг in

Моя первая цель — внедрить AES-GCM в PowerShell 5.1, поскольку не существует реализации, не использующей внешние библиотеки dll.

Согласно схеме шифрования GCM: GCM-шифрование

блок E_k должен соответствовать 128-битному блоку, а ввод зашифрован AES с определенным ключом K.

Если вначале я хочу сосредоточиться только на блоке E_k и хочу реализовать непосредственно там алгоритм AES, правильно ли будет сказать, что в этом случае не применяется режим блочного шифрования, потому что я фокусируюсь только на самом блоке?

Еще одно сомнение: в случае GCM, если каждый E_k принимает в качестве входных данных 12 байтов IV + counter_value и каждый блок E_k имеет размер 16 байтов (128 бит), IV дополняется 0 (или другим предопределенным значением) для следующих 4 байты, чтобы достичь размера 16 байт? Итак, для каждого блока у нас есть, например, [БЛОК 0] 7808B1A23DDC2F9D90A4BCED00000000; [БЛОК 1] 7808B1A23DDC2F9D90A4BCED00000001; [БЛОК 2] 7808B1A23DDC2F9D90A4BCED00000002; и так далее?

Может ли это отвечать применяться также в моем случае так:

  • можно ли применить «сырой» AES, используя ECB для одного блока E_k?
  • заполнение открытого текста (в нашем случае 12-байтового IV) до 16 байтов с 4 байтами нулей?

Надеюсь информация ясна.

Спасибо

fgrieu avatar
флаг ng
Вопрос неудобно слишком близок к вопросу программирования, который не соответствует [теме] (https://crypto.stackexchange.com/help/on-topic). Тем не менее: вам нужна настоящая [спецификация AES-GCM] (https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf#page=23). Да, необработанный AES соответствует режиму ECB и может использоваться для реализации полей $E_k$ в вопросе. Я думаю, что ваше описание IV ошибочно, а первый блок заканчивается на 00000001h. Но опять же, читайте спецификацию. И я не одобряю написание серьезной криптографии в PowerShell.
флаг in
@fgrieu Не беспокойтесь о «программировании», для меня была важна «теоретическая» часть. С этой информацией я могу приступить к программной части самостоятельно. Я просто не понимаю, почему мое описание IV не соответствует действительности. Первый блок заканчивается не на 00000001h, а на 00000000h. Я продолжаю редактировать вопрос и тело, чтобы больше сосредоточиться на «теории», а не на «программировании». В любом случае, спасибо
fgrieu avatar
флаг ng
Я говорю, что ваша IV отличается от единицы из-за уравнения $J_0 = IV\mathbin\|0^{31}\mathbin\|1$ (когда $IV$ является 96-битным, что соответствует 12-байтовому вопрос) в связанной спецификации. По крайней мере, я уверен, что это означает, что $J_0$ заканчивается на 00000001h.
флаг in
Извините, еще раз, в "первом блоке" для тега аутентификации счетчик начинается с 1. Я слепой. «Счетчик 0» меня смутил. Ты прав. И я также читаю, что «IV, установленный на все нулевые байты, может привести к утечке части значения GHASH». Еще раз спасибо.
флаг us
`внедрить AES-GCM в PowerShell 5.1, начиная с... `, когда я вижу пользовательские реализации, меня обычно беспокоит устойчивость к атакам по сторонним каналам. если вы действительно ищете более безопасное решение, почему бы не позвонить в e. г. Команда OpenSSL?
флаг in
@gusto2 да, ты прав. В моем случае я хочу попробовать меньше зависеть от внешнего деп, но в моей конкретной потребности, на самом деле, мне нужно только расшифровать, взяв в качестве входных данных дополнительные данные аутентификации, IV, зашифрованные данные и тег аутентификации, поэтому я собираюсь реализовать просто в личных целях, исключительно функция расшифровки.Но для этой цели мне нужно было лучше понять это сомнение, которое я объяснил в процессе шифрования выше.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.