Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Простое шифрование

2.7K
17 января 2003 года
sashakova
5 / / 17.01.2003
Привет.
Нужно на Visual C++ или на Билдере написать что-то типа шифрование текста. Ну там например менюшка и допустим с файла текст считывает и показывает в зашифрованном виде и расшифрованном. Но у меня с этим туго идет. Может у кого нибудь есть исходник.
если что мой мыл [email]sasha@dlm.ru[/email]
380
17 января 2003 года
Arestov
285 / / 20.09.2000
Цитата:
Originally posted by sashakova
Привет.
Нужно на Visual C++ или на Билдере написать что-то типа шифрование текста. Ну там например менюшка и допустим с файла текст считывает и показывает в зашифрованном виде и расшифрованном. Но у меня с этим туго идет. Может у кого нибудь есть исходник.
если что мой мыл [email]sasha@dlm.ru[/email]



для сирьёзнаго закрытия инфы саветую учебник Алфёрова и Co "Криптографические методы"
а если просто тебе надо сделать так чтобы текст не читался глазами напиши что-то типа:

char key = 'A'; // ключ
char *pszOpen = "this is a string";
char pszCrypt[128];

size_t len = strlen(psz);

for (size_t i=0; i<len; i++)
{
pszCrypt = pszOpen ^ key;
}
pszCrypt=0;

// в pszCrypt будет мусор, чтобы раскодировать
// необходимо ещё раз пропустить через этот алгоритм

for (size_t i=0; i<len; i++)
{
pszCrypt = pszCrypt ^ key;
}

// теперь в pszCrypt тоже самое что и в pszOpen

// можно поиграть дальше усложнив алгоритм,
// скажем каждая буква будет шифроваться не
//одним ключём key, а ключём будет позиция буквы в строке:

for (size_t i=0; i<len; i++)
{
pszCrypt = pszOpen ^ (char)i;
}

// ну и т.п. и т.д.

2.0K
20 января 2003 года
segev
67 / / 19.01.2003
Arestov
Цитата:
... можно поиграть дальше усложнив алгоритм...


Второй вариант гораздо хуже первого, потому что ключ по сути дела отсутствует, достаточно иметь программу (или знать ее алгоритм) чтобы прочитать "зашифрованное" сообщение :D.

Я предлагаю следующий вариант.

int key = 0x123456; // ключ
char text[512];

strcpy(text, "This is a text to encrypt");
srand(key);
for (int i = 0; i < strlen(text); ++i)
text = text^(rand() % 256);

Алгоритм полностью симметричен: шифровка и расшифровка - одно и то же.

Просто и достаточно надежно. Конечно перебрать 2^32 вариантов ключей не так долго, но все же лучше чем ничего.

А вообще, полностью согласен на счет читать книжки.

380
20 января 2003 года
Arestov
285 / / 20.09.2000
Цитата:
Originally posted by segev
Arestov

Второй вариант гораздо хуже первого, потому что ключ по сути дела отсутствует, достаточно иметь программу (или знать ее алгоритм) чтобы прочитать "зашифрованное" сообщение :D.



дык я и написал что это не закрытие, а просто не даёт читать открытый текст. а описывать DES, наш ГОСТ, или другую систему нет никакого желания, кому это надо он всегда это может найти

442
20 января 2003 года
HexoGenus
121 / / 20.03.2000
Цитата:
Originally posted by segev
Arestov

Второй вариант гораздо хуже первого, потому что ключ по сути дела отсутствует, достаточно иметь программу (или знать ее алгоритм) чтобы прочитать "зашифрованное" сообщение :D.


Логически не верно...
Если алгоритм заранее известен то ни один из этих двух способов шифрованием не является :-)))
Зато если алгоритм неизвестен то строки поХОРеные одним значением это самый легко отслеживаемый вариант шифровки (Сохраняется частота появления в тексте определенных символов и их сочетаний) а вот если значение по которому ХОРится текст будет различным то расшифровка становится достаточно "интересной"... попробуй догадайся что там придумал автор использовать в качестве значения для каждого следующего символа, его номер i или функцию от этого номера mask=sin(i)*400-cos(i)*250/20;
ну а лучшим вариантом будет если придумать функции в которую в качестве одного из аргументов будут подставляться числа полученые каким либо образом из текстового ключа

2.0K
22 января 2003 года
segev
67 / / 19.01.2003
HexoGenus
Цитата:

