asdfman
Commander
- Registriert
- März 2008
- Beiträge
- 2.315
Mahlzeit.
Im Rahmen eines aktuellen Projekts ist mir nebenbei eine Idee für einen
Produktkeygenerierungsalgorithmus eingefallen.
Ich möchte den kurz mal beschreiben und wollte fragen, ob jemandem
auf die Schnelle irgendwelche offensichtlichen Schwächen auffallen.
€: Falls das Verfahren irgendjemandem gefallen sollte, kann er es gern
so frei er will verwenden. Ich verzichte da auf jegliche Ansprüche geistigen
Eigentums.
Generieren des Key:
1. Man generiere eine sichere 256-bit Zufallszahl S und halte diese geheim.
2. Man generiere vier 32-bit Zahlen P0-3 mit folgenden Eigenschaften:
2a. P0 enthält 32 Bits mit Flags über die Art des Accounts (Admin, Moderator etcpp)
2b. P1 setze man auf einen beliebigen Wert.
2c. P2 ist eine für jeden Nutzer eindeutige ID
2d. P3 sind die letzten 32 Bit von S
3. Man Bilde P durch aneinanderhängen von P0 bis P3
4. Man verschlüssle P mit Rijndael (Blocklänge 128 Bit, Schlüssellänge 256 Bit) mit S als Schlüssel und erhält so K.
5. K ist der Product Key
Verifizieren des Key:
1. Man entschlüssle K mit Rijndael mit S als Schlüssel und erhält P
2. Man teile P in P0 bis P3
3. Man überprüfe, ob die letzten 32 Bit von S und P3 identisch sind. Falls nicht lehne man den Key ab.
3. Man überprüfe, ob P2 mit der ID des Users übereinstimmt. Falls nicht, lehne man den Key ab.
4. Man akzeptiert den Key und setzt die Rechte des Nutzers entsprechend P0
Im Rahmen eines aktuellen Projekts ist mir nebenbei eine Idee für einen
Produktkeygenerierungsalgorithmus eingefallen.
Ich möchte den kurz mal beschreiben und wollte fragen, ob jemandem
auf die Schnelle irgendwelche offensichtlichen Schwächen auffallen.
€: Falls das Verfahren irgendjemandem gefallen sollte, kann er es gern
so frei er will verwenden. Ich verzichte da auf jegliche Ansprüche geistigen
Eigentums.
Generieren des Key:
1. Man generiere eine sichere 256-bit Zufallszahl S und halte diese geheim.
2. Man generiere vier 32-bit Zahlen P0-3 mit folgenden Eigenschaften:
2a. P0 enthält 32 Bits mit Flags über die Art des Accounts (Admin, Moderator etcpp)
2b. P1 setze man auf einen beliebigen Wert.
2c. P2 ist eine für jeden Nutzer eindeutige ID
2d. P3 sind die letzten 32 Bit von S
3. Man Bilde P durch aneinanderhängen von P0 bis P3
4. Man verschlüssle P mit Rijndael (Blocklänge 128 Bit, Schlüssellänge 256 Bit) mit S als Schlüssel und erhält so K.
5. K ist der Product Key
Verifizieren des Key:
1. Man entschlüssle K mit Rijndael mit S als Schlüssel und erhält P
2. Man teile P in P0 bis P3
3. Man überprüfe, ob die letzten 32 Bit von S und P3 identisch sind. Falls nicht lehne man den Key ab.
3. Man überprüfe, ob P2 mit der ID des Users übereinstimmt. Falls nicht, lehne man den Key ab.
4. Man akzeptiert den Key und setzt die Rechte des Nutzers entsprechend P0
Zuletzt bearbeitet: