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