Код для взлома DES

Я изучаю криптографию, и мне нужно разработать код на Java или C, чтобы взломать DES (стандарт шифрования данных). Я знаю об алгоритме, используемом в DES, но не знаю, как мне кодировать на Java или C. Я слышал об архитектуре криптографии Java, но не знаю, как ее использовать? Может ли кто-нибудь дать мне краткий учебник для того же самого?

Спасибо


person Parth Doshi    schedule 20.07.2011    source источник
comment
И что вы подразумеваете под перерывом? Брутфорс или что-то лучше?   -  person CodesInChaos    schedule 20.07.2011
comment
Подойдет грубая сила, поскольку я знаю об используемом в ней методе.   -  person Parth Doshi    schedule 20.07.2011
comment
Вы можете подумать о том, чтобы сделать это на графическом процессоре.   -  person CodesInChaos    schedule 20.07.2011


Ответы (2)


Зависит от того, как вы пытаетесь "сломать" DES... Я предполагаю, что вы пытаетесь расшифровать заданный зашифрованный текст (атака только зашифрованным текстом).

Помимо библиотеки, способной поддерживать шифрование/дешифрование DES, вам, вероятно, следует дополнительно поискать библиотеку, поддерживающую криптоанализ, чтобы понять, как это реализовать. Для грубой силы такая библиотека не требуется, это так же просто, как перебирать возможные значения для 56-битного ключа и пытаться расшифровать ваш зашифрованный текст. Для этого можно взять практически любой язык программирования, если он поддерживает DES.

Если вы хотите что-то более сложное, например. линейный или дифференциальный криптоанализ, хорошим введением является Современный криптоанализ . Примеры кода в этой книге используют Python. Вы тоже можете рассмотреть возможность использования языка высокого уровня, такого как Python или Ruby, потому что он ускоряет процесс разработки по сравнению с реализацией вещей, скажем, на C, и вам не придется иметь дело с неприятными ошибками из-за управления памятью, указателей. и т. д. И Python, и Ruby поддерживают шифрование и дешифрование DES. Недостатком является то, что ваш код, вероятно, будет более производительным на языке более низкого уровня (при условии, что вы делаете это правильно), поэтому, если скорость имеет существенное значение, C в сочетании с OpenSSL (или любая другая криптобиблиотека с поддержкой DES) будет хорошим выбором.

Примеры библиотек криптоанализа

person emboss    schedule 20.07.2011

См. раздел безопасности в DES Wiki, чтобы узнать о векторах атак DES1.

person marto    schedule 20.07.2011
comment
Да, я видел это, но, как я уже сказал, мне трудно написать то же самое, используя Java или C. Я не знаю, с чего начать. - person Parth Doshi; 20.07.2011