Перейти к содержанию
    

Алгоритм шифрования DES вопрос генерации ключей.

Здравствуйте.

 

Разбираюсь с DES, знаний по этому вопросу маловато.

 

Натаскал некотрое количество исходников.

Пытаюсь зашифровать одним расшифровать другим ничего не получается.

 

Начал разбираться оказывается уже на этапе генерации ключей возникает ошибка.

 

Поясняю

 

В каждой реализации есть функция генератора (расширения) ключей из

64 битного исходного ключа получаем массив из 16, 48 битных.

 

Так вот при одинаковом исходном ключе на выходе ключи разные.

 

Имею в виду, не в массиве из 16 ключей, там они и должны быть разные, а в различных реализациях алгоритма они разные.

 

Перепробовал пять исходников и только в двух реализациях ключи совпали.

 

Но тут загвоздка у меня есть реализация DES c которой мне нужно работать и она вроде рабочая, в ней генерация ключей построена на таблицах.

 

Таблицы большие и в микроконтроллер не лезут.

 

Но самое главное выходной результат ее работы, не совпадает ни с одной реализацией из интернета.

 

Да для чистоты эскпиремента собираю все в одной среде.

 

Может я чего не так делаю, ну можно допустить что в скачаных примерах ошибки.

 

Может я не правильно понимаю сам процесс, (теорию читал и перечитывал, в общих чертах принципы понятны) не понятна

реализация генерации ключей.

Вроде как DES это стандарт и что бы там не было при одинаковом ключе на входе должны получить одинаковые ключи.

 

Короче в голове каша.

 

Подскажите чем можно проверить конечную работу каждого алгоритма.

Есть ли прога которая гарантированна шифрует по DES.

 

Ну или есть ли у кого заведома рабочая версия.

 

Реализацию от Шнайера тоже пробовал она с моей не совпадает.

 

Ну и самое гланое скажите 16 ключей сделанные из одного одинакового ключа должны быть одинаковые для разных реализаций?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По поводу каши

http://page.math.tu-berlin.de/~kant/teachi...-ws2006/des.htm

OpenSSL и CryptoSys API дают правильный результат, например.

"Неправильный" результат может быть у самостийных утилит, в которых какой-то свой порядок следования байтов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какой контроллер ?

ATxmega128A1 аппаратно DES шифрует.

 

Здесь описание и исходник DES-бутлоадера для ATmega128

http://www.atmel.com/images/doc2541.pdf

http://www.atmel.com/Images/AVR230.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ключ, как правило, подается как 64-разрядное число, в котором каждый 8-й бит - бит четности.

Биты четности не принимаются во внимание при шифровании.

Поэтому в натуре ключ 56-битовый.

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...