Библиотека шифрования
Модератор: Модераторы разделов
-
svas
- Сообщения: 203
Библиотека шифрования
Подскажите хорошую библиотеку для шифрования
-
yaleks
- Сообщения: 2121
- Статус: вне статуса
- ОС: Gentoo ~
Re: Библиотека шифрования
openssl
gnupg
gnupg
-
svas
- Сообщения: 203
Re: Библиотека шифрования
Мне нужно чтобы поодерживались различные алгоритмы(RSA, DSA, Blowfish, etc). Что-нибудь типа такого
int encrypt(int algorithm, char *key, char *data, int size)
int decrypt(int algorithm, char *key, char *data, int size)
int encrypt(int algorithm, char *key, char *data, int size)
int decrypt(int algorithm, char *key, char *data, int size)
-
halturin
- Сообщения: 167
- ОС: Linux
Re: Библиотека шифрования
а если почитать о том, что было предложено выше? хотя бы для ознакомления, посмотреть список поддерживаемых алгоритмов, man openssl? или надо что было "вынь да положь"?
-
godima
- Сообщения: 92
- ОС: Debian Etch
Re: Библиотека шифрования
еще есть cryptopp (cryptopp.com) - там реализация почти всех известных алгоритмов шифрования, но, довольно не тривиальная весчь, и, имхо, очень профессионально написано.
-
agreed
- Сообщения: 143
- ОС: Fedora 10, Mac OS X 10.5
Re: Библиотека шифрования
Не надо cryptopp.
Написана хорошо, но документация отвратительная. Плюс, есть несколько нетривиальных глюков, которые мы поздно выявили и долго фиксили.
-
Antivir88
- Сообщения: 9
- ОС: Windows XP + Slackware 12
Re: Библиотека шифрования
Системным гуру посвящается:
Пример использования алгоритма RSA:
Для начала создаем два больших числа(от 300 символов), например Num1 и Num2
Затем выбираем число E (открытая степень). Оно должно быть взаимно простым с (Num1 - 1) * (Num2 - 1), например:
Num1 = 11
Num2 = 13
тогда N = Num1 * Num2 = 143,
тогда (Num1 - 1) * (Num2 - 1) = (11 - 1) * (13 - 1) = 120,
следовательно пусть E будет равно 113.
Вычислим закрытую степень (!!!!WARNING (Надо до/переработать) !!!!)
D, воспользовавшись равенством:
E * D = mod(Num1 - 1) * (Num2 - 1)
Находим что !!! " D = 17 " !!!
Пара N и E составляет открытый ключ, а D закрытый (секретный) ключ.
Отображение E (шифрование) состоит в возведении исходного сообщения в степень E по модулю N, а
отображение D (де-шифрование) заключается в возведении зашифрованного сообщения в степень D по модулю N.
Рассмотрим произвольное сообщение Text=123. Тогда
E(123) = 123 в степени 113 mod 143 = 41
Таким образом, 41 - это зашифрованное сообщение.
Применим к нему процедуру дешифрования:
D(41) = 41 в степени 17 mod 143 = 123
В итоге получено исходное сообщение!
P.s.: Число 123 в 113 степени имеет чуть более 200 знаков(т. к. 100 в 100 степени = (10 во 2) в 100 степени = 10 в 200 степени).
Пример использования алгоритма RSA:
Для начала создаем два больших числа(от 300 символов), например Num1 и Num2
Затем выбираем число E (открытая степень). Оно должно быть взаимно простым с (Num1 - 1) * (Num2 - 1), например:
Num1 = 11
Num2 = 13
тогда N = Num1 * Num2 = 143,
тогда (Num1 - 1) * (Num2 - 1) = (11 - 1) * (13 - 1) = 120,
следовательно пусть E будет равно 113.
Вычислим закрытую степень (!!!!WARNING (Надо до/переработать) !!!!)
D, воспользовавшись равенством:
E * D = mod(Num1 - 1) * (Num2 - 1)
Находим что !!! " D = 17 " !!!
Пара N и E составляет открытый ключ, а D закрытый (секретный) ключ.
Отображение E (шифрование) состоит в возведении исходного сообщения в степень E по модулю N, а
отображение D (де-шифрование) заключается в возведении зашифрованного сообщения в степень D по модулю N.
Рассмотрим произвольное сообщение Text=123. Тогда
E(123) = 123 в степени 113 mod 143 = 41
Таким образом, 41 - это зашифрованное сообщение.
Применим к нему процедуру дешифрования:
D(41) = 41 в степени 17 mod 143 = 123
В итоге получено исходное сообщение!
P.s.: Число 123 в 113 степени имеет чуть более 200 знаков(т. к. 100 в 100 степени = (10 во 2) в 100 степени = 10 в 200 степени).
-
Antivir88
- Сообщения: 9
- ОС: Windows XP + Slackware 12