Гость
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вопрос по хэшированию / 25 сообщений из 31, страница 1 из 2
31.07.2020, 15:58
    #39985622
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
Есть такое понятие как HMAC - это некоторая хэш-функция, которая получает на вход данные и ключ и возвращает хэш, значение которого для данных зависит от ключа, т.е. hash = hh(key, data).

Вопрос: существует ли в природе какой-нибудь механизм, который позволяет для одинаковых данных получать одинаковое значение хэша при различных ключах. Т.е. у одного человека есть ключ key1, у другого - key2, и требуется что-то вроде hash = hh2(key1, x1, data) = hh2(key2, x2, data), где x1, x2 - некоторые дополнительные параметры, не секретные, которые можно вычислить зная hash, data и keyX.

Нужно это для реализации некоторого подобия генератора OTP который можно будет синхронизировать для разных людей, не обмениваясь при этом ключами друг-друга.
...
Рейтинг: 0 / 0
31.07.2020, 17:32
    #39985656
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
...
Рейтинг: 0 / 0
31.07.2020, 18:46
    #39985671
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию

Не, это согласование ключей. А мне необходимо чтобы два разных человека могли на двух разных, не связанных между собой , компьютерах получить одинаковый хэш с использованием разных ключей.
...
Рейтинг: 0 / 0
31.07.2020, 19:10
    #39985676
mini.weblab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
в вопросе хэширования не разбираюсь, но скажу :)
с точки зрения математики, вам нужно подобрать функцию, которая будет возвращать одни и те же значения при разных ключах
пример


т.е да, конечно, механизм существует, и это подбор функции с нужными свойствами
...
Рейтинг: 0 / 0
31.07.2020, 20:59
    #39985696
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
alekcvp
где x1, x2 - некоторые дополнительные параметры, не секретные, которые можно вычислить зная hash, data и keyX.

Нет такого.

ИМХО ты ЭЦП изобретаешь. Используй асиметричное шифрование и открытый ключ каждого храни в общедоступном месте.
...
Рейтинг: 0 / 0
31.07.2020, 22:36
    #39985707
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
alekcvp
Есть такое понятие как HMAC - это некоторая хэш-функция, которая получает на вход данные и ключ и возвращает хэш, значение которого для данных зависит от ключа, т.е. hash = hh(key, data).

Вопрос: существует ли в природе какой-нибудь механизм, который позволяет для одинаковых данных получать одинаковое значение хэша при различных ключах. Т.е. у одного человека есть ключ key1, у другого - key2, и требуется что-то вроде hash = hh2(key1, x1, data) = hh2(key2, x2, data), где x1, x2 - некоторые дополнительные параметры, не секретные, которые можно вычислить зная hash, data и keyX.

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


Например, выбираем такой hash(key,data)=f(key) xor g(data) и такой x=f(key)

Тогда hh2(key, x, data)=hh2(key, f(key), data)=hash(key,data) xor f(key)=f(key) xor g(data) xor f(key)=g(data) не зависит от key

Но чужой hash при этом, конечно, вычислить можно
...
Рейтинг: 0 / 0
31.07.2020, 23:30
    #39985709
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
или еще проще:

hash(key,data)=f(key) xor g(data)

hh2(data)=g(data)

но тут и выше не HMAC, разумеется
...
Рейтинг: 0 / 0
01.08.2020, 11:16
    #39985761
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
Спасибо, буду думать.

Ещё в голову пришла мысль использовать в качестве x1 и x2 некий common_key, зашифрованный соответственно key1 и key2. И уже с ним вычислять hmac от data. Не совсем по тз, но вроде самый простой вариант.
...
Рейтинг: 0 / 0
01.08.2020, 17:06
    #39985804
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
alekcvp
Не, это согласование ключей.


Так вам ключ и нужен для получения хеша.


alekcvp
одинаковый хэш с использованием разных ключей.


Это противоречит сути хеша.


Вообще, вы бы лучше задачу конечную озвучили. Какую проблему решаете?

