Существует много разных режимов работы блочного шифра.
Если вам просто нужно применить ECB к обычному тексту, просто разбейте простой текст на блоки одинакового размера размером 8 байт (размер блока DES) и зашифруйте каждый по отдельности.
В зависимости от того, чего вы хотите достичь, вы также можете использовать
- ECB , который шифрует каждый блок независимо от всех других (предыдущих) блоков. Недостаток: известные атаки обычного текста могут выявить закономерности в вашем зашифрованном тексте, поскольку один и тот же простой текст всегда будет зашифрован в один и тот же зашифрованный текст
- CBC здесь у вас есть вектор инициализации, и каждый блок зависит от всех ранее зашифрованных блоков. Вот почему вам нужен IV для первого блока.
- CFB это интересный, потому что он позволяет вам превратить ваш блочный шифр в потоковый шифр, что может быть полезно, если вы хотите зашифровать видеопоток или что-то еще (аналогично для OFB, который в основном генерирует ключевой поток)
- CTS Кража текста может быть полезна, если вы хотите зашифровать данные, но хотите избежать заполнения. Примером использования может быть шифрование большого двоичного объекта в вашей базе данных, размер которого нельзя изменить после его записи в БД.
Есть еще много режимов, но это наиболее часто используемые (imho).
Как уже отмечали другие, посетите Википедию для всех деталей.
Обновление:
Что касается заполнения, у вас есть различные возможности . Я бы рекомендовал использовать стандарт ANSI X.923, который в основном требует, чтобы вы заполняли последний буфер нулями и добавляли счетчик в последнем байте, который дает вам количество действительных байтов в последнем блоке. Та же идея используется в ISO10126, но заполнение этого времени выполняется случайными байтами.
Обратите внимание, что вы можете вообще избежать заполнения при использовании CTS.
Возможно, спросите себя, проще ли на самом деле использовать криптографическую библиотеку, чтобы выполнить эту работу за вас.
Если вы используете C ++, перейдите на Crypto ++ (не такой простой, но согласованный стиль c ++), Java и .NET имеют встроенных поставщиков криптографии. Если вы хотите использовать простой C, я могу порекомендовать libTomCrypt (очень прост в использовании).