Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

проблемы с RSA

318
08 июня 2006 года
nof
193 / / 03.04.2006
Не знал в какой раздел запостить)) Надеюсь, угадал.
В общем ребят, такое дело.
У меня есть публичный ключ длиной 128 байт. Мне нужно этим ключом зашифровать некие данные.
И тут встала проблема. Как известно, в RSA публичный ключ состоит из двух частей:
1) E (рандомное число, которое должно быть взаимопростым с произведением (p-1)*(q-1))
2) N (N=p*q)
И вопрос в том, как мне узнать какая часть 128-байтного ключа N, а какая E?
Просто я достал несколько реализаций RSA на срр и во всех нужно использовать не публичный ключ целиком, а как раз E и N по отдельности :\ Как мне их определить по публичному ключу?

И последнее, никто не знает наиболее простой реализации RSA под msvc 6.0? Crypto API не предлагать))

Заранее спасибо!
318
12 июня 2006 года
nof
193 / / 03.04.2006
Никто с cryptlib не работал?

int main(int argc, char* argv[]) {
char *buffer = "hello world!\0";
CRYPT_ALGO_TYPE cryptAlgo = CRYPT_ALGO_RSA;
CRYPT_CONTEXT cryptContext;
CRYPT_KEYSET cryptKeyset;

cryptInit();
cryptCreateContext( &cryptContext, CRYPT_UNUSED, CRYPT_ALGO_RSA );
cryptSetAttributeString( cryptContext, CRYPT_CTXINFO_LABEL,"AAAAAAAAAAAAAA", 14 );
cryptGenerateKey( cryptContext );

printf("buffer: %s\n",buffer);
cryptEncrypt( cryptContext, buffer, strlen(buffer) );
printf("buffer: %s\n",buffer);

cryptEnd();

return 0;
}

на экран выводит:
buffer: hello world!
buffer: hello world!

Есть идеи, почему текст не зашифровывается? :\ Что я не так делаю? Ниодна из функций ошибок не возвращает - проверял.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог