AKB Forums

Go Back   AKB Forums > Technical sections > Algorithms
Home Register Blogs FAQ Members List Calendar Downloads Arcade Mark Forums Read

Algorithms The source of algorithms for your project

Troubles when posting message? Click here! :: Проблемы с отправлением сообщения? Нажмите сюда!

Reply
 
LinkBack Thread Tools Display Modes
Old Jul 26, 2004, 09:03  
Administrator
 
acid's Avatar
 
Join Date: Sep 2001
Location: Yerevan, Armenia
Posts: 7,155
Blog Entries: 15
Rep Power: 10
Reputation: 293
Алгоритм шифрования данных с открытым ключом RSA

Copyright (c) Roman Lonely

Алгоритм шифрования данных с открытым ключом является наиболее переспективным в настоящий момент (RSA - Rivest, Shamir and Aldeman - его изобретатели).

Понятия:

Простое число - делится только на 1 и на само себя;

Взаимно простым- не имеют ни одного общего делителя, кроме 1;

Результат операции i mod j - остаток от целочисленного деления i на j.

Чтобы использовать алгоритм RSA, надо сначала сгенерировать открытый и секретные ключи выполнив следующие шаги:

1) Выберем два очень больших простых числа p and q.

2) Определим n, как результат умножения p on q (n= p*q).

3) Выберем большое случайное число, которое назовем d. Это число должно быть взаимно простым с результатом умножения (p-1)*(q-1).

4) Определим такое число е, для которого является истинным следующее соотношение (e*d) mod ((p-1)*(q-1))=1.

5) Hазовем открытым ключем числа e и n, а секретным ключом - чмсла d и n.

=================================

Теперь, чтобы зашифровать данные по известному ключу {e,n}, необходимо сделать следующее:

- разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде числа M(i)=0,1,2..., n-1( т.е. только до n-1).

- зашифровать текст, рассматриваемый как последовательность чисел M(i) по формуле C(i)=(M(I)^e)mod n.

Чтобы расшифровать эти данные, используя секретный ключ {d,n}, необходимо выполнить следующие вычисления: M(i) = (C(i)^d) mod n. В результате будет получено множество чисел M(i), которые представляют собой исходный текст.

==========================

Hу, чтобы более наглядно представить алгоритм RSA, приведу следующий пример:

Зашифруем и расшифруем сообщение "САВ" по алгоритму RSA. Для простоты буду использовать маленькие числа(на практике - нужно брать намного большие).

1) Выберем p=3 and q=11.

2)Определим n= 3*11=33.

3) Hайдем (p-1)*(q-1)=20. Следовательно, d будет равно, например, 3: (d=3).

4) Выберем число е по следующей формуле: (e*3) mod 20=1. Значит е будет равно, например, 7: (e=7).

5) Представим шифруемое сообщение как последовательность чисел в диапозоне от 0 до 32 (незабывайте, что кончается на n-1). Буква А =1, В=2, С=3.

Теперь зашифруем сообщение, используя открытый ключ {7,33}

C1 = (3^7) mod 33 = 2187 mod 33 = 9;

C2 = (1^7) mod 33 = 1 mod 33 = 1;

C3 = (2^7) mod 33 = 128 mod 33 = 29;

Теперь расшифруем эти данные, используя закрытый ключ {3,33}.

M1=(9^3) mod 33 =729 mod 33 = 3(С);

M2=(1^3) mod 33 =1 mod 33 = 1(А);

M3=(29^3) mod 33 = 24389 mod 33 = 2(В);

Все, данные расшифрованы.

================================

Криптостойкость алгоритма RSA основывается на предположении, что исключительно трудно определить секретный ключь по известному, поскольку для этого необходимо решить задачу о существовании делителей целого числа. Данная задача является NP-полной, и, как следствие этого факта, не допускает cейчас эффективного (полиноминального) решения. Более того, сам вопрос существования эффективных алгоритмов решения NP-полных задач является до настоящего времени открытым. Если Вы используете числа, состоящие из 200 цифр(такие и надо использовать при шифровании данных), для несанкционированной расшифровки придется генерировать огромное число операций (около 10^23).


P.S/ Данные, приведенные выше, не должны быть использованы в незаконных целях!
__________________
Chat with acid


acid is offline   Reply With Quote Quote selected
Old Jul 28, 2004, 13:06   #16
Administrator
 
greka's Avatar
 
Join Date: Sep 2001
Location: @work
Posts: 5,347
Rep Power: 10
Reputation: 23
Send a message via ICQ to greka
Or Diffie-Hellman is not a part of the IPSec standard from now on :-?
)
__________________
И повешенные могут качаться в неположенную сторону. /С.Е.Лец/
greka is offline   Reply With Quote Quote selected
Old Jul 28, 2004, 13:15   #17
Administrator
 
greka's Avatar
 
Join Date: Sep 2001
Location: @work
Posts: 5,347
Rep Power: 10
Reputation: 23
Send a message via ICQ to greka
3-y PKCS kak-raz otnositsa k protokolu soglasovaniya klyuchey po D-H.

Chto skajesh' naschet nego?
__________________
И повешенные могут качаться в неположенную сторону. /С.Е.Лец/
greka is offline   Reply With Quote Quote selected
Old Jul 28, 2004, 13:49   #18
спасибо, коллега
 
tig's Avatar
 
Join Date: Mar 2003
Location: yerevan, am
Posts: 2,090
Rep Power: 6
Reputation: 10
а что про PKCS говорить ? они - неизбежное зло
я и не спорю, большинство современных протоколов опираеться на Диффи-Хэллмана. просто думал если есть какой-то соответствующий стандарт, то легче отсылать студентов к нему, чем заставлять читать тяжелые книжки

а так, например, есть еще протоколы Needham-Schroeder, Beller-Yacobi и т.д.
tig is offline   Reply With Quote Quote selected
Old Jul 28, 2004, 14:13   #19
Administrator
 
acid's Avatar
 
Join Date: Sep 2001
Location: Yerevan, Armenia
Posts: 7,155
Blog Entries: 15
Rep Power: 10
Reputation: 293
Quote:
Originally Posted by Obelix
>acid
Но ведь этот алгоритм довольно старый, если я конечно не ошибаюсь. И уже довольно широко используется. Думаю он уже протестирован достаточно.
Алгоритм протестирован, но надо ведь еще и конкретные реализации алгоритма протестировать?
__________________
Chat with acid


acid is offline   Reply With Quote Quote selected
Old Jul 28, 2004, 15:40   #20
VIP Роджер
 
darrel's Avatar
 
Join Date: Aug 2002
Location: Yereven
Posts: 4,462
Rep Power: 7
Reputation: 20
Quote:
Originally Posted by tig
просто думал если есть какой-то соответствующий стандарт, то легче отсылать студентов к нему, чем заставлять читать тяжелые книжки
А как может быть схема (в принципе тот же алгоритм) стандартом? Я так понял, что greco имел в виду то, что это общепринятая и единственная схема, а не стандарт в юридическом смысле. На сегодняшний день стандартов на алгоритмы, как яя понимаю, быть не может, поскольку они не патентируются и не сертифицируются, ни у нас, ни в Европе.

А чего тут тяжелого, даже я со своим гуманитарным образованием и то понял ... с третьего раза Хочешь перешлю популярный материал про ЭЦП, как раз для ленивых студентов, чтобы не мучились бедняги ... правда он величиной в 1МБ ... с картинками
__________________
Ignorantia non est argumentum
/Отрицание не есть доказательство/
darrel is offline   Reply With Quote Quote selected
Old Jul 28, 2004, 15:48   #21
спасибо, коллега
 
tig's Avatar
 
Join Date: Mar 2003
Location: yerevan, am
Posts: 2,090
Rep Power: 6
Reputation: 10
тяжелая - например, алгоритмизация поиска интересующего сертификата да и стандартов на сертификат не один.

лучше бедненьких тяжелыми книжками попотчую, есть у меня пара таких по полторы тысячи страниц. да стандартиками интересными на закуску... правда, пока ни одного не было, чтобы больше 10 страниц прочел
tig is offline   Reply With Quote Quote selected
Old Jul 28, 2004, 17:31   #22
VIP Роджер
 
darrel's Avatar
 
Join Date: Aug 2002
Location: Yereven
Posts: 4,462
Rep Power: 7
Reputation: 20
Quote:
Originally Posted by tig
тяжелая - например, алгоритмизация поиска интересующего сертификата да и стандартов на сертификат не один.
Нет, видимо мое гуманитарное образование не дает мне возможности понять что такое стандарт сертификата? В России вообще серификат только на бумажке выдают, какой там может быть стандарт? Я в первый раз слышу, что на сертификаты стандартизируются. Максимум, что можно стандартизировать, так это *сертификационные услуги*, да и то только в Европе и США, поскольку понятия sertification of services (SoS) очень новое и не везде оно еще принято. Правда в Армении я часто слышу словосочетание "сертификация сетей", но люди, которые его используют выдают желаемое за действительное.

