id: Гость   вход   регистрация
текущее время 11:22 26/04/2024
Автор темы: Anonymous Author, тема открыта 08/03/2006 19:33 Печать
создать
просмотр
ссылки

Шифрование на VBS


Я иногда пишу проги на VBS или HTA. Хочу написать утилиту для шифрования текста. Можно использовать RC4 алгоритм или Rijndael AES 256. (Длина пароля до 32 знаков) Сама функция шифрования будет полностью доступна, поскольку это открытый код по определению. Возникает вопрос о степени защищенности зашифрованных текстов.


 
Комментарии
— andrew (09/03/2006 00:03)   профиль/связь   <#>
комментариев: 44   документов: 3   редакций: 0
Не совсем ясен вопрос, мне кажется. Речь идёт о сравнении RC4 и AES 256? По моему, без изрядной доли опыта в криптографии корректно реализовать AES крайне трудно, в отличие от RC4, который легко "помещается" в памяти, равно как и построенный на нём CipherSaber. Советую обратить самое пристальное внимание на последний. Разумеется, многое зависит от корректной реализации RC4, в частности установки ключа: стоит рассмотреть возможность генерации RC4-ключа, хэшируя секретный ключ солью (или nonce, т.е. эти байты могут быть как полностью случайными, так и иметь поле-счетчик) в такой конструкции, как HMAC, или хэшируя совокупность ключа и IV. Эти рекомендации, впрочем, хорошо известны. Хотя это не значит, что мне не интересно было бы обсудить преимущества MAC before encrypt vs MAC after encrypt или методы усиления RC4 multi-round initiation, multi-byte RC4, в том случае если Вы выберете RC4 :)
Корректно реализованный RC4, будучи шифром Вернама, а следовательно – реинкарнацией обноразового блокнота, весьма безопасен по определению. В любом случае не стоит реализовывать тот алгоритм, который Вы не понимаете сами, в даннном контексте привлекательны также блочный XTEA и поточный SNOW 2.0.
— Anonymous Author (09/03/2006 10:59)   <#>
Поясню свою мысль. Я дилетант. У меня есть время (наполовину безработный), чтобы поэкспериментировать и получить некоторое представление о шифровании. Хотелось написать простейший код на VBS, который бы был так прост, чтобы его можно было воспроизвести в Нотепаде даже в случае потери. Похоже, для этого годится только алгоритм одноразового блокнота?
Меня удивляет эта война с перехватчиками клавиатуры, экрана и клипбоарда. Только я ознакомился поверхностно с этой темой, как сразу придумал простое решение для обхода. К сожалению меня обошли американцы: http://www.rusdoc.ru/articles/11271/
:)
Существуют ли какие-то расширения для одноразового блокнота, которые позволяют преодолеть его одноразовость? Чтобы, используя один ключ, можно было шифровать много текстов. И где можно больше почитать побольше именно о нем?
Какие еще есть алгоритмы шифрования, которые можно реализовать минимумом кода?
Что касается RC4 и Rijndael – то это были просто первые, найденные мною реализации для VBS. Я понял, что сравнивать их бесполезно, без учета конкретной реализации.
Поскольку VBS – открытый код, то враг его может просмотреть и узнать как он работает. Значит алгоритм должен быть такой, чтобы этот просмотр не облегчал расшифровку.
— SATtva (09/03/2006 20:12)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Существуют ли какие-то расширения для одноразового блокнота, которые позволяют преодолеть его одноразовость? Чтобы, используя один ключ, можно было шифровать много текстов.

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

Для шифрования каждого сообщения поточным шифром ключ должен быть новым! В случае гамма-генераторов этого можно достичь, различными способами задавая его начальное состояние: nonce, salt и пр., о чём писал выше andrew. Но для одноразового блокнота Вам придётся для каждого сообщения создавать абсолютно случайный ключ из некоторого ГСЧ.
— Anonymous Author (09/03/2006 23:16)   <#>
Спасибо, SATtva. А если сделать так: шифруем одну строку другой, получаем зашифрованную строку. Делим ее на 2 части, берем 2-ю часть и ею шифруем 1-ю. Затем так же поступаем со 2-й частью. И т.д. несколько шагов, пока размер остатка не достигнет некоего достаточно маленького значения.
При расшифровке сначала вычисляем размер остатка из длины строки, а затем раскручиваем все обратно.
— Anonymous Author (09/03/2006 23:26)   <#>
На одном сайте я прочитал, что можно так зашифровать текст, что у него будет 2 пароля. Применив первый мы получаем настоящее сообщение, а применив второй – посторонний текст (например, роман Толстого). Занятно, но я так и не смог понять как это возможно? Можно для дураков пояснить примитивным примером?
— Anonymous Author (09/03/2006 23:43)   <#>
Поправка к вышеописанному способу для одноразового блокнота.
Шифруем строку ключевой строкой равной длины. Получаем зашифрованную. Затем ее и ключ делим пополам, и 1-ю часть зашифрованной шифруем 2-й частью ключа. И т.д.
Поскольку шифруемые тексты разные и имеют разную длину, то не поможет ли это преодолеть одноразовость ключа?
В качестве ключа используем берем короткую фразу и увеличиваем ее до нужного размера используя Г псевдо-СЧ, который инициализируется этой фразой.
— SATtva (11/03/2006 09:10)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Это потоковый шифр, но никак не одноразовый блокнот (OTP, one-time pad). Использование любых детерменированных генераторов для выработки ключевого материала для схемы OTP сводит стойкость всей схемы к стойкости Вашего генератора. Такую схему уже нельзя назвать OTP. Для её взлома оппоненту понадобится либо взломать ГПСЧ, либо получить его начальное состояние, которое Вы задавали для выработки ключевого материала.

Что касается предложенной схемы...
Шифруем строку ключевой строкой равной длины. Получаем зашифрованную. Затем ее и ключ делим пополам, и 1-ю часть зашифрованной шифруем 2-й частью ключа. И т.д.

Возможно, я чего-то не понимаю, но как Вы, отбрасывая по половине сообщения на каждом цикле зашифрования, сможете восстановить сообщение при расшифрании? Попробуйте описать процедуру формально.
— Гость (22/04/2007 04:59)   <#>
Всем доброго времени суток.
У меня обратная ситуация, мне нужно расшифровать тест написаный в формате .hta. Он точно зашифрованный блокнотом не могу просмотреть код, может быть кто-нибудь подскажет как дешифровать, а то с учебой запарился, тетка строгая. Я понимаю, что многие скажут выучи лекции, проблема в том что по лекциям очень мало вопросов меньше трети. Буду оченьблагодарен.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3