Используя C # AesCryptoServiceProvider, IV, кажется, влияет только на первый блок во время расшифровки - PullRequest
0 голосов
/ 17 февраля 2012

Я новичок в этой теме, но я провел несколько дней исследований и испытаний.Я запускаю пример кода C #, чтобы проверить некоторые функциональные возможности AesCryptoServiceProvider.Тестовый проект, с которым я смотрел, пришел из: http://msdn.microsoft.com/en-us/library/system.security.cryptography.aescryptoserviceprovider.aspx

Я изменил пример кода, чтобы я мог указать свой собственный ключ и вектор инициализации, использовать 128-битные размеры блоков и ключей и указать режим работы CBC дляаргументы объекта AES для CreateEncryptor () и CreateDecryptor ().

Я вижу, что использование произвольного IV для дешифрования влияет только на результаты первого 16-байтового блока - все остальные байты дешифруютсяуспешно.

В: На основании приведенной ниже диаграммы представляется, что вектор инициализации должен оказывать влияние на каждый блок зашифрованных шифровальных данных.Итак, почему любой выбор IV приводит к успешной расшифровке после 16-го байта (при условии, что используется правильный ключ)?Если это ожидаемый результат, то предназначен ли IV только для очень маленьких наборов данных?http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29

Спасибо.

...