Как зашифровать каждое значение в столбце таблицы базы данных разными ключами - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть собственный алгоритм симметричного шифрования, используемый для шифрования / дешифрования данных. при шифровании столбца в моей таблице базы данных с использованием фиксированного (статического) ключа он создает одинаковые шифротексты для одного и того же открытого текста (детерминированного). Как зашифровать каждое значение в столбце другим ключом с помощью c #.

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Режим счетчика , CTR - еще одна альтернатива ответу Люка. Вы можете использовать счетчик строк в качестве счетчика в режиме CTR. Что может предотвратить атаку своп данных в столбцах. Вы должны хранить только IV где-то. В режиме GCM вы также должны хранить теги аутентификации. Если вам не требуется аутентификация в CTR, GCM использует CTR внутри.

Я хотел бы добавить, что если вы хотите выполнить запрос по этому столбцу, после выхода из режима ECB вы больше не сможете выполнять SELECT WHERE с этим столбцом.

В качестве общего примера вы можете посмотреть на CryptDB , чтобы увидеть, какие запросы могут быть выполнены с зашифрованными данными и как. CryptDB использует, ECB (равенство), CBC (рандомизированный), OPE (шифрование с сохранением порядка для ORDER BY) и Paillier для агрегатов.

0 голосов
/ 19 ноября 2018

«У меня есть собственный алгоритм симметричного шифрования» - эта часть вашего вопроса вызывает у меня тошноту.Если вы имеете в виду тот, который вы создали сами, вам, вероятно, следует сначала исправить это.

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

То, что вы хотите использовать, - это режим, который вводит IV или nonce.Это исправит вашу первоначальную проблему, а также улучшит безопасность в целом.CBC, наверное, самый распространенный.Режим аутентификации, такой как GCM, еще лучше.Я предлагаю вам тщательно изучить режимы работы и требования к безопасному использованию различных режимов.

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