Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];

Вниз

Шифрование открыто-закрытым ключом.   Найти похожие ветки 

 
[_]   (2006-11-17 20:43) [0]

Есть какая-либо не большая библиотека шифрования с поддержкой открыто-закрытого ключа? Всё что видел -- там огромный комплект разнообразных алгоритмов и прочих прелестей. Мне же хочется что-то простое.


 
vasIzmax ©   (2006-11-17 21:32) [1]

Библиотеки конечно хороши, но когда мне надо было что-то шифровать я чисто use свою наработку. Смотря для чего этого надо, какие данные и пр.


 
Eraser ©   (2006-11-17 21:45) [2]

> [0] [_]   (17.11.06 20:43)

MS Crypto API.


 
palva ©   (2006-11-17 21:49) [3]

> там огромный комплект разнообразных алгоритмов и прочих прелестей. Мне же хочется что-то простое.

Ну если в огромном комплекте не нашлось того, что вы ищете... Можете перечислить по пунктам что вам нужно? Шифровать открытым ключом вам нужно? Генерировать ключ вам нужно? Генерировать случайную гамму вам нужно? Шифровать закрытым ключом вам нужно? Хэшировать ключ вам нужно? Исходные коды для изучения вам тоже нужны? А как насчет встраивания в почтовый клиент или в аську?

Если все это нужно быстро, то проще всего взять готовую библиотеку
http://www.gnupg.org/(en)/related_software/libraries.html


 
Rouse_ ©   (2006-11-17 22:01) [4]


> Есть какая-либо не большая библиотека шифрования с поддержкой
> открыто-закрытого ключа?

Ты все хочешь шифровать? Асинхронные алгоритмы с открытым/закрытым ключем обычно не применяют для шифрования данных. Обычно их используют для шифрования ключей к синхронным алгоритмам криптовки, например таким как RC4.
Т.е. идет связка - Сессионным RC4 ключом шифруется блок данных, ключ шифруется открытым RSA ключем и добавляеляется к шифрованным данным. Получатель извлекает шифрованный RC4 ключ, расшифровывает его своим закрытым RSA ключем и полученным результатом расшифровывает данные.


 
Vga ©   (2006-11-17 22:07) [5]

> [1] vasIzmax ©   (17.11.06 21:32)

Если ты не спец по криптографии, вряд ли твоя наработка сильно надежна...


 
vasIzmax ©   (2006-11-17 22:23) [6]

Я не отрицаю, но о надежности как бы речи не было.

> Если ты не спец по криптографии

Не обязательно, достаточно придумать подходящую фукцию... :)


 
Vga ©   (2006-11-17 22:28) [7]

> [6] vasIzmax ©   (17.11.06 22:23)


> Не обязательно, достаточно придумать подходящую фукцию...
> :)

Что ты под этим имеешь в виду?


 
vasIzmax ©   (2006-11-17 22:39) [8]

Примитивный пример.
а-это значение символа в таблице ASCII
b-это случайное число
с- открытое число (н/п: 27)
d = a+c+b*0;
ИС передает такое сообщение КП и говорит 27. Тот вводит и вуаля: все расшифровано. (да обратная ф-ция уже предполагается в программе a=d-c).
Вид такой шифровки(1 символ): 282 Random.


 
Vga ©   (2006-11-17 22:56) [9]

> [8] vasIzmax ©   (17.11.06 22:39)

Ничего не понял, честно говоря... Не так кратко, и без непонятных сокращений, плиз.


 
vasIzmax ©   (2006-11-17 23:06) [10]

Примитивный пример.
У нас есть сообщение например "Хороший сайт". Мы каждую символ переводим в ASCII (а-это значение символа в таблице ASCII), затем используем генератор случайных чисел (b-это случайное число), и вводим константу 27(с- открытое число (н/п: 27)). Затем используем функцию
Пример функции: d = a+c+b*0;. После обработки каждого символа результат записываем в файл (Вид такой шифровки(1 символ): 282 Random.)
Источник сообщения (т.е. Автор) передает такой файл с прогой конечному пользователю (т.е. получатель) и говорит 27. Тот вводит и вуаля: все расшифровано.


 
Rouse_ ©   (2006-11-17 23:31) [11]


> vasIzmax ©   (17.11.06 23:06) [10]

Молодец, функцию шифрования придумал. Случайное число умноженное на ноль - сильный ход :) А теперь посчитай сколько итераций необходимо для восстановления исходного текста и получения твоего загадочного 27? :)


 
Алхимик ©   (2006-11-17 23:34) [12]


> [10] vasIzmax ©   (17.11.06 23:06)
> Примитивный пример.

Это всё равно что от детей варенье в шкафу прятать... :)


 
vasIzmax ©   (2006-11-17 23:35) [13]


> Rouse_ ©   (17.11.06 23:31) [11]

Но это был как бы
> Примитивный пример.

Можно и по прикольнее: (я всегда работаю с таблицей ASCII) : перевод кода символа в двоичную систему, в римские цифры, ... -:D


 
Rouse_ ©   (2006-11-17 23:36) [14]


> я всегда работаю с таблицей ASCII

Хм.. а что с ней работать то? Byte как бы всегда был по размерности сопоставим с Char :)


 
vasIzmax ©   (2006-11-17 23:37) [15]


> Алхимик ©   (17.11.06 23:34) [12]

Я же не знаю для чего автору вопроса шифроваться. Предложенное естественно детская шифровка, существуют масса алгоритмов, но как сказал сам автор

> Мне же хочется что-то простое.


 
Vga ©   (2006-11-17 23:41) [16]

Это слишком детская шифровка. В паре паков от игр я такую видел. От начала исследования паков до написания работающего распаковщика в обоих случаях заняло несколько (менее 6) часов.


 
vasIzmax ©   (2006-11-17 23:46) [17]

Хоть  

> Это слишком детская шифровка

но
> В паре паков от игр я такую видел

все же используется.


 
BiN ©   (2006-11-18 00:00) [18]

устойчивость этого с позволения сказать алгоритма равна ноль целых ноль десятых.


 
vasIzmax ©   (2006-11-18 00:05) [19]


> BiN ©   (18.11.06 00:00) [18]

Никто не просил 100%-но устойчивого, надежного алгоритма. Задача как мне кажется стояла в простоте, ИМХО.


 
BiN ©   (2006-11-18 00:11) [20]


> vasIzmax ©   (18.11.06 00:05) [19]
>
>
> > BiN ©   (18.11.06 00:00) [18]
>
> Никто не просил 100%-но устойчивого, надежного алгоритма

сабж:  Шифрование открыто-закрытым ключом


Речь идет о конкретном типе алгоритмов, не правда ли...
Шифрование должно быть устойчивым, иначе оно не имеет смысла.


 
Eraser ©   (2006-11-18 00:12) [21]

> [19] vasIzmax ©   (18.11.06 00:05)

для простоты - используйте готовые компоненты/библиотеки.. куда проще чем изобретать свой дырявый алгоритм )


 
vasIzmax ©   (2006-11-18 00:27) [22]

Eraser ©

> Всё что видел - там огромный комплект разнообразных алгоритмов
> и прочих прелестей. Мне же хочется что-то простое.

В принципе да - это проще. Но автору по ходу это не совсем было по душе. И я намекнул: "Хочешь чего-то нормального - сделай сам" (типа того).


 
Eraser ©   (2006-11-18 01:14) [23]

> [22] vasIzmax ©   (18.11.06 00:27)


> И я намекнул: "Хочешь чего-то нормального - сделай сам"
> (типа того).

к криптографии это поговорка не подходит в 99.99% случаев ))


 
vasIzmax ©   (2006-11-18 01:20) [24]

Eraser ©   (18.11.06 01:14)

Возможно, не спорю. Для меня криптография чисто как разминка для мозгов. Мож лит-ру почитаю например Новикова Ф.А. "Дискретная математика для программистов" или уже на крайняк че-нить из Шеннона, работы Фано и Хаффмана полистаю. :)


 
brrrrr   (2006-11-18 02:59) [25]

Еще момент: а алгортим ЭЦП, который Вы все предлагаете, который будет использовать автор ветки - он прошел сертификацию ФСБ (ну или ФАПСИ)?

Я придираюсь потому, что сам с этим столкнулся. Мне необходимо использовать именно  сертифицированный алгортим. Работаю, правда, в госструктуре.


 
ИА   (2006-11-18 02:59) [26]


> Eraser ©   (18.11.06 01:14) [23]
> > [22] vasIzmax ©   (18.11.06 00:27)
>
>
> > И я намекнул: "Хочешь чего-то нормального - сделай сам"
>
> > (типа того).
>
> к криптографии это поговорка не подходит в 99.99% случаев
> ))


Именно. Я бы доварил это утверждение до 5 степени чистоты.
По делу - под открыто/закрытый наверное имеется ввиду Public/Private?
В общем RSA шифрование делается элементарно с помощью к примеру MS Crypto API и X.509 сертификатов. Помните только что быстродействие у подобного типа хромает и для больших обьемов лучше пользоваться  симметричными алгоритмами типа Rijndael/TripleDES/Blowfish, а уже сам ключик шифровать открытым ключом.


 
vasIzmax ©   (2006-11-18 13:00) [27]


> brrrrr   (18.11.06 02:59) [25]

Если честно, не знал, что надо проходить сертификацию. А если нет наказание суровое?


 
palva ©   (2006-11-18 13:41) [28]

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

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


 
Eraser ©   (2006-11-18 13:42) [29]

> [26] ИА   (18.11.06 02:59)


> только что быстродействие у подобного типа хромает и для
> больших обьемов лучше пользоваться  симметричными алгоритмами
> типа Rijndael/TripleDES/Blowfish, а уже сам ключик шифровать
> открытым ключом.

не только для больших объемов.. для любых. На сколько мне известно, до Win2K вообще нельзя было использовать RSA ключи для шифрования данных вручную. Эти ключи предназначены только для шифрования секретного (симметричного) ключа.


 
Lamer@fools.ua ©   (2006-11-18 14:00) [30]

>>Rouse_ ©   (17.11.06 22:01) [4]

>Асинхронные алгоритмы...
Асимметричные, вроде ;o)


 
Vga ©   (2006-11-18 14:48) [31]

> [17] vasIzmax ©   (17.11.06 23:46)

Ну и зачем? Обнаружение и извлечение алгоритма и ключа (32 бит в первом случае, 1689 (или около того) байт во втором) заняло от силы пару часов. Это криптография? Не смеши. Это баловство. Хотя если в проге хранится ключ, то никакой алгоритм не поможет...


 
vasIzmax ©   (2006-11-18 14:54) [32]

Vga ©

> Это баловство

100-ПУДОВО. Когда мне надо было что так сказать "зашифровать" использовал как минимум: по буквенную замену, перевод в различные системы счисления, сортировки = все в одном. Скажу сразу, сообщение имело соотношение к выходному где-то 1:2. В принципе для любителя ИМХО неплохо...


 
Vga ©   (2006-11-18 14:57) [33]

> [32] vasIzmax ©   (18.11.06 14:54)

Я не такой спец по криптографии, чтобы оценить, но ИМХО, это отнюдь не гарантия... Возможно, спец по криптографии, имея алгоритм (хотя бы и скомпилированный) сможет найти лазейку для быстрого выяснения ключа.


 
vasIzmax ©   (2006-11-18 15:02) [34]


> сможет найти лазейку для быстрого выяснения ключа.

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


 
Vga ©   (2006-11-18 15:13) [35]

> [34] vasIzmax ©   (18.11.06 15:02)

Public Domain - вот 100% защита.


 
vasIzmax ©   (2006-11-18 15:32) [36]

имхо, не все должно быть

> Public Domain

все-таки что-то, но должно быть #Private Domain#


 
Vga ©   (2006-11-18 15:36) [37]

> [36] vasIzmax ©   (18.11.06 15:32)

А вот его уже на 100% не защитишь. Есть только два варианта абсолютной защиты - не делать или открыть.


 
vasIzmax ©   (2006-11-18 15:43) [38]


> не делать или открыть.

Я сидел в течении года над прогой, тратил на нее все свое время, скурил 100000 сигарет, поседел на на 2*10000 волос, и просто: открыть для других ее. Как-то не особенно и айс. :)


 
Vga ©   (2006-11-18 15:45) [39]

> [38] vasIzmax ©   (18.11.06 15:43)

JR куда дольше поддерживает IS, чем год... GPL - не PD, но тоже вполне неплохая защита...


 
vasIzmax ©   (2006-11-18 15:46) [40]


> Vga ©   (17.11.06 22:56) [9]



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.048 c
9-1139395378
TGX
2006-02-08 13:42
2006.12.10
gamedev


15-1164011476
Gavrila
2006-11-20 11:31
2006.12.10
TTreeView: как правильно использовать метод AddObject?


15-1163815002
Tirael
2006-11-18 04:56
2006.12.10
готов признать что вы крутые программеры


8-1146213177
xman
2006-04-28 12:32
2006.12.10
Canvas с тенью


2-1163878857
c0rben
2006-11-18 22:40
2006.12.10
Фиксированный вывод





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский