Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
205 / 203 / 145
Регистрация: 20.11.2014
Сообщений: 1,133
1

Хранение ключей шифрования

16.09.2016, 19:22. Просмотров 1254. Ответов 12
Метки нет (Все метки)

Есть программа, которая шифрует некоторые файлы. Шифруется симметричным алгоритмом(ассиметричный использовать не подходит), ключ задается пользователем при первом запуске программы. Ключ хранится в реестре. Собственно вопрос: какие манипуляции надо произвести, что-бы на выходе это была строка отличная от ключа, но что-бы можно было выполнить обратное преобразование
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2016, 19:22
Ответы с готовыми решениями:

Хранение ключей в .dll
Знаю одного человека, который реализовал хранение ключей в .dll И при запуске программы постоянно...

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

Хранение ключей симметричного шифрования
Пишу программу, использующую алгоритм шифрования AES. Озаботился хранением ключа и вектора...

Хранение ключей шифрования
Здравствуйте, уважаемые форумчане! Пользую стандартные .NET'ие реализации симетричных алгоритмов...

12
264 / 248 / 186
Регистрация: 28.10.2015
Сообщений: 723
16.09.2016, 19:35 2
Зашифровать тем же алгоритмом.
0
Хитрая блондиночка $)
1460 / 974 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
16.09.2016, 19:44 3
Цитата Сообщение от bbq Посмотреть сообщение
ассиметричный использовать не подходит
Почему?
Цитата Сообщение от bbq Посмотреть сообщение
что-бы на выходе это была строка отличная от ключа
А как у тебя на выходе получается дубликат ключа?
Как ты этого добился?
0
205 / 203 / 145
Регистрация: 20.11.2014
Сообщений: 1,133
16.09.2016, 19:50  [ТС] 4
Цитата Сообщение от Hikari Посмотреть сообщение
Почему?
Есть открытый текст, он пишется в файл, потом приходит еще один кусок текста, если его просто зашифровать и дозаписать в файл то при расшифровке получается бред. Приходится сначала расшифровывать то, что есть в файле, потом добавлять новый кусок текста и заново шифровать.
Если предложите вариант как от этого избавится буду благодарен



Цитата Сообщение от Hikari Посмотреть сообщение
А как у тебя на выходе получается дубликат ключа?
Возможно не так выразился, есть ключ, например 12345 это string, мне надо хранить его в реестре не в явном виде, например 54207
0
264 / 248 / 186
Регистрация: 28.10.2015
Сообщений: 723
16.09.2016, 20:07 5
Цитата Сообщение от bbq Посмотреть сообщение
Если предложите вариант как от этого избавится буду благодарен
Отмечать каким-то образом конец одного блока и начало другого. Или шифровать блоками одинакового размера.

Цитата Сообщение от bbq Посмотреть сообщение
Возможно не так выразился, есть ключ, например 12345 это string, мне надо хранить его в реестре не в явном виде, например 54207
А какой смысл хранить сам ключ? Ладно бы его хэш, чтобы быстро проверять, что пользователь не ошибся при вводе пароля. Какой смысл в шифровании, если ключ для дешифровки можно тупо прочитать в реестре? Но если сильно надо, то можно шифровать неким "мастер-паролем". Которым может быть, например, какая-то осмысленная длинная фраза, которую можно восстановить, если что. Что-то вроде "Се ветри, Стрибожи внуци, веютъ с моря стрелами на храбрыя плъкы Игоревы". Таким образом можно организовать "защиту от дурака", если пользователь забудет или потеряет ключ.
0
1012 / 714 / 207
Регистрация: 15.08.2010
Сообщений: 2,003
Завершенные тесты: 2
16.09.2016, 20:11 6
Цитата Сообщение от bbq Посмотреть сообщение
Если предложите вариант как от этого избавится буду благодарен
блочное шифрование к примеру при должном выравнивании, и тут не имеет значения симметрия ключа
Цитата Сообщение от bbq Посмотреть сообщение
Возможно не так выразился, есть ключ, например 12345 это string, мне надо хранить его в реестре не в явном виде, например 54207
для шифрования самого ключа используем "ключ2". Но теперь его тоже надо хранить, ладно, зашифруем "ключом3". Ок, теперь как хранить "ключ3" ...... и так долго-долго

Вывод: пользователь должен вводить таки пароль или что-то подобное
0
205 / 203 / 145
Регистрация: 20.11.2014
Сообщений: 1,133
16.09.2016, 20:12  [ТС] 7
Цитата Сообщение от ata Посмотреть сообщение
А какой смысл хранить сам ключ?
Цитата Сообщение от bbq Посмотреть сообщение
Приходится сначала расшифровывать то, что есть в файле, потом добавлять новый кусок текста и заново шифровать.

Да и вообще, что-бы шифровать по ключу, этот ключ надо хранить
0
Хитрая блондиночка $)
1460 / 974 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
16.09.2016, 20:40 8
Цитата Сообщение от bbq Посмотреть сообщение
Если предложите вариант как от этого избавится буду благодарен
Использовать BLOB в базах данных.
Тьфу ты, я думала у тебя завал, а тут задачка на пять минут...
Цитата Сообщение от bbq Посмотреть сообщение
мне надо хранить его в реестре не в явном виде, например 54207
Забудь. Криптовать придется и его. И опять хранить ключ декриптования.
Не делал бы ты себе медвежьих услуг, используй БД для хранения разнообразной информации.
Или выбери технологию блокчейнов. Она чуть сложнее, но надежнее.
1
Ушел с форума
Эксперт С++
16289 / 7355 / 1183
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
16.09.2016, 21:19 9
bbq, ни ключ, ни его хэш не нужно нигде хранить.
Все просто: пользователь вводит пароль, на основе этого пароля
генерируется ключ. Если пароль не тот, расшифровка невозможна.
0
205 / 203 / 145
Регистрация: 20.11.2014
Сообщений: 1,133
16.09.2016, 21:32  [ТС] 10
Цитата Сообщение от Убежденный Посмотреть сообщение
ни ключ, ни его хэш не нужно нигде хранить.
Все просто: пользователь вводит пароль, на основе этого пароля
генерируется ключ. Если пароль не тот, расшифровка невозможна.
А подробнее можно?
Мне нужно использовать ГОСТ 28147-89 при условии, что написано выше(про постоянную дозапись в файл)
0
18 / 20 / 12
Регистрация: 24.06.2016
Сообщений: 71
Завершенные тесты: 1
17.09.2016, 07:26 11
А ведь для использования симметричных алгоритмов шифрования есть причины... Прямо из википедии:

Код
скорость
простота реализации (за счёт более простых операций)
меньшая требуемая длина ключа для сопоставимой стойкости
изученность (за счёт большего возраста)
0
264 / 248 / 186
Регистрация: 28.10.2015
Сообщений: 723
17.09.2016, 09:40 12
Плюсую идею с блокчейнами.
0
Хитрая блондиночка $)
1460 / 974 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
17.09.2016, 13:10 13
Цитата Сообщение от jahtemg Посмотреть сообщение
Прямо из википедии
Для современных персокомов неактуально.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.09.2016, 13:10

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

Хранение ключей и значений в словаре
Мне нужно в словарь записать пары ключ и значение. Но в ключах есть одинаковые значения и...

Как организовать хранение ключей QSettings?
Всем привет! QSettings стал использоваться у меня во многих местах в программе и надоело каждый раз...

Хранение двух одинаковых ключей в HashMap
Если создать такую хэш функцию(hashCode так переопределить) которая для разных обьектов класса...

Вывод значения ключей массива по условию совпадения других ключей
Есть массив $arElements Array ( => Array ( => first ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.