Если у вас есть распределенная система, которая требует генерации защищенного вывода на основе определенного конфиденциального ввода, самый безопасный способ - просто использовать некоторую форму ключа базы данных, которая не имеет отношения к вводимому, который он представляет. Это гарантирует, что ключ будет совершенно бесполезным вне системы и, следовательно, полностью безопасным.
Однако, поскольку вы работаете в распределенной системе, для создания этого ключа требуется центральное место для генерации каждого ключа, чтобы гарантировать работоспособность каждой части системы.
Если вы хотите создать один и тот же выходной ключ, если две отдельные части системы получают одинаковые входные данные, вы можете зашифровать или хешировать значение. Однако это делает ключ намного менее безопасным - можно подобрать зашифрованный / хешированный ввод. Ключ нет совершенно бесполезен вне системы и, следовательно, небезопасен.
Есть ли какое-либо возможное решение этой проблемы, которое привело бы к созданию полностью защищенного ключа, сгенерированного двумя отдельными частями системы, которые получили один и тот же ввод, без необходимости делать дорогостоящий вызов центрального местоположения?
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что он больше подходит для crypto.stackexchange.com.
Кажется, существуют некоторые существующие технологии для решения этой проблемы. Различные технологии токенизации «Vaultless» / «Stateless» утверждают, что решают эту проблему, однако утверждения о том, что PAN и токены не имеют никакой связи друг с другом, кажутся сомнительными, и, несмотря на утверждения, технология не кажется должным образом проверенной. Подробнее: securosis.com/blog/token-vaults-and-token-storage-tradeoffs
Считать хеш открытым ключом и использовать ли его Диффи-Хеллман и закрытый ключ, который используется во всей системе? Поскольку этот вопрос является теоретическим, его, вероятно, лучше задать на crypto.stackexchange.com.