Нет, конечно сертификаты разные бывают, но стандартов на них, насколько я знаю нет и не предвидется. Вообще в Европе существует понятие аккредитации сертификационных центров, т.е. проверка на соответствие требованиям закона об эл. подписи. Процедура аккредитации включает и проверку средст ЭЦП на соответствие требованиям того же закона. Стандартов, насколько я знаю, нет.

Другое дело Россия - страна непуганных идиотов. В РФ ввели стандарт ЭЦП, но это полнейший маразм, поскольку это означает, что все прочие алгоритмы создания ЭЦП незаконны. Но в РФ этот стандарт был принят, насколько я знаю, под давлением ФАПСИ и РусКрипто с единственной целью монополизации рынка. Причем одним из требований стандарта, если я не ошибаюсь, является длина ключей - 56МБ, не меньше (есть кое-какая логика), не больше (полный маразм, видимо по заявкам сотрудников ГБ, они, видимо, больше взломать не могут, мощностей не хватает, а РусКрипто, видимо, больше и не делает, а поскольку все зарубежные аналоги как минимум 128, значит они нестандартные).

Если интересно постну требования директивы ЕС об аккредитации сертиф. центров и средст ЭЦП.
__________________
Ignorantia non est argumentum
/Отрицание не есть доказательство/
darrel is offline   Reply With Quote Quote selected
Old Jul 28, 2004, 17:52   #23
спасибо, коллега
 
tig's Avatar
 
Join Date: Mar 2003
Location: yerevan, am
Posts: 2,090
Rep Power: 6
Reputation: 10
я имел в виду сертификат - цифровое хранилище открытого (в некоторых случаях - закрытого) ключа и некоторой дополнительной информации о пользователе, подписанное со стороны третьего доверенного лица. тогда A вместо ключа пересылает B сертификат, из которого можно вытащить и ключ и много другой полезной информации. B же, в свою очередь, может проверить цифровую подпись доверенного лица, чтобы удостовериться, что ключи не подменили по дороге, опросить доверенное лицо на наличие такого сертификата и проверить не скомпроментирован ли он (утерян, истек срок действия, скомпроментированы ключи). это конечно все в иделе. реально же найти всю цепочку сертифицирования - задача ой ой ой. уже который год предлагаються расширения на разные сетевые протоколы с целью облегчения подобного поиска.
естественно, чтобы различные программы могли взаимодействовать друг с другом, такие сертификаты надо было стандартизировать. то есть стандартизировать их представление в памяти компьютера.
ты можешь посмотреть свои сертификаты, если откроешь IE/Tools/Internet Options/Content/Certificates/
если не ошибаюсь, в ЮЭс подобные сертификаты выдаються соответствующими организациями при наличии пасспорта.

56МБ - это мегабайты ? тогда они максималисты по полной

а на счет дыр в системах в угоду органов - это предмет постоянных споров. но дыры есть. во многих странах - законодательно подтвержденные.
tig is offline   Reply With Quote Quote selected
Old Jul 28, 2004, 17:56   #24
спасибо, коллега
 
tig's Avatar
 
Join Date: Mar 2003
Location: yerevan, am
Posts: 2,090
Rep Power: 6
Reputation: 10
кстати, я так и не разобрался, у нас закон о ЭЦП приняли ? и если да, то с какого он в силе ?
tig is offline   Reply With Quote Quote selected
Old Jul 28, 2004, 21:00   #25
VIP Роджер
 
darrel's Avatar
 
Join Date: Aug 2002
Location: Yereven
Posts: 4,462
Rep Power: 7
Reputation: 20
Quote:
Originally Posted by tig
естественно, чтобы различные программы могли взаимодействовать друг с другом, такие сертификаты надо было стандартизировать. то есть стандартизировать их представление в памяти компьютера.
Теперь понятно о чем идет речь. Систиматизировать сертификаты должен соответствующий гос орган, который ведет регистр сертификационных центров. Задача не очень простая даже на национальном уровне, но вполне выполнимая. Что же касается стандартизации сертификатов, то как мне кажется это из области далекого будущего. Сколько лет понадобилось для совместимости некоторых приложений Видовоза и МакОса? Каждый производитель будет промотировать свою технологию и пользователи будут вынуждены выбирать ту или иную ЭЦП. В иделе будут иметь 2, 3 а может и больше средст ЭЦП. Я лично в одно время так и делал, пользовался PGP и VerySign одновременно, взависимости от того кому писал и кто писал мне.

