Здравствуйте, Аноним, Вы писали:
> Что-то ты не так читал. Все алгоритмы шифрования с открытым ключем как раз имеют в виду обратное. Шифрование публичным ключем, расшифровка приватным.
Да, спасибо за ответ... Просто в инете несколько раз подобное утверждение встречал... хм.. проверил — не канает, хотя и знаю, что это неправильно
Здравствуйте, Figaro, Вы писали:
F>В инете часто встречал утверждение что можно зашифровывать приватным а расшифровывать публичным ключом.. хм... не получается (версия 0.9.8):
OpenSSL реализует криптографические функции по стандарту. А по нему зашифрование возможно только открытым ключом. Соответственно, при помощи OpenSSL или другой популярной утилиты ты навряд ли сможешь сделать наоборот — разработчикам не очень интересно удовлетворять странные желания нескольких человек.
Но в принципе тебе никто не мешает написать свою утилиту, которая будет зашифровывать закрытым, а расшифровывать открытым. Цифровая подпись — это как раз зашифрование хеша приватным ключом. Так что технически это возможно, но будет не по стандарту.
Здравствуйте, Donz, Вы писали:
D> F>Да я понял уже, тож спасибо.. Обойдусь другими методами... Написать, конечно, можно... Но заказчик, время...
D> Так может не изобретать велосипед наоборот? Сделайте зашифрование открытым и расшифрование закрытым.
Точно не люблю двухколесных Решил ток пароль для RC4 шифровать как RCA.
Здравствуйте, Figaro, Вы писали:
D>> Так может не изобретать велосипед наоборот? Сделайте зашифрование открытым и расшифрование закрытым. F>Точно не люблю двухколесных Решил ток пароль для RC4 шифровать как RCA.
Не понял. Можно изначальную задачу? Очень сомневаюсь, что у тебя что-то настолько специфическое, что не укладывается в уже готовые принципы криптографии.
Здравствуйте, Donz, Вы писали:
D> D>> Так может не изобретать велосипед наоборот? Сделайте зашифрование открытым и расшифрование закрытым.
D> F>Точно не люблю двухколесных Решил ток пароль для RC4 шифровать как RCA.
D> Не понял. Можно изначальную задачу? Очень сомневаюсь, что у тебя что-то настолько специфическое, что не укладывается в уже готовые принципы криптографии.
Обычная задача: выдача клиенту лицензии и проверка ее... Сама лицензия состоит из данных компа клиента, организации и т.п. Ее шифрую RC4, который симметричный естественно... Но клиенту посылаю файло где вначале RSA зашифрован пароль для RC4.. Ключ RSA private вшит в прогу...
Хотелось зашивать туда public, но не судьба
Здравствуйте, Figaro, Вы писали:
F>Обычная задача: выдача клиенту лицензии и проверка ее... Сама лицензия состоит из данных компа клиента, организации и т.п. Ее шифрую RC4, который симметричный естественно... Но клиенту посылаю файло где вначале RSA зашифрован пароль для RC4.. Ключ RSA private вшит в прогу... F>Хотелось зашивать туда public, но не судьба
А в чем смысл шифрования пароля, если кто угодно его может расшифровать? И в чем смысл шифрования чего-то там при помощи RC4, если он опять же доступен кому угодно? Или ключ RС4 yникален для каждой копии программы?
Если ты хочешь передать какую-то информацию, к которой должен быть доступ только у конкретной копии программы, то она должна генерировать свою пару ключей, отправлять тебе public ключ. Ты им зашифровываешь свой пароль, отсылаешь программе, программа расшифровывает при помощи своего уникального private ключа. Это стандартная схема работы.
Каждый ключ RC4 уникален, генериться ГСЧ... Что т вроде сессионного ключа. В проге прошит только private key для расшифровки заголовка лицензии (там пароль от RC4). В самой же лицензии инфа о пользователе и его компе.
Здравствуйте, Figaro, Вы писали:
F>Каждый ключ RC4 уникален, генериться ГСЧ...
Генерится уже на клиенте или сразу поставляется с копией программы?
F>Что т вроде сессионного ключа. В проге прошит только private key для расшифровки заголовка лицензии (там пароль от RC4). В самой же лицензии инфа о пользователе и его компе.
Если один и тот же закрытый ключ поставляется с каждой копией программы, то он закрытым не является и доступен кому угодно. В чем смысл шифровать им что-то? И какой смысл держать зашифрованные данные и ключ для расшифрования в одном и том же месте?
Обычно вот такая схема: с ПО поставляется открытый ключ. ПО инсталлируется, генерирует свою пару ключей (либо уже использует уникальную сгенерированную при отгрузке ПО пару), зашифровывает основным открытым ключом свой новый открытый ключ, отправляет его на сервер. Сервер зашифровывает новым открытым ключом новый сгенеренный RC4 ключ и высылыает его назад ПО.
Еще можно наворотить цифровую подпись, чтобы гарантировано определить, что копия ПО та самая, за которую себя выдает, когда пересылает свою новую пару ключей.