2008-09-17 11 views
0

Я создаю простую систему лицензирования для своих приложений.Криптографический алгоритм

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

Мне нужно зашифровать некоторые данные (срок действия и электронную почту клиента) с помощью личного ключа, а затем мое приложение расшифровывает данные с помощью открытого ключа для сравнения даты истечения срока действия.

Есть ли известный алгоритм, который делает то, что мне нужно?

EDIT: проблема решена. Класс помощника для использования dsa доступен Here

ответ

5

Отъезд RSA. Большинство современных платформ будут иметь реализацию RSA в своей стандартной библиотеке.

-1

Это не значит, что шифрование с закрытым ключом должно работать вообще. Вы шифруете данные с помощью открытого ключа, его можно дешифровать только с помощью закрытого ключа.

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

+0

Нет, для подписей вы шифруете конфиденциально и расшифровываете их публично. – 2008-09-17 02:05:39

-2

Похоже, вам нужна библиотека!

Я рекомендую проверить LibTomCrypt

8

То, что вы хотите сделать, это на самом деле называется «подписание» в мире криптографии. Вы шифруете что-то своим личным ключом, но поскольку открытый ключ является общедоступным, любой может его расшифровать. Алгоритмы, которые это делают, называются «асимметричными шифрами» (поскольку ключ шифрования отличается от ключа дешифрования).

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

Чтобы быть конкретным, алгоритм RSA будет делать то, что вы хотите безопасным способом.

Сделайте себе одолжение и не пытайтесь осуществить это самостоятельно; скорее, возьмем существующую реализацию, такую ​​как библиотека OpenSSL. Он имеет лицензию в стиле Apache, поэтому вам, вероятно, разрешено использовать ее в своем приложении.

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

-2

Существует так много криптографического алгоритма, например RSA, AES, WEP, .. но если есть квантовые компьютеры, все эти криптографические системы не работают. Итак, если вы хотите узнать или увлечься криптографией, вам следует изучить пост-квантовую криптографию. например Многовариантная криптография, криптография на основе хаша, криптография на основе решетки ...

Кроме того, вы можете искать цифровую подпись. Существует так много людей, которые используют нашу жизнь. например банковской системы безопасности. Например, для цифровой подписи: схемы подписи RSA, HFE-v, схема подписи QUARTZ

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