powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Вопрос по хэшированию
25 сообщений из 31, страница 1 из 2
Вопрос по хэшированию
    #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
Вопрос по хэшированию
    #39985656
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вопрос по хэшированию
    #39985671
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

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


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

Нет такого.

ИМХО ты ЭЦП изобретаешь. Используй асиметричное шифрование и открытый ключ каждого храни в общедоступном месте.
...
Рейтинг: 0 / 0
Вопрос по хэшированию
    #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
Вопрос по хэшированию
    #39985709
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или еще проще:

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

hh2(data)=g(data)

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

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


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


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


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


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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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


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

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

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

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


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

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

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

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

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

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

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


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