Потому что сейчас выглядит как обсуждение выбранного вами решения, которого не существует.
...
Рейтинг: 0 / 0
01.08.2020, 23:51
    #39985851
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
Надо детализировать вот это техническое задание.

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

Что такое генератор OTP? ХЗ. Тут много аббревиатур подходит.
...
Рейтинг: 0 / 0
02.08.2020, 01:51
    #39985857
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
mayton,

One Time Password, какие ещё могут подойти в обозначенном контексте?
...
Рейтинг: 0 / 0
02.08.2020, 10:15
    #39985871
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
hVostt
Вообще, вы бы лучше задачу конечную озвучили. Какую проблему решаете?

Генерацию одноразовых паролей.
Идея была такая: алгоритм не секретный. Сам пароль генерируется на основе текущего времени и ещё каких-нибудь данных (в т.ч. пароля пользователя). При этом необходимо чтобы два пользователя имели возможность генерировать одинаковые пароли, не зная паролей друг-друга. Причём приложение генерации паролей работает изолированно, т.е. никакой связи с сервером или другими экземплярами. Для синхронизации одноразово передаётся некоторый минимальный объем данных, который можно ввести в приложение вручную, желательно не секретный (зашифрованный RSA?).
...
Рейтинг: 0 / 0
02.08.2020, 14:01
    #39985903
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
alekcvp
При этом необходимо чтобы два пользователя имели возможность генерировать одинаковые пароли, не зная паролей друг-друга.

Это противоречит самой идее одноразовых паролей. Даже один пользователь не должен иметь возможности сгенерировать одинаковый пароль, не то что два.
...
Рейтинг: 0 / 0
02.08.2020, 14:12
    #39985905
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
alekcvp
чтобы два пользователя имели возможность генерировать одинаковые пароли, не зная паролей друг-друга. Причём приложение генерации паролей работает изолированно, т.е. никакой связи с сервером или другими экземплярами. Для синхронизации одноразово передаётся некоторый минимальный объем данных, который можно ввести в приложение вручную, желательно не секретный (зашифрованный RSA?).

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

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

Злоумышленники не дремлют и любую слабость в вашей системе - они систематически расшатывают.
Может закончиться (как вариант) подлогом учетных данных и подставой другого пользователя
который ни в чем не виноват но действия производились от его имени.
...
Рейтинг: 0 / 0
02.08.2020, 15:39
    #39985925
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
alekcvp
hVostt
Вообще, вы бы лучше задачу конечную озвучили. Какую проблему решаете?

Генерацию одноразовых паролей.
Идея была такая: алгоритм не секретный. Сам пароль генерируется на основе текущего времени и ещё каких-нибудь данных (в т.ч. пароля пользователя). При этом необходимо чтобы два пользователя имели возможность генерировать одинаковые пароли, не зная паролей друг-друга. Причём приложение генерации паролей работает изолированно, т.е. никакой связи с сервером или другими экземплярами. Для синхронизации одноразово передаётся некоторый минимальный объем данных, который можно ввести в приложение вручную, желательно не секретный (зашифрованный RSA?).


почему нельзя передавать некоторое общее для всех клиентов число,
с использованием которого они вычислят свои новые пароли?
...
Рейтинг: 0 / 0
02.08.2020, 18:34
    #39985960
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
Dimitry Sibiryakov
Это противоречит самой идее одноразовых паролей. Даже один пользователь не должен иметь возможности сгенерировать одинаковый пароль, не то что два.

Я не просто так написал "некое подобие", если бы мне был нужен просто генератор ОП - я бы взял google auth и не изобретал велосипед...
Aleksandr Sharahov
почему нельзя передавать некоторое общее для всех клиентов число,
с использованием которого они вычислят свои новые пароли?

Потому что у меня стоит обратная задача: позволить клиентам вычислить общее для всех "число", используя их любимые пароли...
...
Рейтинг: 0 / 0
02.08.2020, 18:38
    #39985963
mini.weblab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
что-то типа Badoo?
...
Рейтинг: 0 / 0
02.08.2020, 19:29
    #39985970
Aleksandr Sharahov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
alekcvp

Aleksandr Sharahov
почему нельзя передавать некоторое общее для всех клиентов число,
с использованием которого они вычислят свои новые пароли?

Потому что у меня стоит обратная задача: позволить клиентам вычислить общее для всех "число", используя их любимые пароли...


Тогда почему нельзя слеить хеши паролей клиентов в порядке возрастания и хеш от этой склейки использовать как общее число?

Как могут общаться клиенты?
...
Рейтинг: 0 / 0
02.08.2020, 19:34
    #39985972
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
alekcvp
Генерацию одноразовых паролей.
Идея была такая: алгоритм не секретный. Сам пароль генерируется на основе текущего времени и ещё каких-нибудь данных (в т.ч. пароля пользователя). При этом необходимо чтобы два пользователя имели возможность генерировать одинаковые пароли, не зная паролей друг-друга. Причём приложение генерации паролей работает изолированно, т.е. никакой связи с сервером или другими экземплярами. Для синхронизации одноразово передаётся некоторый минимальный объем данных, который можно ввести в приложение вручную, желательно не секретный (зашифрованный RSA?).


Вы опять рассказываете какое-то выдуманное вами решение. Поймите, всё уже придумано до нас, огромный мир миллиарды человек, сотни тысяч и миллионы программных систем.

Задачу какую решаете? Что хотите добиться? OTP -- это решение! Вы задачу озвучьте. Что, для кого, зачем, что в итоге?

Я вам алгоритм выше ссылку кинул, решение давно известное.

Такого как вы хотите: два разных ключа -- одинаковый хеш, такого не может быть в принципе, даже в теории. Это противоречит самой сути хеша, где изменение любого бита в исходных данных полностью меняет весь хеш. И вообще непонятно чего вам надо в итоге.
...
Рейтинг: 0 / 0
02.08.2020, 19:36
    #39985974
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
Ещё раз.


https://ru.wikipedia.org/wiki/Протокол_Диффи_—_Хеллмана

Протокол Ди́ффи — Хе́ллмана (англ. Diffie–Hellman, DH) — криптографический протокол, позволяющий двум и более сторонам получить общий секретный ключ, используя незащищенный от прослушивания канал связи. Полученный ключ используется для шифрования дальнейшего обмена с помощью алгоритмов симметричного шифрования.

Чем противоречит вашей задаче? Можете прям указать, что здесь не так?
И опять же никто тут понятия не имеет чего вы и зачем делаете.

Поэтому если вы не расскажете нам, то просто мы все тут тратим зря время.
...
Рейтинг: 0 / 0
02.08.2020, 21:04
    #39985985
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
Хорошо, приношу свои извинения, не буду больше тратить ваше время.
...
Рейтинг: 0 / 0
02.08.2020, 21:11
    #39985989
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
Автор почитай ещё про разделяемый секрет Шамира.
Можете подойдет.
...
Рейтинг: 0 / 0
02.08.2020, 21:15
    #39985991
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
Aleksandr Sharahov

Тогда почему нельзя слеить хеши паролей клиентов в порядке возрастания и хеш от этой склейки использовать как общее число?
Потому что нужно независимое (с т.з. каждого пользователя) решение, способное работать без сети.
Aleksandr Sharahov
Как могут общаться клиенты?
Никак.
...
Рейтинг: 0 / 0
02.08.2020, 21:18
    #39985992
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
mayton
Автор почитай ещё про разделяемый секрет Шамира.
Можете подойдет.

Спасибо.
...
Рейтинг: 0 / 0
02.08.2020, 21:50
    #39985994
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по хэшированию
alekcvp
Потому что нужно независимое (с т.з. каждого пользователя) решение, способное работать без сети.

Если нет общего секрета, выданного заранее, то невозможно.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вопрос по хэшированию / 25 сообщений из 31, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]