Quote:
56МБ - это мегабайты ? тогда они максималисты по полной
сорри, конечно же это биты ... это я автоматически написал МБ
кстати сертификация в РФ предполагает предоставление кода программы и самого алгоритма ...

Quote:
а на счет дыр в системах в угоду органов - это предмет постоянных споров. но дыры есть. во многих странах - законодательно подтвержденные.
Правда? Не слышал про "законодательно подтвержденные". Наверное юридически, т.е. судебные дела были?

У нас закона нет, есть законопроект. Скорее всего, примут до конца года.
__________________
Ignorantia non est argumentum
/Отрицание не есть доказательство/
darrel is offline   Reply With Quote Quote selected
Old Jul 29, 2004, 08:34   #26
Administrator
 
greka's Avatar
 
Join Date: Sep 2001
Location: @work
Posts: 5,347
Rep Power: 10
Reputation: 23
Send a message via ICQ to greka
Ну, например, Needham-Schroeder - это Diffie-Helman с участием третьей (trusted) стороны.

Было бы интересно послушать, почему PKCS - зло?
__________________
И повешенные могут качаться в неположенную сторону. /С.Е.Лец/
greka is offline   Reply With Quote Quote selected
Old Jul 29, 2004, 08:44   #27
Administrator
 
greka's Avatar
 
Join Date: Sep 2001
Location: @work
Posts: 5,347
Rep Power: 10
Reputation: 23
Send a message via ICQ to greka
2 darrel: сертификат - понятие не законодательное, в даннмо случае, сколько техническое.

by tig: "...алгоритмизация поиска интересующего сертификата да и стандартов на сертификат не один..."

Постольку поскольку если сертификатов несколько, то они могут образовать лишь цепь - т.е. нет ответвлений и пр.
Это означает, что "поиск сертификата" есть просто просмотр линейного списка сертификатов.

В одной из последних (если не ошибаюсь) реализаций OpenSSL была обнаружена ошибка касательно именно цепи сертификатов - там можно было выдать подпись злоумышленника за подпись trusted стороны.

Предполагаю, что была неверно реализована именно проверка цепи.

Нередко проверяют на достоверность лишь последний сертификат.
Но злоумышленнику не составит труда купить за 20$ сертификат у VeriSign-а, и перерподписать все что ему нужно, а сверху заляпать еще каким-то трастед-сертификатом.
__________________
И повешенные могут качаться в неположенную сторону. /С.Е.Лец/
greka is offline   Reply With Quote Quote selected
Old Jul 29, 2004, 09:53   #28
Грустно...
 
Agregat's Avatar
 
Join Date: Aug 2002
Location: Там, где всегда идут дожди
Posts: 21,544
Rep Power: 11
Reputation: 169
Send a message via ICQ to Agregat Send a message via MSN to Agregat
A vse ravno, iirc, v Armenii ego ispol'zovat' nel'zya, tak chto vse eto erunda!
__________________
http://аvitya.livejournal.com
Хотели, как лучше, а получилось даже хуже...
Лозунг шахматиста: На каждый шах - ответим матом!
Agregat is offline   Reply With Quote Quote selected
Old Jul 29, 2004, 10:08   #29
спасибо, коллега
 
tig's Avatar
 
Join Date: Mar 2003
Location: yerevan, am
Posts: 2,090
Rep Power: 6
Reputation: 10
greco El, а ты пробовал PKCS-ы реализовывать ? веселейшее занятие

цепи сертификатов - идеальный случай. а что скажешь об организации с парой сотен CA, которым совсем не обязательно наследоваться друг от друга, уж тем более организовываться в цепочки ?


как ты думаешь, почему PKI заглох ?
tig is offline   Reply With Quote Quote selected
Old Jul 29, 2004, 10:14   #30
спасибо, коллега
 
tig's Avatar
 
Join Date: Mar 2003
Location: yerevan, am
Posts: 2,090
Rep Power: 6
Reputation: 10
Quote:
Originally Posted by darrel
Правда? Не слышал про "законодательно подтвержденные". Наверное юридически, т.е. судебные дела были?
в US есть рекомендации организации, носящей гордое название NSA, ограничивающие, например, максимальную защиту для продуктов, производящихся не для внутреннего пользования. там еще много интересных ограничений было. потом их вроде отменили. после 11 сентября некоторые опять вспомнились.
tig is offline   Reply With Quote Quote selected
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Расширение кругозора - 2 greka Software Security 3 Jan 9, 2004 08:30


All times are GMT. The time now is 14:57.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
This board was founded on September 29, 2001
Powered by Viper Internet

Affordable Web Hosting | ParevNet

Buy text link