Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
| | | | | | |
Раз ключ повторяется, если предположить, что я имею данные о... 20.10.04 15:44 Число просмотров: 1687
Автор: Heller <Heller> Статус: Elderman
|
Раз ключ повторяется, если предположить, что я имею данные о длинне ключа и статистических свойствах открытого текста, криптостойкость падает критически. Если разобраться, то это уже даже не поточная криптосистема получается, а обычный шифр Виженера в режиме ECB.
|
<beginners>
|
Криптоалгоритм 20.10.04 10:40 [leo, fly4life]
Автор: tian Статус: Незарегистрированный пользователь
|
Вообщем, ситуация следующая: (извините, в доску crypto не могу добавить сообщение - нулевой рейтинг)
написал криптоалгоритм (собственной реализации). Есть работающая прога, реализующая данный алгоритм.
Теперь встал вопрос - а как проверить криптостойкость ? Выяснил, что только в принципе приблизительным мат.расчетом. Однако, может кто в курсе, где это все расписано ?
В принципе, могу предоставить интерфейс к данной проге, если кому интересно.
Данный алгоритм работает потоковым способом (т.е. полезен будет на каналах связи) и оставляет неизменным размер исходного сообщения. Да и работает быстро.
В настоящее время собираюсь алгоритм вставить в ядро системы, чтобы проверить на рабочих каналах связи.
В принципе, в результате хочу запантетовать его и начать использовать.
Может кто в курсе, с чего начать, чтобы двигаться дальше ?
|
|
Всё хотел ответить, да некогда было 21.10.04 20:36
Автор: leo <Леонид Юрьев> Статус: Elderman Отредактировано 21.10.04 20:49 Количество правок: 1
|
Оценить криптостойкость очень не просто, особенно если она на самом деле есть. Доказательство криптостойкости и других, нужных потребителю, свойств - собственно и есть самое главное в «изобретении» криптоалгоритма. Без этого ваш алгоритм просто игра в песочнице, по-сути он еще «недоизобретен».
Как только вы грамотно изложите доказательства криптостойкости и другие прелести вашей идеи, и сможете отстоять их в дискуссии, то сможете быть уверенным, что никто вашу идею «так просто» не украдет. В любом случае всё будет решаться в суде, где в таком случае у вас будет масса свидетелей.
Пока же вы этого не сделаете, или хотя-бы не продемонстрируете теоретическое владение предметом, то тоже можете быть спокойны. Никто не обратит на вас серьезного внимания, и не будет воровать идею даже с доплатой.
Даже если у вас на самом деле что-то стоящее, и вы сможете это доказать, то IMHO оставьте идею заработать на этом. Уже существует огромная масса хороших и очень хороших алгоритмов, за которые не просят денег. IMHO единственный путь - предлагать готовые решения или а-ля консультации в расчете на то, что клиенты будут склонны доверять вам и платить деньги как человеку (фирме) который что-то изобрел и соответственно гуру в этой области.
Резюме - можете смело публиковать исходники/идеи здесь, IMHO практически невероятно, что вам от этого будет хуже.
--- updated ---
Забыл упомянуть - в России алгоритмы не патентуются, законы такие.
|
| |
Все вышесказанное настолько же верно, как и не нуждается в... 22.10.04 10:31
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
> Резюме - можете смело публиковать исходники/идеи здесь, > IMHO практически невероятно, что вам от этого будет хуже.
Все вышесказанное настолько же верно, как и не нуждается в коментариях.
> --- updated --- > > Забыл упомянуть - в России алгоритмы не патентуются, законы > такие.
А вот здесь кое-что добавлю, что узнал.
1. Чтоб чем-либо запатентованым не стали пользоваться за бугром, нужно патентавать это изобретение в каждой стране по ее законам.
2. Если Вы что-то давно изобрели, предали огласке, а совсем недавно кто-то "украл" Ваше изобретение и запатентовал, то ни один суд не поможет отобрать у него в Вашу пользу авторсие и прочие патентные права.
3. Алгоритм можно патентануть с извращениями. У нас в России возможна защита программ от "пиратства" (воровства, взлома, модификации, исследования и пр.). Сталобыть нужно "запатентовать" программу с внимательным описанием критичного места. Тогда воспроизведение этого фрагмента в другой программе (а именно это можно расценить как издевательство над программой) будет преследоваться по закону. Прецендентов насколько известно пока еще не было, так что это все еще может не сработать.
|
|
Что бы говорить более объектно... 20.10.04 20:05
Автор: Heller <Heller> Статус: Elderman
|
Что бы говорить более объектно может быть опубликовать здесь хотя бы примерный алгоритм работы - по какой схеме вырабатываются ключи, какая модель конечного автомата применяется, является ли система самосинхронизирующейся и если да, то сколько элементов последовательности "помнит", работает с битами или с байтами и т. д. При этом совершенно не обязательно приводить конкретные функции зашифрования и генерации случайных чисел (если есть). Потому что всё что уже написано в топике - лишь смутные догадки и общие слова, имхо. Более конкретно бы...
ЗЫ. А показатели производительности очень неплохие, однако не это важно. Опять же, имхо.
|
| |
Скажу проще - Обычно по многим причинам (боязни воровства... 21.10.04 12:06
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 21.10.04 12:07 Количество правок: 2
|
> Что бы говорить более объектно может быть опубликовать > здесь хотя бы примерный алгоритм работы - по какой схеме
Скажу проще - Обычно по многим причинам (боязни воровства идеи, скромность, стеснительность) авторы публикуют около 90% информации. Остальное - КНОУ-ХАУ остается в секрете, без которого полное воспроизведение системы невозможно.
Так что бОльщую часть можно безбоязненно выложить для критиков.
> ЗЫ. А показатели производительности очень неплохие, однако > не это важно. Опять же, имхо.
Есть некоторый предел - порядка 10-20 Мб/сек., он будет более неплохим. Причем к нему приблизиться реально, избавившись от getch и воспользовавшись ассемблером.
|
| | |
Ну насчет ассемблера - пока что рановато, хотя разве что для... 21.10.04 14:53
Автор: tian Статус: Незарегистрированный пользователь
|
Ну насчет ассемблера - пока что рановато, хотя разве что для интереса...
На коды перекладывать лучше уже полностью готовое решение.
А для начала следаю вставки в кодах в наиболее трудоемких частях программы.
А насчет выложить - не знаю даже. подумаю.
|
|
Длина ключа определяет общее количество ключей. Чтобы... 20.10.04 11:51
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
> Вообщем, ситуация следующая: (извините, в доску crypto не > могу добавить сообщение - нулевой рейтинг) > написал криптоалгоритм (собственной реализации). Есть > работающая прога, реализующая данный алгоритм. > Теперь встал вопрос - а как проверить криптостойкость ? > Выяснил, что только в принципе приблизительным > мат.расчетом. Однако, может кто в курсе, где это все > расписано ?
Длина ключа определяет общее количество ключей. Чтобы посчитать время, за которое можно гарантированно подобрать ключ, надо перемножить количество всех ключей на время расшифровки плюс время анализа того, что получилось после расшифровки. Причем последним можно принебречь, поскольку время анализа может занимать принебрежительно малое время по сравнению со временем расшифровки. Для получения приблизительного (усредненого) времени взлома можно получившееся время поделить пополам. Это при условии что нет возможности оптимизации брютфорса. Это практический метод. На счет теоретического расчета (оценки сложности) можно пока не замарачиваться. Можно время подбора переложить на "мегагерцы" или МИПСы, чтоб удобнее было рассчитать время взлома на нескольких писюках с разной производительностью процессоров. Время взлома и есть криптостойкость, эсли Вам именно это нужно было, а не исследование алгоритма на предмет наличия быстрого взлома.
> В принципе, могу предоставить интерфейс к данной проге, > если кому интересно. > Данный алгоритм работает потоковым способом (т.е. полезен > будет на каналах связи) и оставляет неизменным размер > исходного сообщения. Да и работает быстро. > В настоящее время собираюсь алгоритм вставить в ядро > системы, чтобы проверить на рабочих каналах связи. > В принципе, в результате хочу запантетовать его и начать > использовать. > Может кто в курсе, с чего начать, чтобы двигаться дальше ?
Боитесь хищения идеи - сначала патентуйте, хотя и это может не спасти. Все-равно выложить алгоритм придется для всеобщего исследования энтузиастами или за деньги обратиться в соответствующие организации, но не торопитесь тратится.
Стукнитесь на почту pimenoff@rambler.ru
|
| |
Время выполнения 20.10.04 15:03
Автор: tian Статус: Незарегистрированный пользователь
|
Вот например попробовал на пне-3 (2097 BMIPS) закодировать файл объемом 2,85Мб при длине ключа 128 бит - получилось 1 670 000 тактов.
При длине ключа 6560 бит получилось 1 680 000 тактов.
точнее, полагаю это не такты, а вообщем функция clock() из time.h
времени пока нет много, чтобы измерить производительность в тактах. (да и измерял на рабочем загруженном серваке).
|
| | |
А чему равен тогда CLK_TCK в этом файле time.h? 20.10.04 16:13
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 20.10.04 16:14 Количество правок: 1
|
> Вот например попробовал на пне-3 (2097 BMIPS) закодировать > файл объемом 2,85Мб при длине ключа 128 бит - получилось 1 > 670 000 тактов. > При длине ключа 6560 бит получилось 1 680 000 тактов. > точнее, полагаю это не такты, а вообщем функция clock() из > time.h
А чему равен тогда CLK_TCK в этом файле time.h?
> времени пока нет много, чтобы измерить производительность в > тактах. (да и измерял на рабочем загруженном серваке).
Да хоть в секундах. Это он за ~0.001 отработал, если около 2 миллиардов при 2 гигагерцах.
Хотя бы приблизительно. Возьмем файл на 20, 200 мег, чтоб времени на обработку ушло более десятка секунд, чтоб погрешностью измерения принебречь.
Он по одному байтику за итеррацию обрабатывает?
|
| | | |
Чуть более внимательно подошел к измерению времени: 20.10.04 18:24
Автор: tian Статус: Незарегистрированный пользователь
|
Чуть более внимательно подошел к измерению времени:
обрабатывал файл размером 9 600 090 байт при ключе 128 бит.
получилось за 3,22 сек. т.е. за 1 сек будет 2 981 394 байт
Однако это с учетом того, что например, входной поток подается через 'cat' и берется через getchar() , т.е. по большому счету я еще и не оптимизировал. На данный момент была важна работа.
При ключе 6560 бит получилось 5,04 сек.
|
| |
Фокус в том, что заранее определенной длины ключа нет. можно... 20.10.04 14:30
Автор: tian Статус: Незарегистрированный пользователь
|
> Длина ключа определяет общее количество ключей. Чтобы > посчитать время, за которое можно гарантированно подобрать > ключ, надо перемножить количество всех ключей на время > расшифровки плюс время анализа того, что получилось после > расшифровки.
Фокус в том, что заранее определенной длины ключа нет. можно использовать любой ключ.. хоть 64 бита.. хоть миллион..
алгоритм его использует полностью такой, какой подается на вход...
|
| | |
Это на "одноразовый блокнот" похоже. 20.10.04 14:56
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
> Фокус в том, что заранее определенной длины ключа нет. > можно использовать любой ключ.. хоть 64 бита.. хоть > миллион.. > алгоритм его использует полностью такой, какой подается на > вход...
Это на "одноразовый блокнот" похоже.
Можно и сам ключ ксорить. А по поводу периодической его повторяемости - есть вполне приличные методы борьбы.
|
| | | |
Что за "одноразовый блокнот " ? 20.10.04 15:05
Автор: tian Статус: Незарегистрированный пользователь
|
|
| | | | |
T'=T+K - вот это и есть одноразовый блокнот. При |T|>|K| ключи повторяются циклически. Типичный пример - шифр Виженера. 20.10.04 15:16
Автор: Heller <Heller> Статус: Elderman Отредактировано 20.10.04 15:38 Количество правок: 1
|
|
| | | | | |
Да, ключ повторяется, хотя ничто не мешает получить новый ключ на основе старого. 20.10.04 15:27
Автор: tian Статус: Незарегистрированный пользователь
|
|
| | | | | | |
Раз ключ повторяется, если предположить, что я имею данные о... 20.10.04 15:44
Автор: Heller <Heller> Статус: Elderman
|
Раз ключ повторяется, если предположить, что я имею данные о длинне ключа и статистических свойствах открытого текста, криптостойкость падает критически. Если разобраться, то это уже даже не поточная криптосистема получается, а обычный шифр Виженера в режиме ECB.
|
| | | | | | | |
один и тот же отпечаток открытого текста, грубо говоря, с... 20.10.04 15:52
Автор: tian Статус: Незарегистрированный пользователь
|
> Раз ключ повторяется, если предположить, что я имею данные > о длинне ключа и статистических свойствах открытого текста, > криптостойкость падает критически. Если разобраться, то это > уже даже не поточная криптосистема получается, а обычный > шифр Виженера в режиме ECB.
один и тот же отпечаток открытого текста, грубо говоря, с одинаковым ключом может иметь разные отображения в шифре.
|
| |
Чуть подробнее 20.10.04 14:22
Автор: Heller <Heller> Статус: Elderman Отредактировано 20.10.04 14:27 Количество правок: 1
|
DPP всё правильно написал, однако добавлю, что в случае поточных криптосистем слово "стойкойть" в большинстве случаев является практически синонимом слову "насколько случайным получается RK" (вырабатываемая последовательность, которая ксорится с открытым текстом). Для вычисления этой "случайности" чисел надо либо искать какие-то математические доказательства, либо проводить статистические тесты (на разных наборах вычислять априорные, апостериорные и n-апостериорные вероятности).
Насчёт того, где это всё расписано. Точный список авторов не скажу, только помню что есть там среди них Пудовкина. Называется книга "Поточные криптосистемы". Изд. "МиФи". Больше ничего на данную тему на русском языке не видел. Вернее видел - но как-то всё несерьёзно выглядит.
Лучший совет, имхо - http://www.bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=13&m=113631 (как я вовремя вопрос задал :))
А после того как запотентуешь - выкладывай сюда.
Так же вот моя почта: heller(собака)heller.ru
Может заодно скоординируемся что бы не по одиночке идти патентоваться. А то не знаю как для Вас, для меня дело это новое.
|
| | |
Меня возьмите! Или хотя бы расскажите по какому адресу... 20.10.04 14:53
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
> Лучший совет, имхо - > http://www.bugtraq.ru/cgi-bin/forum.mcgi?type=sb&b=13&m=113 > 631 (как я вовремя вопрос задал :)) > А после того как запотентуешь - выкладывай сюда. > Так же вот моя почта: heller(собака)heller.ru > Может заодно скоординируемся что бы не по одиночке идти > патентоваться. А то не знаю как для Вас, для меня дело это > новое.
Меня возьмите! Или хотя бы расскажите по какому адресу приехать и какие с собой документы надо иметь...
|
| | |
Согласен насчет случайных последовательностей. Придется... 20.10.04 14:40
Автор: tian Статус: Незарегистрированный пользователь
|
> DPP всё правильно написал, однако добавлю, что в случае > поточных криптосистем слово "стойкойть" в большинстве > случаев является практически синонимом слову "насколько > случайным получается RK" (вырабатываемая > последовательность, которая ксорится с открытым текстом). > Для вычисления этой "случайности" чисел надо либо искать > какие-то математические доказательства, либо проводить > статистические тесты (на разных наборах вычислять > априорные, апостериорные и n-апостериорные вероятности).
Согласен насчет случайных последовательностей. Придется "вышку" вспоминать..%(
Ну и заодно познакомиться с данной книгой..
Хочеться все-таки оценить по международным меркам стойкость, а не интуитивно.
Хотя можно в какую-нить лабораторию отослать отсрктый текст (частями) и закрытый текст. пусть попробуют определить полностью открытый текст...
|
|
|