Хотя вы можете создать свою собственную хеш-функцию, симметричный шифр, схему шифрования с открытым ключом и т. д., чтобы никто не знал о ее конструкции, вероятно, было бы плохой идеей полагаться на неясность (как прокомментировал @kelalaka) для обеспечения безопасности.
В 19 веке Огюст Керкхоффс сформулировал принцип, который мы называем «принцип Керкхоффа»:
криптосистема должна быть безопасной, даже если все о системе, кроме ключа, общеизвестно.
Кроме того, Шеннон Максим был также сформулирован в 20 веке и гласит, что:
следует разрабатывать системы, исходя из предположения, что противник сразу же полностью ознакомится с ними
Или, другими словами, когда вы разрабатываете систему безопасности, вы должны исходить из того, что злоумышленник знает, как работает система.
В вашем примере проприетарной хеш-функции злоумышленник может каким-то образом получить доступ к программному или аппаратному обеспечению, которое вычисляет такую хэш-функцию, и с помощью криптоанализа или обратной разработки ему удастся найти уязвимости, такие как атаки столкновений или восстановление предварительного образа. методы.
Еще одна причина не полагаться на проприетарные или секретные методы — это доверие потребителей: почему потребители должны верить, что вы храните их (хэшированный) пароль в безопасности, если вы признаете, что безопасность исходит из незнания реализации?
Вот почему в промышленности криптографические примитивы (хеш-функции, шифры, схемы подписи и т. д.) часто принимаются только после тщательного изучения со стороны научного сообщества. Затем разрабатываются RFC и стандарты, чтобы поставщики и поставщики услуг могли количественно оценить свою безопасность, указав, какому стандарту они соответствуют.