Для тестирования я хочу настроить любой алгоритм .Net AES для получения результатов, приведенных в публикации FIPS 197 (Приложение B).
Я пробовал разные параметры (размер блока = размер ключа). = размер обратной связи = 128, разные CipherModes и дополнения, IV, ...), но я не могу получить результаты, приведенные в качестве примера. Я также пробовал различные реализации (RijnadaelManaged, AesCryptoServiceProvider, ...).
Есть ли способ имитировать данный пример?
Это моя текущая реализация:
var data = new byte[] { 0x32, 0x43, 0xf6, 0xa8, 0x88, 0x5a, 0x30, 0x8d, 0x31, 0x31, 0x98, 0xa2, 0xe0, 0x37, 0x07, 0x34 };
var key = new byte[] { 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c };
var expected = new byte[] { 0x39, 0x25, 0x84, 0x1d, 0x02, 0xdc, 0x09, 0xfb, 0xdc, 0x11, 0x85, 0x97, 0x19, 0x6a, 0x0b, 0x32 };
using (var aesAlg = new System.Security.Cryptography.RijndaelManaged())
{
aesAlg.Key = key;
aesAlg.IV = key;
aesAlg.KeySize = 128;
aesAlg.Mode = System.Security.Cryptography.CipherMode.ECB;
aesAlg.BlockSize = 128;
aesAlg.FeedbackSize = 128;
var encryptor = aesAlg.CreateEncryptor();
using (MemoryStream msEncrypt = new MemoryStream())
{
using (var csEncrypt = new System.Security.Cryptography.CryptoStream(msEncrypt, encryptor, System.Security.Cryptography.CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
//Write all data to the stream.
swEncrypt.Write(data);
}
var actual = msEncrypt.ToArray();
Assert.AreEqual(expected.GetLength(0), actual.GetLength(0));
for (int i = 0; i < actual.GetLength(0); i++)
{
var expectedValue = expected;
var actualValue = actual;
Assert.AreEqual(expectedValue, actualValue);
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... f-fips-197
Настройте .Net AES для получения результатов FIPS 197. ⇐ C#
Место общения программистов C#
-
Anonymous
1715712158
Anonymous
Для тестирования я хочу настроить любой алгоритм .Net AES для получения результатов, приведенных в публикации FIPS 197 (Приложение B).
Я пробовал разные параметры (размер блока = размер ключа). = размер обратной связи = 128, разные CipherModes и дополнения, IV, ...), но я не могу получить результаты, приведенные в качестве примера. Я также пробовал различные реализации (RijnadaelManaged, AesCryptoServiceProvider, ...).
Есть ли способ имитировать данный пример?
Это моя текущая реализация:
var data = new byte[] { 0x32, 0x43, 0xf6, 0xa8, 0x88, 0x5a, 0x30, 0x8d, 0x31, 0x31, 0x98, 0xa2, 0xe0, 0x37, 0x07, 0x34 };
var key = new byte[] { 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c };
var expected = new byte[] { 0x39, 0x25, 0x84, 0x1d, 0x02, 0xdc, 0x09, 0xfb, 0xdc, 0x11, 0x85, 0x97, 0x19, 0x6a, 0x0b, 0x32 };
using (var aesAlg = new System.Security.Cryptography.RijndaelManaged())
{
aesAlg.Key = key;
aesAlg.IV = key;
aesAlg.KeySize = 128;
aesAlg.Mode = System.Security.Cryptography.CipherMode.ECB;
aesAlg.BlockSize = 128;
aesAlg.FeedbackSize = 128;
var encryptor = aesAlg.CreateEncryptor();
using (MemoryStream msEncrypt = new MemoryStream())
{
using (var csEncrypt = new System.Security.Cryptography.CryptoStream(msEncrypt, encryptor, System.Security.Cryptography.CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
//Write all data to the stream.
swEncrypt.Write(data);
}
var actual = msEncrypt.ToArray();
Assert.AreEqual(expected.GetLength(0), actual.GetLength(0));
for (int i = 0; i < actual.GetLength(0); i++)
{
var expectedValue = expected[i];
var actualValue = actual[i];
Assert.AreEqual(expectedValue, actualValue);
}
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78479616/configure-net-aes-to-produce-results-of-fips-197[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия