Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 3 След.
RSS
[ Закрыто ] Шифрование файлов случайными байтами
 
Изобретен и реализован в виде программы способ шифрования файлов случайными байтами. Каждый байт файла пользователя заменяется на случайный байт из множества, насчитывающего свыше 10 в степени миллион элементов (не миллион, а единица и миллион нулей). С чем бы сопоставить это число? Программа называется CryptoService.exe. Программа защищена от взлома все той же случайностью. По нашему мнению не существует способа взлома исполняемого кода этой программы в силу генерации исходного кода в случайных наименованиях процедур, функций, переменных. Программа поставляется с исходным кодом. Можно ли ее взломать?
 
а можно получить точный URL на описание?
 
Цитата
Delimiter пишет:
а можно получить точный URL на описание?
Все в PM, пожалуйста, иначе это будет реклама.
А если вы уверены в своем продукте, обратитесь к Пиг Киллеру, может, он разместит его на сайте
Не полагайся на то, что враг не нападет;
полагайся на то, чтобы наши позиции были неуязвимы для нападения.

Сунь Цзы "Искусство войны"
 
Цитата
nik-andrejchiko пишет:
Изобретен и реализован в виде программы способ шифрования файлов случайными байтами. Каждый байт файла пользователя заменяется на случайный байт из множества, насчитывающего свыше 10 в степени миллион элементов (не миллион, а единица и миллион нулей). С чем бы сопоставить это число?

Я это могу сопоставить с очередным "изобретением" вечного двигателя. Конечно, такие множества есть, например, обычное множество всех действительных чисел. Только, что в этом такого уникального? Или же Вы используете генератор псевдослучайной последовательности у которого такой период? Интресно было бы посмотреть, имхо, это уже из разряда фантастики.

Цитата
nik-andrejchiko пишет:

Программа называется CryptoService.exe. Программа защищена от взлома все той же случайностью. По нашему мнению не существует способа взлома исполняемого кода этой программы в силу генерации исходного кода в случайных наименованиях процедур, функций, переменных. Программа поставляется с исходным кодом. Можно ли ее взломать?

Конечно же можно. Смущает то, что Вы, не понимаете таких очевидных вещей. Вдумайтесь в сказанное Вами: "не существует способа взлома исполняемого кода этой программы". Ключевая фраза здесь - "исполняемого кода"...
Если код должен в конечном итоге исполяться на реальном процессоре, то уже не важно какой у него до этого был вид - конечное состояние его должно быть таким, чтобы процессор мог это выполнить. Следовательно на этой стадии он становится уже не защищенным и его можно спакойно скопировать/изменить и т.п.

P.S. А Вы действительно кандидат? и каких наук, если не секрет?
 
одноразовые блокноты уже давно известны
единственное, что может быть интересным, имхо, это Ваш генератор (псевдо)случайной последовательности.

а насчет:
Цитата

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

P.S. а можно и мне ссылку на програмку с исходником .
We're Warriors. Warriors of the World! © ManOwaR

От Тайги до британских морей - руськие хакиры всех сильней!
 
Парень, программа же должна обратна раскадировать данные, закадированные ею, следовательно она не генерирует случайные числа, а скорее всего по твоим словам работает на открытом ключе, извини, что так отвечаю, просто трудно отвечать на твой вопрос имея при этом минимум данных.
А может твоя программа работает на открытом и закрытом ключе, но явно не генерирует случайные числа, а если и генерирует, то явно где-то их сохраняет (может даже в шифрованном виде), но это уже явно не случайная генерация.
Жду подробных описаний программы, так как очень трудно делать какие-либо выводы.
 
Не знаю с чего начать. Программа CryptoService.exe не совсем обычная программа - это не одна единственная программа, а бесконечное (1 и миллион нулей) множество программ, генерируемых специальной программой. Поскольку программ бесконечно много, то по нашему нению создать универсальный взломщик невозможно. Основа алгоритма шифрования состоит в следующем. Для зашифровки необходимо где-то взять данные. Возникла идея - взять данные из строки, содержащей случайные байты. Каждый байт файла пользователя имеет две координаты - место расположения в файле и величину. Обе эти координаты используются. В качестве строк со случайными байтами используются строки, содержащие все 256 байтов по одному разу. Байт файла пользователя заменяется на байт, взятый из строки по номеру, равному величине байта плюс единица. При расшифровке в строке, использованной для шифрования ищется байт, совпадающий с байтом в зашифрованном файле. Номер этого байта, уменьшенный на 1 является исходным байтом. Здесь имеется взаимно однозначное соответствие в связи тем, что в строке все байты встречаются ровно по одному разу. Дальнейшее развитие идеи остоит в том, что использовать для шифрования не одну строку, а случайное число строк от 512 до 2048. Выбор самих строк - случайный. Описание программы могу выслать по запросу (свыше 1 Мегабайт). Прошу задавать еще вопросы. Постараюсь на все ответить наиболее полно.
 
Николай Иосифович:

Цитата
"houseofdabus" пишет:
Если код должен в конечном итоге исполняться на реальном процессоре, то уже не важно какой у него до этого был вид - конечное состояние его должно быть таким, чтобы процессор мог это выполнить. Следовательно на этой стадии он становится уже не защищенным и его можно спокойно скопировать/изменить и т.п.

Начните, пожалуйста, с прояснения этих вопросов.
 
Это не одна единственная программа, а бесконечное множество (1 и миллион нулей). Каждому пользователю передается программа, имеющая общую часть для всех программ (для обмена зашифрованными файлами) и уникальную часть для защиты информации пользователя.Второй раз сгенерировать уникальную часть невозможно в силу чудовищного количества вариантов. Подсчет количества вариантов. Всего строк, содержащих все 256 байт, н в разном порядке вычисляется как факториал от 256, что составляет 10 в степени 506. Программа использует до 2000 случайных строк. Следовательно, количество вариантов исчисляется как биноминальный коэффициент: в числителе произведение 2000 чисел (разности 10 в степени 506 - 1, 2, и т.д.), а в знаменателе факториал от 2000. Каждое произведение в числителе можно считать приближенно равным 10 в степени 506. Тогда числитель равен 10 в степени 506 перемноженных 2000 раз. Это число 10 в степени 1012000. Факториал от 2000 - это 10 в степени 6000. Общее количество вариантов 10 в степени 1012000-6000=1006000.
 
т.е. есть одна программа, которая шифрует и вторая, которая расшифровует? т.е. та которая шифрует есть ключ?
и еще один вопрос: вы пытаетесь бинарник защитить или любые данные?

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

вы как доцент и кан.наук наверное перед тем, как реализовали такую вещь, то перед этим описали все на бумажке? и просили остальных математиков доказать превосходство вашего метода! что ж вы тогда не идете за сертификатом в правительство свое?
там вам сразу расскажут, что и как
We're Warriors. Warriors of the World! © ManOwaR

От Тайги до британских морей - руськие хакиры всех сильней!
 
Программа шифрует произвольные по размеру и содержанию файлы. Программа не использует другие программы в качестве ключей. Мы с Вами, по-видимому, вкладываем разное содержание в понятие "ключ". По моему мнению, в программе не используется ключ в Вашем понимании. Я восхищен Вашим знанием нашего правительства. Поэтому предлагаю участвие в моем проекте, причем Вы от нашего имени попытаетесь поговорить с нашим правительством. Искренне желаю усрехов на поприще вразумления нашего, как впрочем, и Вашего правительства.
 
2 All.

Очень напоминает недавнюю бурю в ru.security. Там тоже предлагали "панацею". Там автор отрицал распостраненность в криптоанализе атак с известным открытым текстом.
Судя по описанию, предлагается метод одноразового блокнота, но в качетсве блокнота используется сам исходный файл, что является ..эээ... :-)


2 Андрейчиков Николай Иосифович. Если Вас не затруднит, пометсите в эту конференцию ссылку на зашифрованный Вашей программой текст (например это сообщение) и программу, которая его расшифровывает.


2 Модераторы. Тема - ИМХО, провакация на флейм.
 
Ты сам ответил на свой вопрос, программа использует определенный алгоритм (теорию которую ты изложил), я сам решил создать подобный продукт (правда с ограниченными функциями) чтобы посмотреть недочеты и подсказать вам, что-то. Вообщем алгоритм реально можно разгодать, и плохо то, что он работает на факториале (хотя с другой стороны это здорово), попробуйте использовать открытый ключ, для того чтобы невозможно было при разгадке алгоритма кодирования расшифровать данные. А вообщем идея ваша довольно неплохая, но я всеже задам вам вопрос, ваша программа состоит как я понял из нескольких программ. Следовательно вы взяли несколько программ и объеденили их, но вы уверены, что в тех программах небыло ошибок, а так как она состоит из множества программ, то в каждой можно найти зацепку. Попробуйте проанализировать данные полученные программой на выходе, так как кому как не вам знать, что она должна показывать и вручную обратно раскадировать их.
И еще у меня вопрос к вам: какой по сравнению с исходным файлом получается размер полученного после шифровки файла.
Например: оригинал 2кб, а после шифровки 4кб - это плохо, нужно чтобы размер файла не изменялся. У меня вообщем был такой трабл, поэтому и вам советую проверить вашу программу на этот аспект. Пишите!
 
Куда поместить строки, используемые при шифровании? Ответ очевиден: в отдельный файл или в исполняемый код программы. Оба варианта используются в программе. Условно место хранение случайных строк называется складом. Имеется 4 склада. 1) Частный внутренний склад, используемый для зашифровки личной информации. У каждого пользователя единственный частный внутренний склад, вшитый в исполняемый код программы. 2) Публичный внутренний склад, используемый для обмена зашифрованными файлами между различными пользователями. У всех пользователей один и тот же публичный внутренний склад, генерируемый программно. 3) Частный внешний склад пользователя, хранится в отдельном файле, используется для шифрования личной информации. Программа создает неограниченное количество частных внешних складов по желанию пользователя. 4) Публичный внешний склад пользователя, хранится в отдельном файле, используется для обмена зашифрованной информацией между различными пользователями. Программа создает неограниченное количество публичных внешних складов по желанию пользователя. Файлы, зашифрованные с использованием внешних складов, физически невозможно расшифровать без наличия этих складов, так как они генерируются случайным образом из множества 10 в степени миллион. Склады свое наименования склад получили из-за того, что строки из склада считываются не порядку 1, 2, 3 и т.д., а по случайным номерам. Поэтому склад, содержит, например, 1024 строки, а количество вариантов считывания с повторениями в массив длиной 1000 строк составляет 1000 в степени 1024, то есть 10 в степени 3000. Согласитесь, что перебор такого числа вариантов пока не по зубам современной технике. Поэтому, даже имея в наличии склады, расшифровать файл очень даже непросто, а если, учесть, что склады сами зашифрованы, то проблемы расшифровки неимоверно усложняются. Очень удобно использовать внешние склады для зашифровки очень важной информации. Можно зашифровать файл, а внешний склад поместить на дискету и без этой дискеты никто и никогда не расшифрует ваш зашифрованный файл.
 
Мало что понял, но похоже на бред.
Дай бог ошибусь.

Чисто программерские ошибки:
1) Пофиг, как называется программа, тем более их у вас несколько

2) "вшитый в исполняемый код программы" - так желать не нужно. DB в частности RDBM появились не зря - а как следствие концептуального разделения кода данных ( и ст. методов к ображению с ними)

Далее, очень странно что к.т.?н. не владеет устоявщимися терминами предметной области, такими как "ключ".

Это сильно мешает пониманию описываемого вами!

Итак, следует отделить
1) Алгоритм кодирования декодирования.
(В сущ. понимании криптографии - он не может быть скрытым).
и
2) секретные данные, используемые для декодирования кодированного сообщения. Либо некоторое начальное состояние некоторого генератора таких данных (что не суть важно).
Это как бы и есть "ключ"

Необходимо так же учесть, что если L(key) >= L(message),
то собственно смысл кодирования теряется.
 
Каюсь, теории криптографии не знаю. Я предлагаю программу, которая одинаковые байты в файле пользователя при шифровании заменяет на разные, а разные - на одинаковые и причем все это случайным образом осуществляется. Файл, состоящий, например из 100000 обсолютно одинаковых байтов превращаетя в случайный набор байтов, а файл со случайным набором байтов превращается в файл с абсолютно одинаковыми байтами. Никакой регулярности. Поэтому взлом исключен. Выскажу еше более бредовую мысль - программа передается с исходным кодом, а взломать невозможно. Это противоречит всем современным представлениям. Но любой желающий может пощупать бред руками, убедиться в чрезвычайной эффективности программы,и начать искать в основаниях теории, которую он исповедует, неучтенные факторы. Могу передать комплект программы бесплатно.
 
Цитата
nik-andrejchiko пишет:
Каюсь, теории криптографии не знаю.
я так понимаю, это ключевая фраза. Не хочется никого обижать, но может быть перед тем как заниматься алгоритмами шифрования, стоит почитать, что другие люди по этому поводу уже придумали? Или считаем свой уровень интеллекта превосходящими все мыслимые пределы, которые другим достичь не дано? И начинаем изобретать велосипеды и вечные двигатели?

ЗЫ. почему-то фраза про "абсолютную невзламываемость" напомнила Макса Фрая (фэнтези если что :)).
Цитата

- Но все-таки, почему ты решил, что они говорят ерунду? Объясни. Кто знает: вдруг однажды на мою голову свалится еще дюжина-другая местных сумасшедших, а рядом не окажется ни одного умного дяденьки вроде тебя...
- Могу объяснить. - Флегматично отозвался Шурф. - Это очень просто, Макс. Ни один человек, хоть однажды получивший доступ к истинному знанию, не скажет: "я знаю все обо всех"... и не пообещает научить тебя "всему, что тебе нужно знать" - за дюжину дней, или за дюжину столетий, это уже неважно...
 
Если бы жизнь была устроена правильно, то проблем бы не было. Программа зашифровывает файлы, состоящие из абсолютно одинаковых байтов, в полную абракадабру. Поскольку процессы шифрования обратимы, то существуют файлы, которые после зашифровки превращаются в файл, содержащий абсолютно одинаковые байты. Не существует и не будет существовать науки, которая смогла бы логически вывести утверждение о том, что, например, за 10000 абсолютно одинаковых байтов скрывается что-либо содержательное. Точно также, никакая наука не способна за абракадаброй разглядеть один и тот же байт в файле из 10000 байт. Поэтому мы и говорим о том, что не существует способа взлома файлов, зашифрованных нашей программой.Программа тестировалась, в первую очередь, на самых трудных для шифрования файлах: длиной 1, 2, 3 байта и состоящие из одинаковых байтов.
 
Существует почти бесконечность размером более 1 и миллион нулей, содержащая строки из всех байтов по одному разу. Главная сложность состоит в том как же выбрать оттуда несколько тысяч строк. Можно, например, взять строку, содержащую все байты строго последовательно от 0 до 255, и основательно ее содержимое перемешать по какому-либо простому алгоритму. Такой способ хорош, но легко повторяется. Поэтому мы решили генерировать строки с помощью датчика случайных чисел. Теперь заново сгенерировать одно и то же можно в той степени в какой случайна генерация чисел датчиком случайных чисел. Возможность расшифровки исключительно зависит от того можно ли значения, генерируемые функцией RND(TIMER) заново сгенерировать.
 
Цитата
Изобретен и реализован в виде программы способ шифрования файлов случайными байтами.
Здравствуйте nik-andrejchiko. Мне кажется, будет много примного лучше и удобнее разбираться в том, что Вы предлагаете, если Вы оформите страничку, хотя бы на бесплатном хостинге (к примеру тот же Narod или Mail, все равно) и дадите здесь ссылку. А на страничке все по полочкам и по пунктам изложите в подробном, как можно более понятном виде, с приведением терминологии, теории, чисел, формул, а так же рисунков и пояснений желательно. Так все как то очень сумбурно, нескладно, отрывками. Понимать очень трудно. Представьте себе изучение материала не по первоисточнику, а по последующему обсуждению. Хотя вопросы уже и сейчас есть, и скепсис определенный и интерес то же. По моему это будет оптимальный вариант, и участники форума будут себе гораздо более конкретно представлять о чем идет речь.
Страницы: 1 2 3 След.
Читают тему (гостей: 1)