RSA и ключики
От: rastoman  
Дата: 27.05.04 07:16
Оценка:
Ну, собственно, понятно, что для генерации серйных номеров для программы нужно использовать криптографию с окрытым ключом. Определился я пока на RSA. Но вот не как не могу въехать — с какой стороны этот RSA нужно грызть, чтобы сделать так, что бы генерировался какой-нибудь регистрационный ключ исходя из имени пользователя, типа лицензии, и т.д.? А потом этот ключ высылать этому пользователю и как-то прога должна определить что ключ верный!!!
Я только въехал, как можно шифровать данные этим алгоритом, а вот остальное....блин.

Заранее спасибо за помощь.
... << RSDN@Home 1.1.3 stable >>
Re: RSA и ключики
От: Kubyshev Andrey  
Дата: 27.05.04 07:41
Оценка:
Советую купить что нибудь готовое (armadillo) если нет познаний.
Если надо сейчас и подешевле, простое MD5 подойдет.
Re[2]: RSA и ключики
От: rastoman  
Дата: 27.05.04 07:45
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>Советую купить что нибудь готовое (armadillo) если нет познаний.

Я придерживаюсь принципа, что лучше познать непознанное.
KA>Если надо сейчас и подешевле, простое MD5 подойдет.
MD5 — согласен, что и быстро и дешево. Однако хеши нетрудно получать, зная алгоритм, — следовательно вопрос времени, когда генератор левых серийников появиться.
... << RSDN@Home 1.1.3 stable >>
Re: RSA и ключики
От: Doc Россия http://andrey.moveax.ru
Дата: 27.05.04 07:49
Оценка:
Здравствуйте, rastoman, Вы писали:

R>Я только въехал, как можно шифровать данные этим алгоритом, а вот остальное....блин.


Для начала: Наверное ты бы лучше написал в соответствующий форум.
Ну а по делу: простой способ (опускаю все доп. провекри и навороты работы с данными).
Делаешь пару ключей. Public зашиваешь в программу, пару private/public — себе оставляешь.
Данные шифруешь любым простым алгоритмом. Если там ничего секретного — можешь даже оставить как есть.
У себя — подписываешь данные юзера private ключем и высылаешь ему их.
В программе проверяешь если подпись верна, то сравниваешь присланные данные с введенными.

PS: Не забывай что тут описан самый примитив Делай лучше
Re[2]: RSA и ключики
От: rastoman  
Дата: 27.05.04 08:07
Оценка:
Здравствуйте, Doc, Вы писали:

Doc>Для начала: Наверное ты бы лучше написал в соответствующий форум.

Не все шароварщики подписаны на "Алгоритмы"...
Doc>Ну а по делу: простой способ (опускаю все доп. провекри и навороты работы с данными).
Doc>Делаешь пару ключей. Public зашиваешь в программу, пару private/public — себе оставляешь.
Doc>Данные шифруешь любым простым алгоритмом. Если там ничего секретного — можешь даже оставить как есть.

-----------------------------------------------------------------------
Doc>У себя — подписываешь данные юзера private ключем и высылаешь ему их.
Doc>В программе проверяешь если подпись верна, то сравниваешь присланные данные с введенными.
-----------------------------------------------------------------------
Вот в эту чать я как раз-таки и въхать не могу, хотя вроде в здравом уме и т.п.
Т.е. подписываешь? Зашифровываешь? Или сздаи прикрепляешь?

Doc>PS: Не забывай что тут описан самый примитив Делай лучше
... << RSDN@Home 1.1.3 stable >>
Re[2]: RSA и ключики
От: Аноним  
Дата: 27.05.04 08:32
Оценка:
Здравствуйте, Doc, Вы писали:

Doc>Здравствуйте, rastoman, Вы писали:


R>>Я только въехал, как можно шифровать данные этим алгоритом, а вот остальное....блин.


Doc>Для начала: Наверное ты бы лучше написал в соответствующий форум.

Doc>Ну а по делу: простой способ (опускаю все доп. провекри и навороты работы с данными).
Doc>Делаешь пару ключей. Public зашиваешь в программу, пару private/public — себе оставляешь.
Doc>Данные шифруешь любым простым алгоритмом. Если там ничего секретного — можешь даже оставить как есть.
Doc>У себя — подписываешь данные юзера private ключем и высылаешь ему их.
Doc>В программе проверяешь если подпись верна, то сравниваешь присланные данные с введенными.

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

Doc>PS: Не забывай что тут описан самый примитив Делай лучше
Re[3]: RSA и ключики
От: Doc Россия http://andrey.moveax.ru
Дата: 27.05.04 08:41
Оценка: 3 (1)
Здравствуйте, rastoman, Вы писали:

Doc>>Для начала: Наверное ты бы лучше написал в соответствующий форум.

R>Не все шароварщики подписаны на "Алгоритмы"...
А кто-то не дает? По рукам лупит

R>-----------------------------------------------------------------------

Doc>>У себя — подписываешь данные юзера private ключем и высылаешь ему их.
Doc>>В программе проверяешь если подпись верна, то сравниваешь присланные данные с введенными.
R>-----------------------------------------------------------------------
R>Вот в эту чать я как раз-таки и въхать не могу, хотя вроде в здравом уме и т.п.
R>Т.е. подписываешь? Зашифровываешь? Или сздаи прикрепляешь?

Ты с электронными подписями разбирался?
Еще раз наглядный пример:

У тебя:
— 1 берем (вводим) данные (имя юзера, email, имя собаки, возраст итд итп).
— 2 данные шифруем как угодно (хоть XOR-ом) или вообще оставляем как есть
— 3 подписываем эти данные своей priv/pub парой
— 4 записываем в файл данные и подпись
— 5 отсылаем файл юзеру

У юзера:
— 1 читаем из файла данные и подпись
— 2 при помощи public ключа проверяем соответствует ли подпись данным
— 3 если нет — нас дурят
— 4 если да, то расшивровываем данные (если на шаге 2 у себя мы их шифровали)
— 5 проверяем данные из файла и данные введенные пользователем.
— 6 если совпадают то значит это ключ этого юзера. версия регистрированная

где у тебя затык с пониманием?

Кстати, не получится просто сразу шифровать и расшифровывать данные?
Для расшифровки тебе нужен будет private ключ, который зашешь в программу. CryptoAPI дает или public или пару private/public. Выделть отдельно private ключ невозможно. Для подписи подписи наоборот, распостраняем public ключ и у себя держим private что есть правильный ход.
Re[3]: RSA и ключики
От: Doc Россия http://andrey.moveax.ru
Дата: 27.05.04 08:50
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Не прокатит такая схема, во первых данные не подиписываются приватным ключем, а шифруются,


Сейчас... Смотрим CryptoAPI:
— для шифрования юзается public ключ, а private расшифровывает.
тебе приходят закрытые данные. Шифрует любой (public key), а расшифровываешь только ты (private key).

— для подписи испольуется private ключ, а public проверяет подпись.
ты подписываешь, а любой адресат (с public key) убеждается что данные от тебя (private key).

А>а во вторых чтобы потом расшифровать эти данные у клиента должна быть пара ключей публичный и приватный.


Стоп. Я говорю о подписи. Сами данные кстати, уже можно не шифровать. Или юзать что-нибудь по проще.
Даже если данные расшифруют, их еще подписать надо, а это уже геморрой.


А>Т.е. по твоей схеме зашивать в программу придется публичный и приватный ключ. А уже выкусит эту пару из бинарника, чтобы сделать кейгенератор — дело техники.


Зачем пару? Отдаем в программе public и все. Не нужен private. не нужен.
Конечно можно подменить public, но это уже crack. А crack-нуть можно практически все.
Re[4]: RSA и ключики
От: rastoman  
Дата: 27.05.04 08:51
Оценка:
Здравствуйте, Doc, Вы писали:

Doc>Ты с электронными подписями разбирался?

Не так сильно, как с самой шифрацией, однако в курсе, что в таком случае private и public ключ местами меняются.

Doc>Еще раз наглядный пример:


Doc>У тебя:

Doc>- 1 берем (вводим) данные (имя юзера, email, имя собаки, возраст итд итп).
Doc>- 2 данные шифруем как угодно (хоть XOR-ом) или вообще оставляем как есть
Doc>- 3 подписываем эти данные своей priv/pub парой
Doc>- 4 записываем в файл данные и подпись
Doc>- 5 отсылаем файл юзеру

Doc>У юзера:

Doc>- 1 читаем из файла данные и подпись
Doc>- 2 при помощи public ключа проверяем соответствует ли подпись данным
Doc>- 3 если нет — нас дурят
Doc>- 4 если да, то расшивровываем данные (если на шаге 2 у себя мы их шифровали)
Doc>- 5 проверяем данные из файла и данные введенные пользователем.
Doc>- 6 если совпадают то значит это ключ этого юзера. версия регистрированная

Doc>где у тебя затык с пониманием?

В голове, наверное..., но ситуация заметно идёт к улучшению, скоро выпишусь...

Doc>Кстати, не получится просто сразу шифровать и расшифровывать данные?

Doc>Для расшифровки тебе нужен будет private ключ, который зашешь в программу. CryptoAPI дает или public или пару private/public. Выделть отдельно private ключ невозможно. Для подписи подписи наоборот, распостраняем public ключ и у себя держим private что есть правильный ход.
Crypro API юзать не могу, т.к. под ещё и под unix генератор нужно будет делать.
Следовательно, нужно останавливаться на электронных подписях?
... << RSDN@Home 1.1.3 stable >>
Re[3]: RSA и ключики
От: Gadsky Россия  
Дата: 27.05.04 08:58
Оценка:
On Thu, 27 May 2004 08:32:40 GMT, wrote:

> Не прокатит такая схема, во первых данные не подиписываются приватным

> ключем, а шифруются, а во вторых чтобы потом расшифровать эти данные у
> клиента должна быть пара ключей публичный и приватный.
> Т.е. по твоей схеме зашивать в программу придется публичный и приватный
> ключ. А уже выкусит эту пару из бинарника, чтобы сделать кейгенератор —
> дело техники.

Все правильно он сказал, не надо путать человека . Подписывание и
шифрование
это по сути одно и то же. В RSA для шифровки нужно знать приватный ключ, а
для
расшифровки достаточно публичного. Так что:

ДанныеЮзера -1-> ЗашифрованныеПриватнымКлючомДанныеЮзера -2->
РашифрованныеДанныеКоторыеМожноСравнить в -1-> использует приватный ключ
в -2-> публичный
ЗашифрованныеПриватнымКлючомДанныеЮзера — нельзя сгенерировать без
приватного ключа
Posted via RSDN NNTP Server 1.9 alpha
Re[4]: RSA и ключики
От: Gadsky Россия  
Дата: 27.05.04 09:06
Оценка:
On Thu, 27 May 2004 08:58:26 GMT, Gadsky <12705@news.rsdn.ru> wrote:

> ДанныеЮзера -1-> ЗашифрованныеПриватнымКлючомДанныеЮзера -2->

> РашифрованныеДанныеКоторыеМожноСравнить в -1-> использует приватный ключ
> в -2-> публичный
> ЗашифрованныеПриватнымКлючомДанныеЮзера — нельзя сгенерировать без
> приватного ключа

Фу, господи, какое гадостное форматирование получилось .
Кстати, если кому нужно — могу послать исходники с RSA функциями.
Длина ключа — сколько памяти хватит
Posted via RSDN NNTP Server 1.9 alpha
Re[5]: RSA и ключики
От: Аноним  
Дата: 27.05.04 09:42
Оценка:
Здравствуйте, Gadsky, Вы писали:
G>Фу, господи, какое гадостное форматирование получилось .
G>Кстати, если кому нужно — могу послать исходники с RSA функциями.
G>Длина ключа — сколько памяти хватит
выложи в форум "исходники" плз
Re[5]: RSA и ключики
От: rastoman  
Дата: 27.05.04 10:17
Оценка:
Здравствуйте, Gadsky, Вы писали:

G>Кстати, если кому нужно — могу послать исходники с RSA функциями.

G>Длина ключа — сколько памяти хватит

Буду весьма благодарен.

... << RSDN@Home 1.1.3 stable >>
Re[4]: RSA и ключики
От: rastoman  
Дата: 27.05.04 10:18
Оценка:
А не мог бы ты описать отличия подписи RSA от прстого RSA?
... << RSDN@Home 1.1.3 stable >>
Re[5]: RSA и ключики
От: Doc Россия http://andrey.moveax.ru
Дата: 27.05.04 13:09
Оценка:
Здравствуйте, rastoman, Вы писали:

Doc>>Кстати, не получится просто сразу шифровать и расшифровывать данные?

Doc>>Для расшифровки тебе нужен будет private ключ, который зашешь в программу. CryptoAPI дает или public или пару private/public. Выделть отдельно private ключ невозможно. Для подписи подписи наоборот, распостраняем public ключ и у себя держим private что есть правильный ход.
R>Crypro API юзать не могу, т.к. под ещё и под unix генератор нужно будет делать.
R>Следовательно, нужно останавливаться на электронных подписях?

Мой совет: внимательно изучить подписи (понять, а то похоже ты еще не до концв понял). И остановиться на варианте — простое шифрование данных (что бы сходу не увидеть) и подпись для уверенности что их отправил ты. Ну и искать слабые места и делать хитрые проверки (что public ключ не подменили итд)
Re[6]: RSA и ключики
От: rastoman  
Дата: 27.05.04 13:52
Оценка:
Doc>Мой совет: внимательно изучить подписи (понять, а то похоже ты еще не до концв понял). И остановиться на варианте — простое шифрование данных (что бы сходу не увидеть) и подпись для уверенности что их отправил ты. Ну и искать слабые места и делать хитрые проверки (что public ключ не подменили итд)

Спасибо.
Вот где бы исходник нормальный для RSA или HFE взять.....?
Не охота самому всю математику реализовывать....
... << RSDN@Home 1.1.3 stable >>
Re[5]: RSA и ключики
От: Doc Россия http://andrey.moveax.ru
Дата: 27.05.04 14:18
Оценка:
Здравствуйте, rastoman, Вы писали:

R>А не мог бы ты описать отличия подписи RSA от прстого RSA?

Э..э..э..э.??? Прям незнаю что сказать. Вопрос ставишь некоректно. Шифрование нужно для того что бы скрыть данные от чужих глаз, а подпись что бы удостоверить что информация имеено от конкретного источника (в нашем случае твой софт должен "убедиться" что инфа о зарегистрировавшимся от тебя).
Re[6]: RSA и ключики
От: rastoman  
Дата: 27.05.04 14:29
Оценка:
Здравствуйте, Doc, Вы писали:

Doc>Здравствуйте, rastoman, Вы писали:


R>>А не мог бы ты описать отличия подписи RSA от прстого RSA?

Doc>Э..э..э..э.??? Прям незнаю что сказать. Вопрос ставишь некоректно. Шифрование нужно для того что бы скрыть данные от чужих глаз, а подпись что бы удостоверить что информация имеено от конкретного источника (в нашем случае твой софт должен "убедиться" что инфа о зарегистрировавшимся от тебя).

Ну, в этом я уже вкурсе, ... после второго дня поиска информации и исходников...
... << RSDN@Home 1.1.3 stable >>
Re[4]: RSA и ключики
От: Doc Россия http://andrey.moveax.ru
Дата: 27.05.04 17:54
Оценка:
Здравствуйте, Gadsky, Вы писали:

G>В RSA для шифровки нужно знать приватный ключ, а

G>для расшифровки достаточно публичного. Так что:

Для шифрования все как раз наоборот. Шифруется все public key, а расшивровыввается только private key.
А вот для подписи как раз — подписываем private, а все могут проверить используя public.
Re[7]: RSA и ключики
От: Doc Россия http://andrey.moveax.ru
Дата: 27.05.04 17:58
Оценка:
Здравствуйте, rastoman, Вы писали:

Doc>>Э..э..э..э.??? Прям незнаю что сказать. Вопрос ставишь некоректно. Шифрование нужно для того что бы скрыть данные от чужих глаз, а подпись что бы удостоверить что информация имеено от конкретного источника (в нашем случае твой софт должен "убедиться" что инфа о зарегистрировавшимся от тебя).

R>Ну, в этом я уже вкурсе, ... после второго дня поиска информации и исходников...

Ну собственно это по большому счету все различия между подписью и шифрованием

Кстати, возми пока в качестве алогоитма CryptAPI и просто поэксперементируй.
Там все просто (особенно если есть MSDN). Подпиши данные и проверь другой прогой.
Сделаешь пару (подписывающее например указанный файл и проверяющее подпись) таких консольных приложений для теста и будешь понимать
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.