Является ли шифрование Md5 симметричным или асимметричным? - PullRequest
6 голосов
/ 05 января 2010

Для моего приложения iPhone Apple хочет знать, больше ли у меня шифрование пароля (md5), чем 64-битная симметрия или больше, чем 1024-битная симметрия. Я не смог найти его в Интернете, поэтому мне интересно, если кто-нибудь знает ответ. Кроме того, считается ли это подходящей технологией шифрования паролей или я должен использовать что-то другое?

Спасибо за любую помощь!

Ответы [ 8 ]

32 голосов
/ 05 января 2010

MD5 - это функция хеширования, поэтому по определению она необратима. Это не относится к шифрованию (симметричному или асимметричному), которое должно быть обратимым, чтобы быть полезным.

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

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

Как правило, хорошая идея - хешировать пароли вместо хранения простого текста (даже зашифрованного). (Еще лучше, если использовать соль) Однако у MD5 есть известные недостатки (и большие коллекции радужных таблиц, которые помогают в обнаружении столкновений), поэтому было бы неплохо переключиться на что-то вроде SHA-1 или одного из SHA-2. семейство хешей.

Однако, чтобы ответить на ваш первоначальный вопрос, на самом деле нет никакого способа сравнить MD5 или любой хэш с любым типом шифрования; у них нет аналогов, потому что это все равно что сравнивать яблоки и апельсины.

7 голосов
/ 05 января 2010

md5 на самом деле не является симметричным или асимметричным шифрованием, потому что оно не обратимо ни симметрично, ни асимметрично. Это алгоритм Message Digest (безопасный хэш).

5 голосов
/ 05 января 2010

Это не шифрование, это дайджест. Если вы не солили, это не особенно безопасно, но они задают вам неправильный вопрос.

Что именно вы делаете с MD5 и паролями? Здесь есть стандартные способы ведения дел, и всегда лучше использовать один, но не зная, что вы хотите сделать, трудно указать вам соответствующий стандарт.

2 голосов
/ 09 ноября 2011

Apple задает вопрос об использовании MD5 для хеширования паролей, чтобы узнать, требуется ли для экспорта разрешение от Министерства торговли / Бюро промышленности и безопасности.

Ответ для этой цели заключается в том, что использование MD5 для защиты паролем не контролируется как надежное шифрование (например, симметричные алгоритмы, превышающие 64 бита) в соответствии с Технической запиской к 15 CFR, часть 774, Дополнение 1, ECCN 5A002, пункт а.1, который описывает использование шифрования для защиты паролем. Тем не менее, он все еще может контролироваться в соответствии с ECCN 5A992.

http://www.bis.doc.gov/encryption/ccl5pt2.pdf

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

Кроме того, вы можете позвонить в Министерство торговли / Бюро промышленности и безопасности по телефону 202-482-0707 и спросить о вашем конкретном заявлении.

2 голосов
/ 05 января 2010

Это НЕ шифрование вообще.

1 голос
/ 04 октября 2012

Хеш-функция чаще всего является способом сжатия ваших данных. Это однонаправленные хеш-функции, то есть трудно переворачивать (имея хеш-функцию = дайджест сообщения, трудно найти исходное сообщение, которое преобразуется в конкретное хеш-значение). С другой стороны, их очень легко реализовать, потому что нет необходимости в ключах любого типа.

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

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

0 голосов
/ 20 апреля 2010

Как уже упоминали многие другие ребята, MD5 не является симметричным или асимметричным алгоритмом.

Вместо этого в криптографии все вместе. Это один из самых маленьких алгоритмов хеширования, доступных в .Net Framework. Всего 16 байтов для его ключей, который должен быть 128 бит. То, с чем ты учишь свой хлеб с маслом.

Так что да, он больше, чем 64-битный, размер которого составляет всего 8 байт.

Максимальный размер ключа, который используют обычные symm 'enc' algs, составляет 256 бит (Rijndael Managed).

Если вы хотите, чтобы размеры ключей были больше, то вы можете использовать симметричные 'RC' -символы RC2, которые поддерживают переменные размеры ключей. С чем можно поэкспериментировать?

Если вы хотите более 1024 бит, то вам нужно смотреть на Asymm 'Enc' Algs, например, на класс RSACryptoServiceProvider, который поддерживает размеры ключей до 16K в битах, я думаю?

Если вы хотите использовать пароли, то вам нужно использовать хешируемые ключи, как и все, что угодно в HMAC, это должны быть алгоритмы хеширования с ключами или MacTripleDes. Все они используют секретные ключи для шифрования хэша, который генерируется из предоставленных вами данных. Ключи создаются с использованием паролей и значений соли через класс RFC2898DerivesBytes. <- Не забывайте, что RC2, Rijndael, AES, DES и т. Д. Могут быть настроены на использование паролей для получения секретных ключей. Если вы думаете, что вступительное предложение этого абзаца немного вводит в заблуждение. Поэтому я добавил это, чтобы быть уверенным в том, что хеширование - это совсем не то, что вам нужно. </p>

* ПОМНИТЕ, ЧТО ЕСТЬ УНИКАЛЬНЫЕ ИЕРАРХИИ НАСЛЕДОВАНИЯ В Пространстве имен криптографии .net. Таким образом, MD5 является базовым абстрактным классом, из которого должны быть получены производные классы MD5. .Net предоставляет один такой производный класс, который называется классом MD5CryptoServiceProvider. По сути, это управляемый класс-оболочка, который делает вызов Windows неуправляемым API-интерфейсом Crypto-Libraries MD5 известен в официальных учебниках MS под общим термином «алгоритм без ключа». *

Вам доступно множество вариантов.

:) Наслаждайтесь!

0 голосов
/ 13 апреля 2010

Я думаю, что MD5 используется для большей безопасности .... если мы говорим о каком-либо алгоритме шифрования или дешифрования, они просто для преобразования любого простого текста в зашифрованный текст ... но с другой стороны, MD5 обеспечивает уникальность обычный текст, который будет отправлен из любого источника (Алиса) ... поэтому мы можем сказать, что для большей безопасности или для обеспечения конверта в простой текст MD5 следует использовать перед использованием любого алгоритма шифрования algothim (симметричного или асимметричного).

...