Toon posts:

[coderingsalgoritmen] Beste keuze?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey,

We zijn een licentiesysteem aan het programmeren in visual C++. Hierbij gebruiken we Rijndael om een licentiesleutel te encrypteren en door te sturen (bijvoorbeeld van het bedrijf naar de klant). Probleem is dat een sleutel van 12 karakters hierbij omgezet wordt in 16*2=32 karakters. Dit is te groot vermits de klant in kwestie dit nummer moet doorbellen. Is dit te voorkomen of moeten we een ander algoritme gebruiken? Het zouden dus twaalf karakters moeten blijven.

( Rijndael algoritme: http://www.codeproject.com/cpp/aes.asp?target=aes )

mvg,
Luk en Filip

[ Voor 8% gewijzigd door Verwijderd op 10-04-2003 16:03 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

ik neem aan dat die code een hexadecimale string is, en dat je dus alleen gebruik maakt van 0 t/m 9 en a t/m f?

je zou in principe ook de rest van het alfabet kunnen gebruiken, dat scheelt weer een paar characters (maar het blijven er veel)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Akkoord, maar Rijndael geeft ongeacht de input 16 hexadecimale getallen (32 tekens). Dit omdat de minimum blokgrootte 16 is. Dus het is geen vooruitgang om de input te verkleinen (die is 12 groot). Moeten we dan uitkijken naar een ander algoritme of is hier een mouw aan te passen?

  • weerdo
  • Registratie: December 2000
  • Niet online
Je kunt natuurlijk in de app een 'toon licentie-controlenummer' opnemen waarin je m.b.v. MD5 (met custom seed) een hash (het controlenummer) van de gebruikte licentienummer genereert en toont; eventueel naar lengte getrimd. Bij vragen moet de klant dit nummer doorgeven. Aan de bedrijfskant weet je de licentiecode, kan je ook het controlenummer uitrekenen. Bij problemen geeft de klant het controlenummer door, dit wordt gematched met het controlenummer aan de bedrijfskant. Indien deze matched heb je een geldige key.

[ Voor 4% gewijzigd door weerdo op 10-04-2003 16:23 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Verwijderd schreef op 10 April 2003 @ 16:10:
Akkoord, maar Rijndael geeft ongeacht de input 16 hexadecimale getallen (32 tekens). Dit omdat de minimum blokgrootte 16 is. Dus het is geen vooruitgang om de input te verkleinen (die is 12 groot). Moeten we dan uitkijken naar een ander algoritme of is hier een mouw aan te passen?
ik zeg ook niet dat je de input moet verkleinen, ik zeg dat je de output kunt verkleinen door meer mogelijkheden per teken te gebruiken :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Dit zou mogelijk zijn moesten we aan de bedrijfskant de licentiecode kennen. Deze kennen we echter niet vermits die afhankelijk is van de installatiedatum en het harde schijfnummer. Deze code moet overigens ook via encryptie doorgestuurd worden. Rijndael maakt hier ook een soepje (32 tekens) van.

Verwijderd

Topicstarter
.oisyn schreef op 10 April 2003 @ 16:26:
[...]


ik zeg ook niet dat je de input moet verkleinen, ik zeg dat je de output kunt verkleinen door meer mogelijkheden per teken te gebruiken :)
ic, is inderdaad een mogelijkheid, maar het maximum zou toch 12-16 tekens mogen zijn, en dit is niet haalbaar...

Toch al een verbetering, bedankt.

  • weerdo
  • Registratie: December 2000
  • Niet online
Verwijderd schreef op 10 April 2003 @ 16:26:
Dit zou mogelijk zijn moesten we aan de bedrijfskant de licentiecode kennen. Deze kennen we echter niet vermits die afhankelijk is van de installatiedatum en het harde schijfnummer. Deze code moet overigens ook via encryptie doorgestuurd worden. Rijndael maakt hier ook een soepje (32 tekens) van.
In feite zoek je een symmetrisch coderingsalgoritme welke een imputlength van 128 bits accepteert, en een outputlength van 128 bits geeft. (16 karakters, naar iets om te zetten wat maximaal 12 karakters lang is; wat hier beschreven is)

Blowfish, Skipjack, MARS (welke met relatief korte keylength, en imputlength/outputlength kunnen werken) kunnen voor dit probleem intressant zijn. (http://www.tropsoft.com/strongenc/prodinfo.htm)

Verwijderd

Topicstarter
Bedankt, we bekijken juist blowfish en dit is idd op maat gemaakt voor ons. :)

  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 22:26

Tomatoman

Fulltime prutser

Je kunt op 128-bits Rijndael-encryptie overstappen, dan wordt de code 16 hexadecimale karakters lang (8 bits per twee letters). Je kunt ook 192-bits Rijndael nemen. Je stopt dan iedere 12 bits in twee letters uit het alfabet en zo kun je de code weergeven in 16 letters. Iedere letter moet dus 6 bits weergeven (= 64). Dat kan bijvoorbeeld met de karakters A..Z, a..z, 0..9, !, ?.

Een goede grap mag vrienden kosten.


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 15:12

alienfruit

the alien you never expected

Je kunt natuurlijk ook een unieke GUID van de gebruiker gebruiken; en daar wat mee doen :)
Pagina: 1