Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна ли соль при шифровании данных, Как надежнее скрыть данные 
:(
    Опции темы
Fobos
Дата 29.2.2012, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 9.2.2008
Где: Москва

Репутация: нет
Всего: нет



Всем привет, разрабатываю одну программу и необходимо хранить данные в базе данных при этом в зашифрованном виде. Шифрование применяю симметричное. Для того чтобы не расшифровали перебором - к данным прикрепляю соль в открытом виде которая хранится в открытом виде в этой же таблице.
Тут меня терзают сомнения, про соль в основном видел примеры с такой аргументацией: "для многих вычисленных хэшей есть уже готовые таблицы, поэтому просто вычислить хэш недостаточно, надо к хэшу присоединить произвольную строку, чтобы поиск по таблицам не помог".
Тут все понятно, а вот как быть с симметричным шированием? Ведь по сути соль лежит рядом с зашифрованными данными? Это же не хэш. В общем оправдано ли такое применение соли(лежит рядом в открытом виде) или необходимо чтобы соль была тоже неизвестна?
PM MAIL ICQ   Вверх
Akina
Дата 29.2.2012, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Что такое "соль" в данном контексте? имитовставка?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Fobos
Дата 29.2.2012, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 9.2.2008
Где: Москва

Репутация: нет
Всего: нет



Да, некий произвольный массив данных, т.е. я беру шифруемые данные присоединяю к ним этот массив и шифрую
Собственно можно даже вопрос так переформулировать:
1. Нужна ли вообще соль при симметричном шифровании или все определяется длиной ключа? 
2. Нужна ли она в случае если у меня размер шифруемых данных очень мал?

Это сообщение отредактировал(а) Fobos - 29.2.2012, 12:18
PM MAIL ICQ   Вверх
Akina
Дата 29.2.2012, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Обычно шифрование выполняется блоками определённой длины. Если блок меньше (скажем хвостовой) - он всё равно дополняется до полного (нулевыми битами, текстовыми пробелами и пр.). Так что постановка имитовставки - это обычная практика.

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


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Fobos
Дата 29.2.2012, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 9.2.2008
Где: Москва

Репутация: нет
Всего: нет



Цитата(Akina @ 29.2.2012,  13:05)
Обычно шифрование выполняется блоками определённой длины. Если блок меньше (скажем хвостовой) - он всё равно дополняется до полного (нулевыми битами, текстовыми пробелами и пр.). Так что постановка имитовставки - это обычная практика.

Хм, насчет хвостовых блоков и дополнения - не думаю что это необходимо выполнять разработчику, это деталь реализации - зачем мне как пользователю криптобибилотеки знать о размерах блоков которыми шифруются данные и подгонять размер своих данных под "необходимый"
На мой взгляд реализация должна сама дополнить шифруемый блок данных до требуемого и зашифровать.
Криптостойкость не должна зависеть от длины шифруемого сообщения, а только от размера ключа - я прав?
PM MAIL ICQ   Вверх
Akina
Дата 29.2.2012, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(Fobos @  29.2.2012,  14:32 Найти цитируемый пост)
зачем мне как пользователю криптобибилотеки знать о размерах блоков которыми шифруются данные и подгонять размер своих данных под "необходимый"

А ты и не будешь знать. Если ты пользователь криптобиблиотеки.

Цитата(Fobos @  29.2.2012,  14:32 Найти цитируемый пост)
Криптостойкость не должна зависеть от длины шифруемого сообщения, а только от размера ключа - я прав? 

Зависит от алгоритма.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
volatile
Дата 29.2.2012, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 2
Всего: 85



Цитата(Fobos @  29.2.2012,  11:13 Найти цитируемый пост)
Ведь по сути соль лежит рядом с зашифрованными данными? Это же не хэш. В общем оправдано ли такое применение соли(лежит рядом в открытом виде) ? 

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

В качестве соли берут обычно случайную последовательность, которую естественно нигде не хранят.

PM MAIL   Вверх
Alexandr87
Дата 1.3.2012, 14:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: 1
Всего: 39



Я так понял, ответа на вопрос так и не было )

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

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



Цитата(Akina @  29.2.2012,  16:05 Найти цитируемый пост)
Если же перед шифрованием шифруемый поток порезать на блоки случайной длины и дополнить случайными битами в случайных позициях (понятное дело, восстановимых) - мат. стойкость шифрования значительно увеличится, потому что усложнится процесс идентификации удачи при брутфорсе. 

мат. стойкость шифрования не увелится. Да и вообще от лукавого всё это - по теории стойкость шифрования должна строится только на знании секретного ключа, а никак не знании алгоритма.
PM Jabber   Вверх
Akina
Дата 1.3.2012, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(Alexandr87 @  1.3.2012,  15:01 Найти цитируемый пост)
по теории стойкость шифрования должна строится только на знании секретного ключа, а никак не знании алгоритма. 

По теории - да. Но если метод имеет математические или статистические уязвимости?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Alexandr87
Дата 1.3.2012, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: 1
Всего: 39



Цитата(Akina @  1.3.2012,  17:06 Найти цитируемый пост)
Но если метод имеет математические или статистические уязвимости? 

мы щас об алгоритме шифрования Васи Пупкина? Извините, я такие не рассматривал.
PM Jabber   Вверх
marijuana1
Дата 5.3.2012, 05:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 5.3.2012

Репутация: нет
Всего: нет



гуглите про радужные таблицы
PM MAIL   Вверх
tzirechnoy
Дата 10.3.2012, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: нет
Всего: 16



Если использовать соль как в паролях, присоединяя её к тексту -- то да, от наличия части текста стойкость шыфрования уменьшается. Часто -- резко. Но без соли сразу обнаружываются повторяющиесе блоки текста, что само по себе плохо, а часто очень плохо. Потому соль использовать надо, но с умом -- например, XORить её с исходным текстом или там в качестве полинома для его преобразования использовать.

PM MAIL   Вверх
volatile
Дата 11.3.2012, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 2
Всего: 85



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

Цитата(volatile @  29.2.2012,  23:58 Найти цитируемый пост)
 качестве соли берут обычно случайную последовательность, которую естественно нигде не хранят.

Выглядит это примерно так.
Допустим, есть секретный текст: "Секретный текст"
К этому секретному тексту добавляется маркер конца строки (В С/С++ это '\0', например)
После маркера добавляется случайная последовательность, до заполнения блока.
Выглядит это примерно так "Секретный текст\0@#$%$#@#$%"
И вся это шифруется.

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

Если секретный текст больше 60% размера блока, нужно разбить его на несколько частей, так чтобы было примерно 60%-текста, 40%-случайного "мусора" в каждом блоке. Ну соотношение может быть и другое, это степень паранои дело вкуса .


Это сообщение отредактировал(а) volatile - 11.3.2012, 10:58
PM MAIL   Вверх
Alexandr87
Дата 12.3.2012, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: 1
Всего: 39



Цитата(tzirechnoy @  10.3.2012,  21:43 Найти цитируемый пост)
 Но без соли сразу обнаружываются повторяющиесе блоки текста, что само по себе плохо, а часто очень плохо. Потому соль использовать надо, но с умом -- например, XORить её с исходным текстом или там в качестве полинома для его преобразования использовать.

Пержде чем изобретать сомнитвельного качестве велосипед, рекомендую ознакомиться с режимами блочного шифрования: http://en.wikipedia.org/wiki/Cipher_block_chaining


Цитата(volatile @  11.3.2012,  13:46 Найти цитируемый пост)

Выглядит это примерно так.
Допустим, есть секретный текст: "Секретный текст"
К этому секретному тексту добавляется маркер конца строки (В С/С++ это '\0', например)
После маркера добавляется случайная последовательность, до заполнения блока.
Выглядит это примерно так "Секретный текст\0@#$%$#@#$%"
И вся это шифруется.

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

Если секретный текст больше 60% размера блока, нужно разбить его на несколько частей, так чтобы было примерно 60%-текста, 40%-случайного "мусора" в каждом блоке. Ну соотношение может быть и другое, это степень паранои дело вкуса .

Мда, вот такие алгоритмы и придумывают при незнании стандартных, нормальных подходов.(ссылка выше). 
А почему именно 40% процентов мусора. А если мусора будет 60%, то по-вашему стойкость будет выше?
Да и, а вот если надо не строку шифровать, а массив байт, там \0 может встретиться внутри данных, вы как будете опередлять который из \0 ограничитель
PM Jabber   Вверх
volatile
Дата 13.3.2012, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2107
Регистрация: 7.1.2011

Репутация: 2
Всего: 85



Цитата(Alexandr87 @  12.3.2012,  13:54 Найти цитируемый пост)
рекомендую ознакомиться с режимами блочного шифрования

А причем здесь вообще режимы блочного шифрования?
Их никто не отменял, и не подменял. Здесь вообще не про это.

Цитата(Alexandr87 @  12.3.2012,  13:54 Найти цитируемый пост)
Да и, а вот если надо не строку шифровать, а массив байт, там \0 может встретиться внутри данных, вы как будете опередлять который из \0 ограничитель 

Всё это решается элементарно, когда дойдет дело до написания реального кода.
Смысл сказанного в разъяснении принципа, а уж как его применить к не текстовым данным, любой мало-мальски программирующий додумается.

Цитата(Alexandr87 @  12.3.2012,  13:54 Найти цитируемый пост)
Мда, вот такие алгоритмы и придумывают при незнании стандартных, нормальных подходов.(ссылка выше). 

Написать дежурную фразу типа "это-велосипед", и тыкнуть куда-нибудь в английскую википедию, можно на 95% всех топиков форума.
Впрочем, поступлю так-же, (а че действительно напрягаться, объяснять что-то?)
Читайте.


Это сообщение отредактировал(а) volatile - 13.3.2012, 00:21
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0993 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.