Логически не верно...
Если алгоритм заранее известен то ни один из этих двух способов шифрованием не является :-)))


В первом варианте ключ все-таки присутствует, хотя конечно 256 вариантов - это курам на смех.

Цитата:

... а вот если значение по которому ХОРится текст будет различным то расшифровка становится достаточно "интересной"... попробуй догадайся что там придумал автор использовать в качестве значения для каждого следующего символа, его номер i или функцию от этого номера mask=sin(i)*400-cos(i)*250/20;
ну а лучшим вариантом будет если придумать функции в которую в качестве одного из аргументов будут подставляться числа полученые каким либо образом из текстового ключа


Не надо ничего выдумывать, вернее надо, но не функцию от номера символа, а хороший генератор случайных чисел. Занятие это доволько хлопотное, поэтому лучше использовать какой-либо стандартный алгоритм, на худой конец стандартный конгруэнтный генератор языка С (функции srand и rand, например как описано в моем предыдущем ответе).
Кстати, в серьезной криптографии алгоритм шифрования считается известной злоумышленнику (или просто любопытному).

442
22 января 2003 года
HexoGenus
121 / / 20.03.2000
Цитата:
Originally posted by segev
HexoGenus

Не надо ничего выдумывать, вернее надо, но не функцию от номера символа, а хороший генератор случайных чисел. Занятие это доволько хлопотное, поэтому лучше использовать какой-либо стандартный алгоритм, на худой конец стандартный конгруэнтный генератор языка С (функции srand и rand, например как описано в моем предыдущем ответе).
Кстати, в серьезной криптографии алгоритм шифрования считается известной злоумышленнику (или просто любопытному).


Хмммммм... твой вариант требует конечно гораздо большего количества переборов... но эти переборы вполне реально выполнить не напрягая особенно головы специалистов... и я на 99% уверен что у них уже есть программы анализа и расшифровки таких "шифров" ...
А вот попробуйте построить программу способную перебирать все-возможные функции от i...
(учитывая что в качестве аргументов можно подбирать дробные числа....)

2.0K
23 января 2003 года
yup
31 / / 03.12.2002
http://www.counterpane.com/blowfish.html

там есть исходник Blowfish
качаєшь исходник, потом присоиденяеш к своей программе

Blowfish
симетрическая криптосистема (лицензия - freeware) длина ключа от 32 - 448 бит, сменный блок шыфрования, количество раундов зависти от блок текста (plaintext)
Очень быстр 8/16/32 байт за 18 тактов процессора

а вообще поищи в интернете IDEA, ГОСТ-24...? RC5,6
380
23 января 2003 года
Arestov
285 / / 20.09.2000
Цитата:
Originally posted by HexoGenus
А вот попробуйте построить программу способную перебирать все-возможные функции от i...
(учитывая что в качестве аргументов можно подбирать дробные числа....)



в криптографии надеются на лучшее, но всегда предпологают худшее. Модель нарушителя такова: нарушитель может иметь оборудование, алгоритм, описание, специалистов, всё, но неизвестным злоумышленнику считаеться только ключ. поэтому какой бы ф-ция не была, стойкость это не повысит. Обычно выбирают задачу которую можно решить зная некоторый параметр(ключ) за полиноминальное время, а без этого параметра задача приобретает экспоненциальную сложность. Правда пока строго не доказано что используемые задачи НЕ ИМЕЮТ более простого решения чем перебор. Примерами может служить логарифмирование в конечных полях, задача о рюкзаке и пр.

кому интересно идите в институт на специальность защита информации или что-то пдобное, там вам раскажут очень много и интересно, кое на чём даже гриф в книжках такое не найдёте. Если просто охота ознакомиться с этими вещами читайте книжки, копайте в интернет.

2.0K
24 января 2003 года
segev
67 / / 19.01.2003
HexoGenus
Цитата:

А вот попробуйте построить программу способную перебирать все-возможные функции от i...


Согласен, это сложновато. Но такая система очень уязвима: как только шифрующая программа попадает в не те руки, про секретность можно сразу забыть.
Намного надежней использовать проверенный и открытый (!) алгоритм шифрования. Возмем тот же Blowfish, с длиной ключа бит эдак на 256. Пусть все знают, что это Blowfish - взламывайте сколько хотите - до конца света все равно не успеете 8-).

380
24 января 2003 года
Arestov
285 / / 20.09.2000
Цитата:
Originally posted by segev
Возмем тот же Blowfish, с длиной ключа бит эдак на 256. Пусть все знают, что это Blowfish - взламывайте сколько хотите - до конца света все равно не успеете 8-).



как я понял этот Blowfish сертификата Гостехкомиссии не имеет, да и видимо вообще никакого сертификата не имеет. Я бы не стал использовать в серьёзном проекте (скажем в банк-клиенте) такой алгоритм, потому-что строго не доказана его стойкость и в случае появления каких-то эксцессов без сертификата в суде никто разговаривать не станет :)

Его можно применять тока для развлекательного шифрования E-mail и какие-то личные данные - телефоны салонов досуга можно прятать от жены :D

RSA brouteforce'ом тоже долго ломать, но есть ряд недостатков в самой идее и открыть текст иногда можно не раскладывая на множители :) написано много трудов на эту тему, кое что можно найти даже в Интырнете :)

2.0K
26 января 2003 года
segev
67 / / 19.01.2003
Arestov

Цитата:

как я понял этот Blowfish сертификата Гостехкомиссии не имеет, да и видимо вообще никакого сертификата не имеет. Я бы не стал использовать в серьёзном проекте (скажем в банк-клиенте) такой алгоритм, потому-что строго не доказана его стойкость и в случае появления каких-то эксцессов без сертификата в суде никто разговаривать не станет :)
Его можно применять тока для развлекательного шифрования E-mail и какие-то личные данные - телефоны салонов досуга можно прятать от жены :D


:-o
Автор blowfish - Брюс Шнайдер.
Если требуются комментарии, ниже цитата из компьютерры:

Брюс Шнайер (Bruce Schneier) - президент криптографической компании Counterpane Systems (Миннеаполис, шт. Миннесота, counterpane.com). Имеет степень магистра по математике (Американский университет) и бакалавра по физике (Университет Рочестера).Член совета директоров Международной ассоциации криптологических исследований (IACR) и член консультативного совета Информационного центра электронной приватности (EPIC).
Автор самого популярного руководства по криптографии (Bruce Schneier, Applied Cryptography - John Wiley & Sons: 1996), нескольких других книг и множества специальных и популярных статей.
Вместе со своими сотрудниками Шнайер успешно атаковал многие алгоритмы, протоколы и конкретные криптографические решения. Последнее достижение - комплексный анализ уязвимых мест Microsoft PPTP, предпринятый весной прошлого года. Шнайер - разработчик симметричного шифра Blowfish, выдержавшего многолетние атаки коллег, и шифра Twofish, представленного на конкурс NIST в качестве кандидата на новый национальный стандарт.


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

Цитата:

RSA brouteforce'ом тоже долго ломать, но есть ряд недостатков в самой идее и открыть текст иногда можно не раскладывая на множители :) написано много трудов на эту тему, кое что можно найти даже в Интырнете :)


Вероятность взлома RSA без факторизации меньше, чем вероятность того, что тебе на голову упадет метеорит :D.

P.S. Не понял с кем ты судиться собрался.

380
27 января 2003 года
Arestov
285 / / 20.09.2000
Цитата:
Originally posted by segev

Вероятность взлома RSA без факторизации меньше, чем вероятность того, что тебе на голову упадет метеорит :D.



ну например почитай это, почитай Алфёрова, полно закрытых материалов. RSA уже столько лет (c 1978), что его уже исследовали вдоль и поперёк. :)

http://anmal.narod.ru/secyriti/rsa29.11.html

в конце концов напиши в поиске "взлом RSA" найдёшь много инфы, обычно взломать позволяет неудачно выбранные P и Q, особенности открытого текста, несоблюдение некоторых правил и пр.

Цитата:
Originally posted by segev

Не надо путать серьезные приложения, и приложения где требуется какой-либо сертификат. Математика и бюрократия совершенно разные вещи.
P.S. Не понял с кем ты судиться собрался.



Разные, спору нет. Но делаешь лы ты софт для какого-нить НИИ-"чёрного ящика" или коммерческого банка, использование сертификации обязательно :( А судиться можно например с клиентом который перевёл куда-нить бабки а потом говорит что это не он. Если система сертифицированная (стойкость системы потдверждена), и мы можем доказать по ЭЦП, что отправляли с его ключа. (то что он мог ключ скомпрометировать, уже не наше дело) с нас взятки гладки :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог