What methods can I use to analyze and guess the 4-bit checksum algorithm?

[Background]

I am working with a 5 year user identification system and I am trying to add identifiers to the database. The problem is that a system that reads identification numbers requires some kind of checksum, and no one working here has ever worked with it, so no one knows how it works.

I have access to a list of existing identifiers that already have the correct checksums. In addition, since the checksum has only 16 possible values, I can create any identifier I want and run it through the authentication system up to 16 times until I get the correct checksum (but this is quite a lot of time).

[Question]

What methods can I use to guess the checksum algorithm for some data? I tried some simple methods like XORing and summing, but they did not work.

So my question is: if I have data (in hexadecimal), for example:

data        checksum
00029921    1
00013481    B
00026001    3
00004541    8

What methods can I use to develop which checksum? that is, I have to try sequential numbers like 00029921,00029922,00029923, ... or 00029911,00029921,00029931, ... If I do this, what patterns should I look for in a changing checksum?

Similarly, when comparing the changed numbers, tell me something useful about the checksum? i.e. 00013481 and 00031481

Is there anything else that can tell me something useful? How about inverting one bit or maybe one hexadecimal digit?

, , , . , , , , CRC.

qaru.site/questions/360242/... qaru.site/questions/1073298/... cosc.canterbury.ac.nz/greg.ewing/essays/CRC-Reverse-Engineering.html

[]

, , , , .

:

00024901

00024911 B
00024921 C
00024931 D
00042811

00042871 0
00042881 1
00042891 2
00042901

00042921 C
00042961 0
00042971 1
00042981 2
00043021 4
00043031 5
00043041 6
00043051 7
00043061 8
00043071 9
00043081

00043101 3
00043111 4
00043121 5
00043141 7
00043151 8
00043161 9
00043171 A
00044291 E

, , , :

00024901

00024911 B

, :

00024901

00042901 A

, ( )

, 00000000 A, A mod 16:
((Σx i) + 0xA) mod16
. , 3- , , , , , !

+5
1

, , , . , 3,5,7, 3 * c [0] + 5 * c [1] + 7 * c [2], mod 10 . ( , mod 16, 4- )

, , , :

1000000 = ?
0100000 = ?
0010000 = ?

... .. , , . - , , . , /, , , .

+8

All Articles