Предложения по быстрому двустороннему шифрованию?

StackOverflow https://stackoverflow.com/questions/1689590

Вопрос

Может ли кто-нибудь предложить быстрый алгоритм двустороннего шифрования для длинных целых чисел?

Мои кандидаты:

  • АЭС:расширенный стандарт шифрования, указанный NIST FIPS-197.
  • РЫБА-ИЛОУ:алгоритм Blowfish, определенный Брюсом Шнайером.
  • ДЕС:алгоритм стандарта шифрования данных, определенный NIST FIPS-46-3.
  • ДЕСЕДЕ:алгоритм «Triple DES», определенный NIST FIPS-46-3.

Редактировать -

Скорость является более важным фактором, чем безопасность.Фактический запрос заключался в том, чтобы «запутать» идентификаторы, передаваемые через внутренние веб-службы, чтобы в случае, если идентификатор когда-либо будет раскрыт, нельзя было угадать другие идентификаторы, добавив 1.(аргумент в пользу ключей UUID вместо длинных автоинкрементов??)

Это было полезно?

Решение

Используйте AES.Скорость была основным фактором при выборе замены DESEDE.На современном оборудовании ПК он, как правило, работает быстрее, чем Blowfish, и в стандартной комплектации, скорее всего, имеет специализированную аппаратную поддержку.

Кстати, все шифры шифруют длинные целые числа — каждый поток байтов представляет собой целое число, представленное в системе счисления с основанием 256.

Другие советы

Мне не нужен открытый ключ.Требование состоит в том, чтобы шифровать идентификаторы в базе данных при их передаче между компьютерами.Обе машины будут иметь соль

Затем, XOR?

Какой для вас главный критерий выбора?Скорость или безопасность?Это фундаментальный компромисс в криптографическом бизнесе.Вот набор результаты тестов для Crypto++.Они не расскажут вам всего, но вы сможете сказать, какие алгоритмы обычно быстрее других.Вот технический документ, в котором обсуждаются относительные преимущества некоторых популярных алгоритмов.В общем случае определение силы — очень сложная задача, хотя некоторым алгоритмам было уделено достаточно внимания, и их сильные и слабые стороны достаточно хорошо известны (DES, RSA и т. д.).Общепринятое эмпирическое правило заключается в том, что более длинные клавиши подразумевают большую силу, но с этим нужно быть очень осторожным.Подозреваю, что в вашем случае подойдет либо AES, либо Blowfish.AES, вероятно, будет поддерживаться несколько шире, но на самом деле, вероятно, подойдет любой из них.Держитесь подальше от DES, если только скорость не является решающим фактором.

Если безопасность является вашей главной заботой, я бы выбрал AES.

Однако зашифрованный текст может оказаться слишком большим для вашей базы данных.Если вы добавите IV, дополнение, это будет как минимум 64 символа в шестнадцатеричном формате.Вы можете использовать алгоритм, который я разместил здесь, если вы столкнулись с таким пределом,

простое симметричное шифрование длинных строк (и обратно) в Java

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top