25:
122:
289:
With this checksum, any transmission error which flips a single bit of the message, or an odd number of bits, will be detected as an incorrect checksum. However, an error that affects two bits will not be detected if those bits lie at the same position in two distinct words. Also swapping of two or
351:
by building up cooperative databases from multiple ISPs of email suspected to be spam. The content of such spam may often vary in its details, which would render normal checksumming ineffective. By contrast, a "fuzzy checksum" reduces the body text to its characteristic minimum, then generates a
309:
of the total as the checksum. To validate a message, the receiver adds all the words in the same manner, including the checksum; if the result is not a word full of zeros, an error must have occurred. This variant, too, detects any single-bit error, but the pro modular sum is used in
280:=1 this means adding a bit to the end of the data bits to guarantee that there is an even number of '1's. To check the integrity of a message, the receiver computes the bitwise exclusive or of all its words, including the checksum; if the result is not a word consisting of
209:. However, each of those concepts has different applications and therefore different design goals. For instance, a function returning the start of a string can provide a hash appropriate for some applications but will never be a suitable checksum. Checksums are used as
322:
The simple checksums described above fail to detect some common errors which affect many bits at once, such as changing the order of data words, or inserting or deleting words with all bits set to zero. The checksum algorithms most used in practice, such as
360:. If the count of a submitted fuzzy checksum exceeds a certain threshold, the database notes that this probably indicates spam. ISP service users similarly generate a fuzzy checksum on each of their emails and request the service for a spam likelihood.
435:
steps removed from its correct corner. The goal of a good checksum algorithm is to spread the valid corners as far from each other as possible, to increase the likelihood "typical" transmission errors will end up in an invalid corner.
190:; if the computed checksum for the current data input matches the stored value of a previously computed checksum, there is a very high probability the data has not been accidentally altered or corrupted.
182:. Depending on its design goals, a good checksum algorithm usually outputs a significantly different value, even for small changes made to the input. This is especially true of
352:
checksum in the usual manner. This greatly increases the chances of slightly different spam emails producing the same checksum. The ISP spam detection software, such as
410:
corners of this hypercube represent all possible received messages. The valid received messages (those that have the correct checksum) comprise a smaller set, with only
335:(CRCs), address these weaknesses by considering not only the value of each word but also its position in the sequence. This feature generally increases the
667:
715:
809:
290:
more words will not be detected. If the affected bits are independently chosen at random, the probability of a two-bit error being undetected is
737:
417:
A single-bit transmission error then corresponds to a displacement from a valid corner (the correct message and checksum) to one of the
305:
A variant of the previous algorithm is to add all the "words" as unsigned binary numbers, discarding any overflow bits, and append the
693:
247:
are based on special checksums which not only detect common errors but also allow the original data to be recovered in certain cases.
771:
637:
214:
357:
89:
537:
108:
61:
68:
659:
46:
719:
261:
846:
75:
274:(XOR) of all those words. The result is appended to the message as an extra word. In simpler terms, for
213:
in larger authentication algorithms. For cryptographic systems with these two specific design goals, see
206:
183:
57:
42:
803:
733:
332:
210:
198:
35:
554:
475:
336:
324:
228:
202:
244:
689:
542:
480:
356:, of co-operating ISPs, submits checksums of all emails to the centralised service such as
140:
8:
821:
764:
306:
817:
783:
574:
152:
629:
82:
589: – a file system that performs automatic file integrity checking using checksums
470:
164:
569:
236:
156:
765:"Cyclic Redundancy Code and Checksum Algorithms to Ensure Critical Data Integrity"
148:
813:
826:
559:
460:
187:
160:
227:
are special cases of checksums, appropriate for small blocks of data (such as
840:
510:
194:
186:, which may be used to detect many data corruption errors and verify overall
831:
782:
Koopman, Philip (2023). "Large-Block
Modular Addition Checksum Algorithms".
532:
515:
353:
271:
232:
144:
609:
455:
220:
832:
Open source python based application with GUI used to verify downloads.
564:
505:
348:
224:
599:
450:
381:
171:
24:
788:
604:
500:
465:
328:
495:
520:
490:
396:-bit message to a corner of a larger hypercube, with dimension
763:
Koopman, Philip; Driscoll, Kevin; Hall, Brendan (March 2015).
485:
311:
127:
240:
121:
347:
The idea of fuzzy checksum was developed for detection of
586:
286:
zeros, the receiver knows a transmission error occurred.
264:, which breaks the data into "words" with a fixed number
770:. Federal Aviation Administration. DOT/FAA/TC-14/49.
159:. By themselves, checksums are often used to verify
384:. The effect of a checksum algorithm that yields an
762:
49:. Unsourced material may be challenged and removed.
260:The simplest checksum algorithm is the so-called
838:
810:Practical Application of Cryptographic Checksums
660:"What Is a Checksum (and Why Should You Care)?"
125:Effect of a typical checksum function (the Unix
255:
429:bits moves the message to a corner which is
374:bits long can be viewed as a corner of the
423:adjacent corners. An error which affects
174:which generates this checksum is called a
787:
687:
363:
151:that may have been introduced during its
109:Learn how and when to remove this message
120:
16:Data used to detect errors in other data
781:
657:
270:of bits, and then computes the bitwise
839:
143:of data derived from another block of
317:
658:Hoffman, Chris (30 September 2019).
47:adding citations to reliable sources
18:
740:from the original on 31 August 2020
13:
756:
696:from the original on April 8, 2022
690:"Checksums & Integrity Checks"
193:Checksum functions are related to
163:but are not relied upon to verify
14:
858:
797:
342:
300:
777:from the original on 2015-05-18.
23:
670:from the original on 2022-03-09
640:from the original on 2022-03-10
34:needs additional citations for
726:
708:
681:
651:
622:
1:
615:
538:Reed–Solomon error correction
390:-bit checksum is to map each
250:
718:. Kvaser.com. Archived from
207:cryptographic hash functions
184:cryptographic hash functions
7:
439:
339:of computing the checksum.
10:
863:
256:Parity byte or parity word
688:Fairhurst, Gorry (2014).
262:longitudinal parity check
630:"Definition of CHECKSUM"
333:cyclic redundancy checks
211:cryptographic primitives
229:Social Security numbers
203:randomization functions
806:theory from Barr Group
804:Additive Checksums (C)
555:List of hash functions
364:General considerations
245:error-correcting codes
132:
124:
822:US-Letter two-column
722:on 11 December 2013.
543:IPv4 header checksum
481:Frame check sequence
43:improve this article
847:Checksum algorithms
827:Checksum Calculator
476:Fletcher's checksum
325:Fletcher's checksum
147:for the purpose of
575:Verhoeff algorithm
368:A message that is
318:Position-dependent
180:checksum algorithm
133:
471:File verification
176:checksum function
165:data authenticity
139:is a small-sized
119:
118:
111:
93:
854:
793:
791:
778:
776:
769:
750:
749:
747:
745:
730:
724:
723:
712:
706:
705:
703:
701:
685:
679:
678:
676:
675:
655:
649:
648:
646:
645:
626:
594:Related concepts
570:Rolling checksum
527:Error correction
434:
428:
422:
413:
409:
405:
395:
389:
379:
373:
307:two's complement
296:
285:
279:
269:
149:detecting errors
130:
114:
107:
103:
100:
94:
92:
51:
27:
19:
862:
861:
857:
856:
855:
853:
852:
851:
837:
836:
800:
774:
767:
759:
757:Further reading
754:
753:
743:
741:
732:
731:
727:
714:
713:
709:
699:
697:
686:
682:
673:
671:
656:
652:
643:
641:
634:Merriam-Webster
628:
627:
623:
618:
442:
430:
424:
418:
411:
407:
397:
391:
385:
375:
369:
366:
345:
320:
303:
291:
281:
275:
265:
258:
253:
243:, etc.). Some
126:
115:
104:
98:
95:
52:
50:
40:
28:
17:
12:
11:
5:
860:
850:
849:
835:
834:
829:
824:
807:
799:
798:External links
796:
795:
794:
779:
758:
755:
752:
751:
725:
707:
680:
650:
620:
619:
617:
614:
613:
612:
607:
602:
591:
590:
578:
577:
572:
567:
562:
560:Luhn algorithm
557:
549:Hash functions
546:
545:
540:
535:
524:
523:
518:
513:
508:
503:
498:
493:
488:
483:
478:
473:
468:
463:
461:Damm algorithm
458:
453:
441:
438:
365:
362:
344:
343:Fuzzy checksum
341:
319:
316:
302:
301:Sum complement
299:
257:
254:
252:
249:
237:computer words
195:hash functions
188:data integrity
161:data integrity
117:
116:
31:
29:
22:
15:
9:
6:
4:
3:
2:
859:
848:
845:
844:
842:
833:
830:
828:
825:
823:
819:
815:
811:
808:
805:
802:
801:
790:
785:
780:
773:
766:
761:
760:
739:
735:
729:
721:
717:
711:
695:
691:
684:
669:
665:
661:
654:
639:
635:
631:
625:
621:
611:
608:
606:
603:
601:
598:
597:
596:
595:
588:
585:
584:
583:
582:
576:
573:
571:
568:
566:
563:
561:
558:
556:
553:
552:
551:
550:
544:
541:
539:
536:
534:
531:
530:
529:
528:
522:
519:
517:
514:
512:
511:SYSV checksum
509:
507:
504:
502:
499:
497:
494:
492:
489:
487:
484:
482:
479:
477:
474:
472:
469:
467:
464:
462:
459:
457:
454:
452:
449:
448:
447:
446:
445:General topic
437:
433:
427:
421:
415:
404:
400:
394:
388:
383:
380:-dimensional
378:
372:
361:
359:
355:
350:
340:
338:
334:
330:
326:
315:
313:
308:
298:
295:
287:
284:
278:
273:
268:
263:
248:
246:
242:
238:
234:
230:
226:
222:
218:
216:
212:
208:
204:
200:
196:
191:
189:
185:
181:
177:
173:
168:
166:
162:
158:
154:
150:
146:
142:
138:
129:
123:
113:
110:
102:
91:
88:
84:
81:
77:
74:
70:
67:
63:
60: –
59:
55:
54:Find sources:
48:
44:
38:
37:
32:This article
30:
26:
21:
20:
742:. Retrieved
728:
720:the original
710:
698:. Retrieved
683:
672:. Retrieved
663:
653:
642:. Retrieved
633:
624:
593:
592:
581:File systems
580:
579:
548:
547:
533:Hamming code
526:
525:
516:BSD checksum
444:
443:
431:
425:
419:
416:
402:
398:
392:
386:
376:
370:
367:
354:SpamAssassin
346:
321:
304:
293:
288:
282:
276:
272:exclusive or
266:
259:
233:bank account
221:Check digits
219:
199:fingerprints
192:
179:
175:
169:
153:transmission
145:digital data
136:
134:
105:
99:January 2024
96:
86:
79:
72:
65:
53:
41:Please help
36:verification
33:
716:"SAE J1708"
664:How-To Geek
610:File fixity
456:Check digit
225:parity bits
789:2302.13432
736:. Apache.
674:2022-03-10
644:2022-03-10
616:References
565:Parity bit
506:Sum (Unix)
349:email spam
251:Algorithms
69:newspapers
58:"Checksum"
818:US-Letter
744:7 January
700:March 11,
600:Isopsephy
451:Algorithm
414:corners.
382:hypercube
312:SAE J1708
239:, single
235:numbers,
172:procedure
841:Category
772:Archived
738:Archived
734:"IXhash"
694:Archived
668:Archived
638:Archived
605:Gematria
501:Parchive
466:Data rot
440:See also
329:Adler-32
137:checksum
131:utility)
496:sha1sum
157:storage
83:scholar
521:xxHash
491:md5sum
406:. The
331:, and
205:, and
85:
78:
71:
64:
56:
784:arXiv
775:(PDF)
768:(PDF)
486:cksum
241:bytes
141:block
128:cksum
90:JSTOR
76:books
746:2020
702:2022
337:cost
223:and
215:HMAC
170:The
62:news
587:ZFS
358:DCC
178:or
155:or
45:by
843::
814:A4
692:.
666:.
662:.
636:.
632:.
401:+
327:,
314:.
297:.
292:1/
231:,
217:.
201:,
197:,
167:.
135:A
820:*
816:*
812:*
792:.
786::
748:.
704:.
677:.
647:.
432:k
426:k
420:m
412:2
408:2
403:n
399:m
393:m
387:n
377:m
371:m
294:n
283:n
277:n
267:n
112:)
106:(
101:)
97:(
87:·
80:·
73:·
66:·
39:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.