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

Вниз

использование CyptoAPI   Найти похожие ветки 

 
pirate ©   (2006-11-17 08:11) [0]

Здраствуйте, уважаемые.
Пишем программу для электронного тестирования абитуриентов.
Требуется зашифровать базу данных с тестами и подписать ее.
В общем, не подскажете ли какой нибудь модуль для криптографии средствами CyptoAPI?


 
Сергей М. ©   (2006-11-17 08:16) [1]

Обязательно CryptoAPI ?
Самостоятельные компоненты, реализующие широкораспространенные криптоалгоритмы никак не подойдут ?

Например,
http://www.cityinthesky.co.uk/cryptography.html


 
pirate ©   (2006-11-17 08:19) [2]

Может и подойдут.
Значит, требуется:
1) Несимметричное шифрование\дешифрование, с открытым и закрытым ключем.
2) Создание и проверка электронных подписей.


 
Сергей М. ©   (2006-11-17 08:30) [3]


> pirate ©   (17.11.06 08:19) [2]


Почитай ссылку.
Уверен - найдешь там все что тебе нужно.


 
pirate ©   (2006-11-17 08:35) [4]

Большое спасибо.


 
Rouse_ ©   (2006-11-17 09:43) [5]

Для тестирования абитуриентов ассиметричное шифрование?
Мдяя... Ксора с головой хватило бы :)


 
Eraser ©   (2006-11-17 13:14) [6]

> [2] pirate ©   (17.11.06 08:19)


> 1) Несимметричное шифрование\дешифрование, с открытым и
> закрытым ключем.

http://kladovka.net.ru/index.cgi?pid=board&rid=347

> [1] Сергей М. ©   (17.11.06 08:16)

а вы пользовались на практике данным пакетом компонентов, какова скорость генерации пар ключей, по сравнению с CryptoAPI?


 
Сергей М. ©   (2006-11-17 13:26) [7]


> Eraser ©   (17.11.06 13:14) [6]


> генерации пар ключей


??

Какая такая "генерация .. ключей" ?


 
Rouse_ ©   (2006-11-17 13:48) [8]

По всей видимости речь о RSA и иже с ним - открытый, закрытый ключ. Скорость такая-же. Там что-то революционное придумать нельзя - алгоритмы же одни и теже используются :)


 
Anatoly Podgoretsky ©   (2006-11-17 13:53) [9]

> Сергей М.  (17.11.2006 13:26:07)  [7]

Для безопасности ключи генерируются на регулярной основе, при том для сессии


 
Сергей М. ©   (2006-11-17 13:57) [10]


> Anatoly Podgoretsky ©   (17.11.06 13:53) [9]
> Для безопасности ключи генерируются на регулярной основе,
>  при том для сессии


То-то я смотрю, что это вдруг аладдины в свои HL E-Y-E жестко прошивают AES-128 -ключ) ... а уж они как никто другие заботятся о безопасности)


 
Германн ©   (2006-11-17 14:01) [11]

А ещё есть библиотека от Turbo Power. TpLockBox. С исходниками и документацией. Зря что-ли ребята старались.
http://sourceforge.net/projects/tplockbox/


 
Anatoly Podgoretsky ©   (2006-11-17 15:51) [12]

> Сергей М.  (17.11.2006 13:57:10)  [10]

Так Алладин - это еще и 40 разбойников.
Я говорил про сессии в Интернет.

> а уж они как никто другие заботятся о безопасности)

Это точно)


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

> [7] Сергей М. ©   (17.11.06 13:26)


> Какая такая "генерация .. ключей" ?

см. [8] :)

> [8] Rouse_ ©   (17.11.06 13:48)


> Скорость такая-же. Там что-то революционное придумать нельзя
> - алгоритмы же одни и теже используются :)

да какой там та же!
попробуй сгенерировать 2048 битный RSA с пом. компонентов Turbo Power (о которых в  [11]). Несколько минут эта операция будет производиться, на CryptoAPI - секунда-пара секунд.


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


> да какой там та же!
> попробуй сгенерировать 2048 битный RSA с пом. компонентов
> Turbo Power (о которых в  [11]). Несколько минут эта операция
> будет производиться, на CryptoAPI - секунда-пара секунд.
>

Попробовал, только не Turbo Power а через свои наработки, лень лить сторонние юниты... 12-14 секунд. И там и там. Что я делаю не так? :)


 
Eraser ©   (2006-11-17 23:50) [15]

> [14] Rouse_ ©   (17.11.06 23:43)


> 12-14 секунд

хм.. странная цифра )
а какой процессор/ОЗУ ?

вот примерно такой код

           pchProvName := nil;
           dwProvType := PROV_RSA_AES;
           dwContextFlags := CRYPT_VERIFYCONTEXT;
           dwKeySize := 2048;

     bReturn := CryptAcquireContext(@hProvParty1, nil,
       pchProvName, dwProvType, dwContextFlags);
     bReturn := CryptGenKey(hProvParty1, AT_KEYEXCHANGE,
       dwKeySize shl 16,
       @hPublicKey1);

выполняется около секунды (Athlon64 3000+, 1 GB ОЗУ).

может я что не так делаю? )


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

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


 
Eraser ©   (2006-11-18 01:12) [17]

> [16] BiN ©   (18.11.06 00:20)

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


 
SlymRO   (2006-11-20 05:22) [18]

LockBox оперирует байтами, а CryptoAPI  полноценным хардваре integer - вот и вся разница спидап в разы :)
Rouse_ ©   (17.11.06 13:48) [8]
алгоритмы же одни и теже используются

Алгоритмов множество: мат оптимизированные построение простых чисел из простых малых, и тупое while not Simple do +2;
где not Simple тоже разными алгоритмами реализовать можно

ИМХО LockBox тормоз


 
Alex Konshin ©   (2006-11-20 10:21) [19]

> выполняется около секунды (Athlon64 3000+, 1 GB ОЗУ).
> может я что не так делаю? )

В моей реализации генерация ключа 2048bit занимает около полсекунды. Причем последующие вызовы будут еще несколько быстрее.
Я заявляю, что моя реализация существенно быстрее того, что в общеизвестном RSAeuro. Дело даже не в том, что у меня многое написано на ассемблере. У них есть (и немало) существенно неоптимальные места. У меня же помимо длинных арифметических операций есть набор операций длинного с 32битным, которые намного эффективнее (особенно деление) и есть очень много мест, где их можно(и нужно) задействовать. А еще умиляет, как они уможают на степени двойки в тесте Ферма.
Кстати, у меня еще есть резервы оптимизации. Например, я знаю как в несколько раз ускорить проверку на делимость на маленькие простые (у мемя, кстати, проверяются все 16-ти битные простые, таблица которых генерится при первом запуске).

Правда, у меня еще собственно сам RSA не реализован, но это уже не так сложно, ведь сложное-то было в реализации и отладки длинной арифметики.
Я, кстати, для генерации тестов для отладки REXX использовал, который умеет работать с длинными числами.


 
Eraser ©   (2006-11-20 14:43) [20]

> [19] Alex Konshin ©   (20.11.06 10:21)

А когда работа над библиотекой будет звершена, будет ли она доступна для общего скачивания, или это библиотека для личных проектов?


 
Alex Konshin ©   (2006-11-20 15:05) [21]

Вообще-то она для комерческого проекта, но я подумаю, может и выложу.


 
Eraser ©   (2006-11-20 15:08) [22]

> [21] Alex Konshin ©   (20.11.06 15:05)

ну что ж если получится выложить, сообщите на этом сайте, если не трудно.. многие оценят по-достоинству.


 
ORMADA ©   (2006-11-20 15:14) [23]

2 Alex Konshin
ну раз такая крутая скорость то тоже присоединяюсь к Eraser
выложи плз как доделаешь



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

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

Наверх





Память: 0.5 MB
Время: 0.043 c
15-1173949620
DevilDevil
2007-03-15 12:07
2007.04.08
C++Builder. Реально ли не таскать за собой DLL?


15-1173770951
Java
2007-03-13 10:29
2007.04.08
Проблема с SimpleDateFormat(Java)


2-1172827762
adamst
2007-03-02 12:29
2007.04.08
Delphi получить html код по заданному URL


1-1171340684
green
2007-02-13 07:24
2007.04.08
Собственный шрифт для работы в word-е и Delphi


15-1173706791
Ega23
2007-03-12 16:39
2007.04.08
А вот нафига нужен xor?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский