El principio de Kerckhoffs afirma:
Un criptosistema debe ser seguro incluso si todo sobre el sistema,
excepto la clave, es de conocimiento público.
Por lo tanto, si AES se rompe, es probable que el algoritmo de tu homebrew sea mucho más fácil y ya se habría roto.
Me doy cuenta de que parte de tu pregunta original decía:
provided they do not have the algorithm
Sin embargo, como esto viola el principio de Kerckhoffs, su enfoque de elaboración casera es en sí mismo defectuoso e inseguro.
La principal razón por la que esto es un problema es que no se puede cuantificar la cantidad de seguridad que agrega a su sistema. Le remito a la respuesta de Thomas Pornin a una pregunta similar aquí :
Un giro adicional es que la oscuridad del algoritmo puede dañar la seguridad.
Lo que explico anteriormente es que no se puede confiar en la oscuridad para la seguridad:
podría aumentar la seguridad, pero no mucho (y realmente no puede
saber "cuánto"). Resulta que también puede disminuir la seguridad. los
El problema es el siguiente: es muy difícil hacer un seguro.
algoritmo criptográfico. El único método conocido es publicar el
algoritmo y esperar a la sabiduría colectiva de los criptógrafos alrededor
el mundo para roerlo y llegar a una conclusión que se puede expresar
como "se puede romper de esa manera" o "aparentemente robusto". Un
El algoritmo se declara "bueno" solo si resistió el ataque de
docenas o cientos de criptógrafos competentes durante al menos tres o
cuatro años.
Por lo tanto, debería usar otro algoritmo si le preocupa que AES pueda romperse pronto (eso o no use AES en absoluto). Supongo que el resto de su sistema no es 100% seguro, por lo que, en lugar de perder tiempo, esfuerzo, energía y recursos en la creación de un algoritmo de elaboración doméstica, este esfuerzo debería gastarse en otro lugar, donde puede ser cuantificable que en realidad esté aumentando. seguridad. Todo el código tiene un costo, y no es solo el salario del desarrollador junior lo que lo está creando. Debe ser mantenido y comprendido por todos, y cada persona adicional que aprenda cómo funciona es una vía adicional para que el algoritmo se filtre. No pierdas tu tiempo.