Da Sie Kryptographie aufgegriffen haben, ist eines der coolen Dinge, die gute kryptographische Algorithmen tun, es fast unmöglich, den genauen Algorithmus (dh Funktion plus Schlüssel) zu erraten, der zum Verschlüsseln von etwas verwendet wurde, selbst wenn Sie Zugriff auf die Ein- und Ausgabe haben. Selbst wenn Sie nur wenige Samples (dh einige Milliarden) von Eingängen und übereinstimmenden Ausgaben haben, können Sie die von einer neuen Eingabe erzeugte Ausgabe nicht vorhersagen.
Mit anderen Worten, das, was Sie tun möchten, kann nicht ausgeführt werden, wenn Sie dem Programm alle möglichen Ein- und Ausgänge zuführen. Sie müssen mehr über den Algorithmus als nur die Ein- und Ausgänge wissen.
BEARBEITEN: Es gibt Algorithmen wie neuronale Netze - und einige andere -, die mit einem gegebenen Satz von Ein- und Ausgängen "trainiert" werden können. Beispielsweise kann ein neuronales Netzwerk trainiert werden, um Bilder von Vögeln in einem Satz von Zufallsbildern zu markieren. Diese klingen wie die einfache und perfekte Lösung, aber die Welt ist nicht so einfach. Vor dem Training eines neuronalen Netzwerks muss dieses so strukturiert sein, dass es dem zu lösenden Problem entspricht, und in diesem Fall sind zusätzliche Informationen zu den von ihm nachgeahmten Algorithmen erforderlich, da sonst das Training des Netzwerks fehlschlägt.