Computer Interfacing
Discussions about interfacing and electronics

How to reverse CRC-64 to get the original DATA

Reversing the CRC-64 process to get the original DATA from CRC Final Value


       Computer Interfacing Forum Index -> Error detection and correction
Author Message
New User

Joined: 03 Aug 2010
Posts: 2

Aug 03, 2010 1:33 pm


I have initialized the CRC Register to ZERO.
I have CRC-64 ISO-3309 polynomial of
x64 + x4 + x3 + x + 1
The parallel CRC calculation based on the above polynomial is illustrated in the (HDL) code below.
for i in 63 to 0 loop
NEXT_CRC_VAL(0) := CRC_VAL(63) xor DATA(i);
for j in 1 to 63 loop
case j is
when 1|3|4 =>
CRC_VAL(j - 1) xor CRC_VAL(63) xor DATA(i);
when others =>
NEXT_CRC_VAL(j) := CRC_VAL(j - 1);
end case;
end loop;
end loop;
My 2 DATA Items are following format which is being fed to the CRC Engine [Item 2 & 3]:

0> CRC Initial = 0
1> 64-Bit DATA = 0x00000000UUUUUUUU
2> 64-Bit DATA = 0xWWWWWWWW00000000
3> Final 64-Bit CRC Engine Value = 0x749e85bfb9257584

In the above line items, WWWWWWWW and UUUUUUUU can be any HEXADECIMAL Digit.

How do I find those unknown WWWWWWWW and UUUUUUUU contents, given the CRC Initial Value, Final Value and the CRC Engine Polynomial?
New User

Joined: 22 Aug 2010
Posts: 3

Aug 22, 2010 5:42 pm

Can you help me out? I do not know much but I am trying to code the reverse code of CRC64. I used the normal polynomial: 0x95AC9329AC4BC9B5UL; In C#. I did not knew the coding of this function so i copied the code of CRC32 Reverse in C#. CRC32 Reverse is working fine but when I try to reverse CRC64, bugs are coming. I need your help.
New User

Joined: 03 Aug 2010
Posts: 2

Aug 23, 2010 12:35 am

Hello aroratushar,

Explain in detail what are you trying to do?
REVERSE CRC64 means what?

Thank you.

       Computer Interfacing Forum Index -> Error detection and correction
Page 1 of 1

Running on php BB © 2001, 2009 php BB Group
   Lammert Bies     Interfacing     Sitemap     Forum