Базовое шифрование/основные вопросы openssl. Режим DES CTR и прочее

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

Вопрос задания

  1. Либо загрузите openssl для шифрования сообщения с помощью DES, либо загрузите скрипт Python для выполнения шифрования и дешифрования. 5 (а) Зашифруйте фразу:

Весной 1861 года десятилетия кипящей напряженности между севером и югом Соединенных Штатов по вопросам, включая права штатов против федеральной власти, расширение на запад и рабство, вылились в Гражданскую войну в США (1861-65).

Используйте DES со следующей информацией: режим CTR; без соли, без IV, с ключом в шестнадцатеричном формате из последних 64 бит хэша SHA-1 вашего студенческого билета. Включите соответствующие снимки экрана и другие доказательства, чтобы убедить меня, что вы выполнили шифрование.

(b) Проверить «свойство дополнения» 1 DES. Для сообщения используйте 64 бита в шестнадцатеричном формате: 2df87ac380f2f4c1. Используйте тот же ключ, что и в предыдущей части.

Мой вопрос

Хорошо, итак! Я не прошу вас, ребята, ответить на мой вопрос (хотя, если вы хотите дать мне несколько хороших указаний, я полностью готов к этому.

Что мне действительно нужно, так это разъяснение пары вещей.

Прежде всего, я установил openssl с Cygwin, и при попытке зашифровать файл я столкнулся с рядом заминок, которые полностью отбросили меня от вопроса.

  1. По какой-то причине я понятия не имею, куда поместить файл с открытым текстом, чтобы Cygwin мог напрямую перейти к нему. Попытка использовать весь путь .txt приводит к ошибкам. Итак, куда мне поместить открытый текст в openssl/cygwin для прямого чтения? (т.е. где это "корень")

(попытка универсальной команды шифрования приводит к ошибке

«aes-256-cbc -a -salt -in secrets.txt -out secrets.txt.enc secrets.txt: нет такого файла или каталога 2674688: ошибка: 02001002: системная библиотека: fopen: нет такого файла или каталога: bss_file. c:398:fopen('secrets.txt','rb') 2674688:ошибка:20074002:BIO процедуры:FILE_CTRL:системная библиотека:bss_file.c:400: ошибка в aes-256-cbc ")

  1. Cygwin openssl, похоже, не поставляется с режимом CTR, а режим CTR определенно требует IV, поэтому я предполагаю, что мой профессор хочет, чтобы я сделал это со всеми этими параметрами. Должен ли я импортировать или иным образом приобретать шифр CTR?

Любые другие советы о том, с чего начать этот вопрос, были бы фантастическими.

Я не могу публиковать много URL-адресов, но я хочу продемонстрировать, что провел хотя бы некоторые исследования, поэтому я скомпилировал список ссылок в pastebin здесь: http://pastebin.com/GDhq7GmQ

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

С уважением, медленно теряющий первокурсник ITSec.


person Anaryl    schedule 09.10.2012    source источник


Ответы (1)


Я думаю, вы должны использовать SSL как библиотеку, а не как инструмент CLI. CTR нетрудно создать, используя «сырое» блочное шифрование. Существует режим шифрования, который является более или менее «сырым» блочным шифрованием.

Немного странно, что в качестве ключа нужно использовать последние байты хэша SHA-1, обычно используются первые (крайние левые) байты.

person Maarten Bodewes    schedule 09.10.2012
comment
Хм, я читал во многих источниках, что вы можете использовать его для базового шифрования/дешифрования. Но проблема, с которой я сталкиваюсь, на самом деле заключается в том, чтобы выяснить, где я должен/могу сбросить файлы .txt для чтения. Если бы я мог хотя бы заставить его взглянуть на файл, я мог бы двигаться вперед, но в нынешнем виде мне остается чесать голову. Я мог бы попытаться найти сценарий Python, чтобы сделать это, но это может потребовать начала с нуля, и время имеет существенное значение. Также я хотел бы развить некоторые знания об этом инструменте. Но, может быть, я делаю это неправильно? - person Anaryl; 09.10.2012
comment
Используя C и ссылку на openssl, для этого должно быть несколько примеров. То, что вы пытаетесь сделать, - это в основном обработка байтов - не рекомендуется делать это с помощью сценариев оболочки. - person Maarten Bodewes; 09.10.2012
comment
Да, я понял, как заставить его вводить и выводить на диск, просто поместив .txts на корневой диск. Почувствуй себя немного глупо. Однако вторая часть, пытающаяся кодировать в режиме DES CTR, вызывает недоумение. - person Anaryl; 10.10.2012
comment
Байтовая обработка? Это домашнее задание, хотя мы делаем то, что, я думаю, вы не стали бы делать в полевых условиях, например, вычисление xor-хэшей вручную ;( - person Anaryl; 10.10.2012