Questions tagged [crc64]

CRC64 is a 64-bit Cyclic Redundancy Check code, used mainly as an error detection method during data transmission.

A cyclic redundancy check (CRC) is an error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data. Blocks of data entering these systems get a short check value attached, based on the remainder of a polynomial division of their contents; on retrieval the calculation is repeated, and corrective action can be taken against presumed data corruption if the check values do not match. wikipedia

The most commonly used polynomial lengths are:

  • CRC-8: 9 bits
  • CRC-16: 17 bits
  • CRC-32: 33 bits
  • CRC-64: 65 bits

A truly excellent tutorial on CRC's is Ross Williams' "Painless Guide to CRC Detection Algorithms", which can also be found here, here, here, here, and here.

21 questions
5
votes
2 answers

Most efficent way to calculate CRC64 with reflected input

I need to calculate a CRC-64 using this setup into this wonderful website: http://www.sunshine2k.de/coding/javascript/crc/crc_js.html As you can see I require "input reflected" and that means that I need to reverse the bit order of any byte (a bit…
5
votes
3 answers

How likely are two blocks of data likely to produce the same CRC64 value?

I have an caching application that uses a CRC64 value to ensure data integrity. I'm thinking about putting an extra field, a timestamp to be passed around with the data between the various cache servers and compared to see if data has…
hookenz
  • 36,432
  • 45
  • 177
  • 286
4
votes
3 answers

Using CRCs as a digest to detect duplicates among files

The primary use of CRCs and similar computations (such as Fletcher and Adler) seems to be for the detection of transmission errors. As such, most studies I have seen seem to address the issue of the probability of detecting small-scale differences…
David I. McIntosh
  • 2,038
  • 4
  • 23
  • 45
3
votes
1 answer

CRC ECMA-182 reference

I would like to cross check a C implementation of the CRC64 ECMA-182 algorithm. I tried a different C code snippet I found online and I tried two online CRC calculators but each of them returned different results. Is there some reference…
Silicomancer
  • 8,604
  • 10
  • 63
  • 130
3
votes
2 answers

No CRC64 implementation equal to CommonCrypto?

I am porting some code from C on OSX to C# that uses CommonCrypto with the kCN_CRC_64_ECMA_182 CRC64 implementation. For example, using CommonCrypto the CRC would be computed with: CNCRC(kCN_CRC_64_ECMA_182, bytes, bytesLen, &crcResult) This outputs…
Rick Button
  • 1,212
  • 13
  • 19
3
votes
1 answer

Reversed message CRC calculation

Consider you have this message (ab,cd,ef) and you have the ROHC (Robust header compression) CRC8 polynomial e0. C(x) = x^0 + x^1 + x^2 + x^8 Is there any way that I can calculate the CRC on the message backward starting from the last byte and get…
2
votes
1 answer

CRC error detection and undetected error probabilities

If we have a large file, let 's say 1 Petabyte, what's the best CRC that can detect all the errors? Is 32bits enough? I also heard that undetected error rate (packet or chunk) is= BitR* BER * 0.5^k which K is the FSC of the CRC. in CRC 32 k is 31 I…
Arash
  • 225
  • 1
  • 11
2
votes
1 answer

Read and Write from serial port gives "OUTPUT_BUFFER_EMPTY" (maybe crc calc and checksum is not correct)

I can not figure out where I may have been wrong and what to change to make this program able to communicate with the card both for reading and writing. This is the serial protocol, the general structure of the frame is as follows:…
Ale Last
  • 65
  • 7
2
votes
0 answers

Mysql Performance Impact with long integer field

I wants to store crc64 of a string which is 20+ digits long number. I wants to understand performance consequences of storing big numeric digits in terms of space complexity and JOINS. Any help or suggestion would be greatly appreciated. Thanks
coder
  • 283
  • 4
  • 26
1
vote
1 answer

Cyclic Redundancy check : Single and double bit error

Found this in the book by Forouzan (Data Communications and Networking 5E). But, not able to understand the logic behind this. This is in the context of topic two isolated single-bit errors In other words, g(x) must not divide x^t + 1, where t is…
Pratham
  • 13
  • 3
1
vote
2 answers

How many string characters should I read to get a good hash?

Here is a little conundrum for you: If you use a hash algorithm like CRC-64 then how many bytes in a string would be necessary to read to calculate a good hash? Lets say all your strings are at least 2 KB long then it seems a waste or resources…
user152949
0
votes
1 answer

unable to get the following part in CRC implementation in c++

So i was referring Geeks For Geeks for the implementation of CRC in Data Communication Here is the code:- #include using namespace std; string xor1(string a, string b) { string result = ""; int n = b.length(); for (int i = 1;…
0
votes
1 answer

Identifying polynomial terms of the CRC

I was looking at this page and I saw that the terms of this polynomial: 0xad0424f3 = x^32 +x^30 +x^28 +x^27 +x^25 +x^19 +x^14 +x^11 +x^8 +x^7 +x^6 +x^5 +x^2 +x +1 which seems not correct since converting the Hex: 0xad0424f3 is…
Arash
  • 225
  • 1
  • 11
0
votes
1 answer

whole file CRC computation undetected error probability

I have read some papers that the probability of a CRC code being undetected is not depended on the message size and it is only related to CRC bits. 2^(-32) for 32bit CRC My questions are: why we need wider CRCs? even if we plan to use a 16-bit CRC…
Arash
  • 225
  • 1
  • 11
0
votes
2 answers

Cyclic Redundancy Check: Single and double bit error

Found this on the book by Forouzan (Data Communications and Networking 5E). But, not able to understand the logic behind these. This is in the context of isolated double-bit errors. The polynomial x^15 + x^14 +1 cannot divide any error of type…
1
2