crypto checksum

Algemene info over deze site. Suggesties e.d. kunnen hier ook geplaatst worden.
Plaats reactie
drpeter
Nieuw lid
Nieuw lid
Berichten: 5
Lid geworden op: 13 sep 2011, 13:11

crypto checksum

Bericht door drpeter » 13 sep 2011, 13:28

Crypto checksum

Ik ben al een poosje bezig voor een hobby projekt om een hexadecimale crypto checksum te ontcijferen echter het is te complex voor mij.
Misschien kan iemand mij hierbij helpen. Ik heb enkele voorbeeld getallen met bijbehorende checksum.
De eerste berekening is dec * 10 en dan HEX, het betreft dus de berekening van de checksum die erachter staat (2 bytes).

Alvast mijn dank.

dec HEX (dec*10) HEX checksum

0 00000000 2103
1 0A000000 5B70
2 14000000 D5E5
3 1E000000 AF96
4 28000000 D8C6
5 32000000 3730
10 64000000 0D65
100 E8030000 8FE9
1000 10270000 C65E
100000 40420F00 61D2
200000 80841E00 B0A9

David
Moderator
Moderator
Berichten: 4935
Lid geworden op: 14 mei 2009, 16:22

Re: crypto checksum

Bericht door David » 14 sep 2011, 13:48

Je notatie verrast me. Weet je hoe je hexadecimale getallen schrijft als decimale getallen?
Je schreef:1 0A000000
2 14000000
Ik verwachtte

1 0000000A
2 00000014

etc.
Stap 1 van het oplossen van een probleem is te erkennen dat je een probleem hebt.
(Raffiek Torreman)

drpeter
Nieuw lid
Nieuw lid
Berichten: 5
Lid geworden op: 13 sep 2011, 13:11

Re: crypto checksum

Bericht door drpeter » 14 sep 2011, 14:03

David schreef:Je notatie verrast me. Weet je hoe je hexadecimale getallen schrijft als decimale getallen?
Je schreef:1 0A000000
2 14000000
Ik verwachtte

1 0000000A
2 00000014

etc.
Bedankt voor uw reaktie, de opbouw is hetzelfde zoals deze in de eprom wordt geschreven cq. gelezen. Vandaar de ''vreemde'' volgorde. Bytes kunnen ook zijn ''geswapped''. Probleem is de checksum, welke zeer complex is. 0 dec checksum = HEX 2103 Vaak worden bytes opgeteld om tot een checksum te komen, zo eenvoudig is het deze keer niet.

David
Moderator
Moderator
Berichten: 4935
Lid geworden op: 14 mei 2009, 16:22

Re: crypto checksum

Bericht door David » 14 sep 2011, 14:41

Ik zie (nog) niet hoe je de checksum kan uitrekenen/ontcijferen. Misschien helpt het om de checksums in een ander getallenstelsel te schrijven, bijv. het tientallig stelsel. Alleen al omdat je waarschijnlijk meer gewend bent om daarmee te werken.
Stap 1 van het oplossen van een probleem is te erkennen dat je een probleem hebt.
(Raffiek Torreman)

arie
Moderator
Moderator
Berichten: 3051
Lid geworden op: 09 mei 2008, 09:19

Re: crypto checksum

Bericht door arie » 14 sep 2011, 21:16

Je hebt 32-bits getallen (in little-endian notatie) met elk een 16-bits checksum.
Je zoekt de functie die de getallen afbeeldt op de checksum.
Dergelijke functies kunnen elke vorm hebben, je zoekruimte is erg groot: in feite heeft elk van de 16 bits van de checksum een eigen functie met 32 binaire invoervariabelen (de bits van je getal).

Je hebt al een aantal waarden gegeven, bijvoorbeeld:
0(hex) => 321(hex)
A(hex) =>705B(hex)

Als je van elk getal de checksum kan bepalen, zou ik eerst nagaan wat de machten van 2 opleveren:
1(hex) => ??
2(hex) => ??
4(hex) => ??
8(hex) => ??
10(hex) => ??
20(hex) => ??
40(hex) => ??
etc.
Je weet dan wat elk individueel bit van je getal doet op de checksum.

Vervolgens kan je kijken wat 2 bits doen, en of het effect daarvan is af te leiden uit de resultaten van de checksums over de 2 individuele bits,
bijvoorbeeld:
90(hex) => ??
is de checksum van 90(hex) samen te stellen uit de checksums van 80(hex) en 10(hex) ?

drpeter
Nieuw lid
Nieuw lid
Berichten: 5
Lid geworden op: 13 sep 2011, 13:11

Re: crypto checksum

Bericht door drpeter » 16 sep 2011, 06:49

arie schreef:Je hebt 32-bits getallen (in little-endian notatie) met elk een 16-bits checksum.
Je zoekt de functie die de getallen afbeeldt op de checksum.
Dergelijke functies kunnen elke vorm hebben, je zoekruimte is erg groot: in feite heeft elk van de 16 bits van de checksum een eigen functie met 32 binaire invoervariabelen (de bits van je getal).

Je hebt al een aantal waarden gegeven, bijvoorbeeld:
0(hex) => 321(hex)
A(hex) =>705B(hex)

Als je van elk getal de checksum kan bepalen, zou ik eerst nagaan wat de machten van 2 opleveren:
1(hex) => ??
2(hex) => ??
4(hex) => ??
8(hex) => ??
10(hex) => ??
20(hex) => ??
40(hex) => ??
etc.
Je weet dan wat elk individueel bit van je getal doet op de checksum.

Vervolgens kan je kijken wat 2 bits doen, en of het effect daarvan is af te leiden uit de resultaten van de checksums over de 2 individuele bits,
bijvoorbeeld:
90(hex) => ??
is de checksum van 90(hex) samen te stellen uit de checksums van 80(hex) en 10(hex) ?
Bedankt voor de tijd en moeite, ik zal dit weekend proberen om te achterhalen welke checksums bij de opgegeven machten horen. Gaat even wat tijd kosten maar ik kom erop terug. 1,2,4 en 8 HEX zal denk ik niet lukken. Want vermoedelijk is de checksum gebaseerd op *10. Minimale decimale waarde 1 = HEX A.
Ik ken namelijk iemand in Rusland die de checksum kan uitrekenen deze wil echter het algoritme niet prijsgeven.

drpeter
Nieuw lid
Nieuw lid
Berichten: 5
Lid geworden op: 13 sep 2011, 13:11

Re: crypto checksum

Bericht door drpeter » 22 sep 2011, 07:20

Ik kan helaas niet van de opgegeven waarden de checksum bepalen, alleen van gehele decimale getallen.
Bijv HEX 20 = dec 32 /10 = 3.2
HEX40 = dec 64 /10 = 6.4

Iemand nog een suggestie? Ik kan dus wel van elk decimaal getal de checksum laten bepalen.

drpeter
Nieuw lid
Nieuw lid
Berichten: 5
Lid geworden op: 13 sep 2011, 13:11

Re: crypto checksum

Bericht door drpeter » 02 okt 2011, 08:32

Probleem opgelost het een crc16 checksum met een polynoom. De checksum wordt dus mede uit een tabel berekend.

Plaats reactie