Eindeutige Abbildung einer Zahl auf eine andere

Neue Frage »

Klauswr Auf diesen Beitrag antworten »
Eindeutige Abbildung einer Zahl auf eine andere
Meine Frage:
Ziel ist es, eine Zahl (max 12 Stellen!) auf eine andere Zahl im gleichen Zahlenraum (auch wieder max 12 Stellen) "abzubilden".

Die Idee ist folgende: Es sollen "Seriennummern" generiert werden, die in diesem 12-stelligen Zahlenraum "wie zufällig verteilt" aussehen sollen. Schon gar nicht soll man mögliche gültige Nummern "erraten" können.

Gleichzeitig soll aber sichergestellt werden, dass jede dieser "Seriennummern" nur einmal gereriert wird. Ein Zufallgenerator kann das nicht leisten.

Stattdessen sollen nun die Zahlen 1,2,3,4,...[bis maximal möglich*] geeignet "umgewandelt" oder abgebildet werden.

*Maximal möglich heisst hier: Es darf keine zu große Dichte der "gültigen" Seriennumern entstehen, weil sonst zu leicht zu "treffen". Es müssen also nur ca 25% der erlaubten Menge, hier also wohl 259.999.999.999 der möglichen 999.999.999.999, berücksichtigt werden. Vielleicht hilft's.



Meine Ideen:
Ein möglicher Ansatz war, dass aus der Quellzahl jeweils die Zahl an einer bestimmten "Stelle" genommen wird, um die Zielzahl (immer die gleiche Zufallszahl als Basis) zu manipulieren nach dem Schema:

Gehe die Ziffern der Quellzahl einzeln durch und erhöhe die Ziffer der Zielzahl an der Stelle, die durch den Wert (die Ziffer) der Quellzahl bezeichnet wird um die "Stelle" (also die Position).

Beispiel:

Quellzahl: 000000000012
Zielzahl : 182845023891

Q-Stelle 1: Wert 2 --> Z-Stelle 2 (vorher 9) + 1 (Q-Stelle) => 0 **)
Q-Stelle 2: Wert 1 --> Z-Stelle 1 (vorher 1) + 2 (Q-Stelle) => 3
Q-Stelle 3: Wert 0 --> Z-Stelle 0 -- ignoriert --
...
Q-Stelle 12: Wert 0 dito

Neue Zielzahl: 182845023803 enspricht also der "12".Seriennummer.

Der Ansatz funktioniert aber nicht, wegen der möglichen Doubletten, die durch den nicht berücksichtigten "Übertrag" (**) entstehen! Oder muss man den einfach nur mitberücksichtigen?

Also statt

Q-Stelle 1: Wert 2 --> Z-Stelle 2 (vorher 9) + 1 (Q-Stelle) => 0
AUCH geleichzeitig noch Z-Stelle 3 (vorher 8) + 1 (Übertrag) => 9
Neue Zielzahl: 182845023903 enspricht also der "12".Seriennummer.
Könnte klappen, da mit den Ziffern 1-9 ja nicht alle Zielziffern getroffen wrden würden. Dann könnte sogar die 0 mit berücksichtigt werden (quasi als 1. Stelle, die 1 dann als 2, usf).
kiste Auf diesen Beitrag antworten »

Klingt nach einer einfachen Verschlüsselung.
Informier dich mal über das RSA-Verfahren.
Klauswr Auf diesen Beitrag antworten »

Über das RSA Verfahren habe ich mich schon informiert, ebenso über MD4/5/6 und SHA.

RSA: Die Abbildung ergibt im eibfachsten Fall stellentreu für die gleiche Zahl immer den gleichen Code. Also würde aus der erwähnten 00000000012 auch irgendwas wie 66666666697 enstehen, die nachfolgenden Zahlen 13, 14 15 ... hätten in der Zielzahl auch wieder alle das gleiche Präfix 666666666. Das gilt es zu vermeiden. Es soll "gestreut" aussehen. RSA bietet zwar auch die Kodierung auf "Guppen" von Zeichen, aber auch die wären ja immer gleich (00000).

MDx und SHA ergeben viel zu lange Zahlen und sind auch nicht zwangsläufig eindeutig.
kiste Auf diesen Beitrag antworten »

Du sollst ja auch nicht einzelne Ziffern kodieren, sondern die gesamte Zahl geschockt

Du musst halt p und q so wählen dass es eine große 12-stellige Zahl ergibt.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »