1、GB!l、177101999 前本标准等同采用国际标准ISO7064,1983(1996年经ISC)!IECJTCl SC!4俑认本标准提供了对键入和抄录数据时发悖的错误进行校验的力法,目的是满足各系统之l;lJ,.J ;与技L敖据的校验。与其他布在的校验码系统相比,本标准规定的校验码系统可直捉校验数字型、宁吟刑和吉tjt 字母型字符串,操作方便;检错类型多,检错能力强di二经过(严格的数学验证,所使I!Jfll数字切IiH注til.易于接受和推广。本标准的内容包括前言、引言反应用范围、第一篇总则、第二位i纯系统、第.frl ill (,呆立在丰11fJ 个附录.附录A和附录B是标准的附录。本
2、标准由中罔标准化与信息分类编码研究所提出G本标准主要起草单位:中国标准化与信息分类编码研究所。本标准的主要起草人=谢民、丘维声、丁雅娴、胡家璋、李小林。本标准由全国信息技术标准化技术委员会数据元表示法分技术委员会归1I并负责解样! () GB/T 17710-1999 ISO前言ISO(国际标准化组织)是国际范围内各罔标准组织(lSO成员)的联盟,其工作的开展主要通过lS0技术委员会,对技术委员会工作感兴趣的每成员,经授权后,可成为该技术委员会的成员。与ISO有联系的其他国际组织、政府或非政府组织,可参与ISO的工作。技术委员会采纳的标准草案应提交全体成员组织讨论,通过后方可被ISO委员会接纳
3、为罔际标准。国际标准ISO7064由ISO/TC970S0/IECJTCl前身)信息处理系统技术委员会制定并在1981年11月提交成员组织讨论。以下是通过此标准的成员组织2比利时联邦德国中华人民共和国爱尔兰捷克斯洛伐克意大利丹麦日本阿拉伯埃及共和国荷兰芬兰波兰法国罗马尼亚全体成员组织致同意通过本标准。南非共和国西班牙瑞典瑞士英国美国注,1996年8月.ISO(IECJTCl SC14组织P成员,对包括本标准在内的几个标龄较长的国际怵准进行了阶段审核,各P成员组织均同意不需修订本标准.SC14于1996年12月正式宣布ISO7064,1983仍I继续使唱。40 中华人民共和国国家标准数据处理校验
4、码系统GB/, 17710 1999 idt ISO 7064 , 1983 Data proccssing .-Check characler systems 。引言目前,正在使用的校驳码系统有一1百多个,其中许多系统的特性非常ilt似.大多较系统jiJJU到有效的作用。月4存的应用系统1! t ,仅有少数经过严恪的数学验证,有些还有在严泣的缺陷。川IJ.J系统的号样性无形中也损害者校验l1系统的经济效益.常影响对交换数据的校验。囚比.必须选择些fir h*lJ Jt:不同需要的、兼容的校验码系统。本标准提供的校草草码系统已经过数学验证,在其适用范阴|斗.通过挺快,7靠的保护,口I防止常见的
5、抄录和键入错误。ISO 2108、ISO2984和IISO 6166也规定校验码系统,但它们只能肘子专门的领域.真情j州龙JMt斗t低于本标准的规定。附录A概述了为某一用途而选用牛二标准校验码系统时应考虑的准则。附录日举例说明了1与国家护母的数目与国际U!i用的26个字母不同时,应如JnU主兼容的丰i叫校验问系统,并设计了具体的扩展方式。1 范围1. 1 本标准规定的校验码系统.可以防-.在抄录和键入字符申Hf产生的错误a字符侣的长度戏剧定L也可变,包括下列字符集中的字符.1 )数字1(10个数字,O9)2)字母细(26个字母:八Z)3)字母数字型(字母和数字)字符*巾嵌入的空恪和特殊字符忽略
6、不汁。1.2 对使用牛二标准产生校验码或佼验丰符串的产品,本标准规定了致性要求。1. 3 本标准规定的校验码系统能检查出下列错误:1 )所有的单-字符替代错误(即单个字符被另一字符所替换,如1234被错录为4234);2)所有的或几乎所有的单一字符对换错误(即相邻两个字符成隔一个字符的两个单一字符的fl/ ?i: 互换,如12345被错录为12354或12543),3)所有的政几乎所有的位移错误(!llJ整个字符串被向东或向有移位啕如一工旦被注入为!2th 4)大部分的双替代错误(即在同一字符串中.分开的两处单一字符对换错误.如ll214二67被咐,止写7234587) , 川大部分的其他错误
7、。1.4 本标准小适用于经特殊设计的专门系统,如:1)既能击!错又能自动更正的系统;2)检查故意伪造的错误的系统;3)检杳仅在计算机之间进行交换的字符串的系统。15 本标准用于各组织之间的信息交换,也是内部信息系统信息交换的有力1,具。国家质量技术监督局1999- 03 -23批准1999 10-01实施I 1 GB/T 17710 1999 第一篇总则2 定义牛二标准采用下列2主义2. 1 校验码chec ker character 口J通过数学关系来验证代码正确性的附加字符。2.2 校验码系统checkcr character system J牛牛校验码并校盼包括校验码在内的字符串的一套规
8、则。2.3 附加符,附加校验码supplementary charactcr 受保护的一系列字符串所构成的字符集以外的校验码E2.4 模数modulus 为使整除运算获得整余数而用作除数的整数。2.5 同余congruence 指在一组整数中,两两之差与模数有倍数关系的特性。同余用符合-表7J0如39三以模11) p 指39一6=33是11的倍数。2.6 底数radix 几何级数的基数。3 类型本标准规定了两类系统:1)纯系统,2)说合系统。3. 1 纯系统表I中列出了纯系统(详见第二篇).每个系统的所有运算都使用单模数。表1纯系统校验码系统表示法适用范围校验码数目及类型,, ISO 7064
9、 MOD 11-2 数字型字符串1位数字或附加吁XISO 7064 MOD 37-2 字母数字型字符串l位数字或字母或附加符而1507064 MOD 97-10 数字型字符串2位数字ISO 7064 MOD 661-26 字母型字符串2ffEFRL ISO 7064 MOD 1271-36 字母数字型字符串2 N:数字或字母1)在MOD之后的第1个数字是模数,第2个数字是底数,2)前两个系统可在被校验的字符串处产生一位附加校验码,(例如ISO7064 MOD 11-2产生的校验码是1)、9及X.ISO7064 MOD 37-2的校验码是0-9.A-Z及提)。当不能使用附加愤验码,又只能有斗t校
10、验码af.应避免使用产生附加校验码的系统;如果既不能使用附加校验码,又不能使用位校验码.的l应使JHI曰:7系统。3. 2 混合系统表2中列出了混合系统(详见第二篇)。混合系统在运算中采用了两个模数,其中个模数等f被保护的卒于子集中的字符数,另一个模数比它大1,形成的校验码位于被保护的字符串组成的字符集I均u愤验问系f克表示11二lISO 7(1) .1 MD11.10 IS() 706,1 机1I127.2GIS0 70G卫些主坐l Gn/T 17710十19993二2混合系;ftJ、:ij敢于t71字母*字:;数字串1)#;11走去,王法中.紧跟缸M()J)后丽的两个敦字是VJ.j个模数。
11、4 系统一致性和表示法41Ff守q了fj较日及英m1 k trj lk于一IJ1(¥t. r:口Y:(fJl水标准为不同的应用规定了不同的校验j,JJ系统.受这些系统保护的f:科市应遵循木轨,泊的悦淀。4.2 尘成校骏码的产品4. 2. 1 行)G更严恪的条件肌制.III:为本标准生fJlt校验码的fv品(软件成P!l!f忡,应能为本标准的所有条统做成校验码4.2.2 对不能使本标准的所有系统生成校验码的产品,应说明它们的特定使用低时如)为lS仆704.MOD 11-2生成的校验码。4.3 校验产品4. 3. 1 (龙更严格的条件限制啕口校驹本怀准所生成的校价码的产品(软件或创it) . );
12、1:能使用本标准的所有系统。4. 3. 2 对仅能用本标准中某些佼验问系统的产品.,:说明它们所使用的系统.4日肘ISO7064. MO) 11 2生成的校验寸J符串。4-4 系统友示法4. 4. 1 通常采用去l初衷2中给出的每A系统的全称表示.例如ISO7064 .MOD 11 2 . 1下采用缩写形式MO)11将会IJ使用模数1:的类似系绕混淆。4. 4.2 需要简化时,如.数据yd传输R1往往很赞同时标明m来保护该数据元的系统,吁:1m 1;列单数字表iJ点:愤验码系1壳表示法校qt码系统IS(l 7064. :v!()J) 11 2 ISO 7054. N!O口172I宫门7064,
13、MOT) 97-10 ISI) 706 1. MIlD 661 26 !ISO )()64 , MO)山1-365 纯系统的说明5. 1 公式?符ft1ff.满足下列公式的校验:I IS0 7064. :v!()D 11.10 ? 4 ISO 70日,MOD 7. 26 3 150 7064. MOIJ 37.36 4 无校且全码!&非标准条缆町.第二篇纯系统二IX rJ-ll= l(n叫M)1=1 公式中:n 包括校f!l码的字符巾的二f:t:J个数;j枉/J主一一一一一-一-/ a J 发示从右边开怡的字符所在(tpt序号(包扣校验i:(t19)即最t,.i !I 平IF i可t二.I .
14、可与恪与分1iO得不计在内.GB!T 17710 1999 ai一由表3规定的处于2位置上的字符值;广底数CRP几何级数的基数); M 模数。表3字符对应的值字符系统中数字字符值系统中字母字符值。l 1 2 2 3 3 4 4 5 5 日6 7 7 8 8 9 9 为lSO7064 MOD 11-2 10 设置的附加符XA 。B 1 C 2 D 3 E 4 F 5 G 6 H 7 1 8 J 9 K 10 L 11 岛f12 N 13 。14 P 15 Q 16 R 17 s 18 T 1 9 14 系统中字母数字字待值。i 少3 4 5 6 i 8 9 10 11 12 13 14 15 1
15、6 17 18 19 20 21 22 23 24 25 26 27 28 29 GB/T 17710- 1999 表3(完), 字符系tli中数字字符值4统中字n字符值系统巾字母数字字符值u 20 30 V 2 I 3I w 22 合d。X 23 33 Y 24 311 Z 25 35 为ISO7064 MOD 37-2 30 设置的附加符并5.2运算任何运算均按公式进行。5.3 校验码的位宦校验码设在字符串的最有端。6 带一位校验码的纯系统的计算方法纯系统有两种基本运算方法:纯系统递归法和纯系统多项式法,两种方法的结果A致U6. 1 递归法6. 1. 1 运算在递归法中,字符串的字符从左到
16、有i军个处理。用j=l,刑来表示下标。11为包括校验码在内的字符串中字符的数目。当j=l时,定义Pj=Mo计算如下:其中,a(,_j+。为字符值,r为底数。S, = Pj十a(II-J!1) P:j+ iJ = Sj X r 如果5月三1(mod M),则字符串满足校验要求。选择校验码aj时,应使之满足公式穴,牛肉El(mod M)。6.1.2 举例假定使用校验码系统ISO7064 , MOD 11-2为字符串0794设置一个校验码。此时M=11.r=2.n=S(4位字符加1位校验码。运算过程如下:步骤J前次运下一字中间中间和底数运算结果行结果+符值和l】S , x r 1,尸,, Pj +
17、a(, -j_ll = S, 1 。_J_ 。= 。x 2 。2 。7 7 7 x 。 14 3 14 十9 23 23 X 9 46 4 46 生50 50 / ? 100 5 100+校验码值要与l(mod11)同余此处结果P,为100,加上校验码的值必须与l(mod11) I口j余,而100本身就与1(mod 11)同余,D; 此校验码值为零.整个受保护的字符串则为07940,校验码加在字符串的最右边。为了校验该字符串是否正确,如上所示,再按步骤j=15进行计11.将校验伺值。也包括在内口如:旧运算结果与l(模11)同余,回IJ证明成字符串是正确的。il GB/T 17710 -1999
18、 注l如果计算过程中任一步的结果具川1或中间和S,大f模数M.则吁减去模敬的倍数,明其整余数继续旦醉如t例中zP;14 可处理为14-11003S,二23可处理为23-22 1 P4=16 可处理为46-44二22.在ISO7064.MODJ1-Z系统中有放的校验码值是0-10。如果校验码的值为10.就白字符X表示。ti果1,字符串是079这样的短字符串,在第二步计算结束时运算值为46.46o=2(模11),由于210=1(模11).叫此带有传验码的完整字符串为079主。对该字符串进行检验时.第三步运算之后得到46+1056.亏1(模11)同余.满,t校验囚6. 2 多项式法6. 2. 1 运
19、算纯系统多项式法采用户口或y叫modM)的值乘以字符串巾符字符值来计算。表4中列出所有纯系统的r(i(modM)前15个值。将字符值与它们的权数相乘,再将结果相加,如果这些结果之和与(模Ml同余,则包含校验!尚在内的字符串是有效的。表4纯系统的权数位置序号15 14 13 lZ 11 10 9 8 7 6 5 4 3 。-ISO 7064.MOD 11-2 5 8 4 2 1 5 3 7 9 10 5 8 2 1 ISO 7064.MOD 37-2 30 15 26 13 25 31 34 17 27 32 1 6 8 J ISO 7064.MOD 97-10 53 15 50 5 49 34
20、 81 76 27 90 9 30 3 ll: i ISO 7064.MOD 661-26 129 488 273 341 547 199 389 498 70 562 225 390 15 26 1 ISO 7064.MOD 1271-36 769 904 590 87 532 156 428 718 373 893 625 900 25 如注1此处仅列出前15个位置的权数,真余的可用下列公式无限扩展,/二r正i-1)(mod M) W,为位置序号z的权数6.2.2 举例用多项式法产生校验码的计算过程如下,仍以6.L Z中的字符串0794为例z字符位置i5 4 3 2 1 权数Zi-!l(m
21、od11) 5 8 4 2 1 字符值ai0 7 9 4 乘积o 56 36 8 乘积的和o + 56 十36 十8 = 100 总和100加上校验码必须与1(模11)同余,由p于100本身与l(mod11)同余.所以校验向必定为尽,这样整个字符串为079400校验码设i!i:在字符串的最右端。用这种方法来校验字符串,需用与字符位置相关的权数乘以字符值(包括校验码在内).结果相JJU 总和被11除,如果余数是1,则通过验证。字符位置t5 4 3 2 1 权数2(;一Jl(mod11) 5 8 4 2 字符值凶。7 9 4 。乘积。56 36 8 。乘积的和。十56 寸-36 十8 十。1(1
22、0 100=1(mod 11) 满足验证要求。46 GB/T 17710一1999?仁:最右边的位泣,即,l的;fpt.是倒给校验码的位世,il此J巨字符申(不含校骏码)的最ti端i主Ft才进与r的叹杭(W, )有关.此处W,为2,7 带两位校验码的纯系统的计算方法7.1 运算这些系统与含一位校验码的系统计1T方法完全一致,只需再加一步.除fI底数是10的系统求出!叫个字符值作为校验码(对于校验码系统ISO7064. MOD 97- ().见7.4),用底数除注)结果得到的然商数目JJJ1=2 j立PI上的f验码值,余数则是1=1 i.j)(J:的校验码值。7.2 递归法应用举例下面是采用递归
23、法.用ISO7064.MODI271-36系统计算字符串ISO7俨两个校收码的例扎字母数字字符值在表3中给出。运货步骤如下:前次iE下于底数结果tj:结果十;20 2 9 + 7 16 6 X ? 12 3 1 + 9 10 10 X 2 20 9 1 9 十4 13 3 /飞、。6 6 5 6+愤骏码值即与1(mod 10)同余由上式得到校验码f在5.完榕的字符串为07945.校验码放在原字符串的最有端。守在d:时,第型h步如上所示,且校验码值5的计算也包括在|付。最后结果必须与1Cmod 10)问余。19 GBiT 17710-1999 附录A(标准的附录)校验码应用时系统的选择原则系统选
24、择原则如表Al所示,包括下述内容:a)受保护的字符串的字符集(1JtI.第二寸勺。bl校验码的子符集(第三栏。除了1S07064 ,M0D1 1 2和lSO7llG 4, MOD37 2以外.所有民他在挠的校验码集均与受保护的字符串的字符集是A样的oI而这两个系统且&;T,-需要.个附加1校验的-4汗F使用产生附加符的校验码字符串。c)佼验码位数(第四栏)。两位校验码的可接受性(根据费用和其他限制条件)必须与因系忧需要佼杭州而提供的有力保护所带米的益处相权衡。dl未被检出的错误百分比(第五栏),即可能检查不出来的字号种类型错误的自分比这些错误有下述几种类型sl)单替代错误m个单-字符被另t-1
25、孚字符替换;2)单一对换错误单个字符的对换,相邻的(d1)两个字符戎相隔一个严符的(-2)两个n斗之间的互换错误;3)双替代错误在|司-个字符串中,两个分隔的单-字符的替换错误;4)移位字符申向左或向右的位移(表巾所列的错误率仅指中等距离(d()的:Lfj;错误川5)其他错误一一所有上述未指出的错误。的剩余差错(第六栏)。剩余差错给出了每100000个错误中未被查出的各种错误类型的典型也阳表中较低的数值是适于各种错误类型交义时特有的最好情况,较高的数但是错误类型交叉最差的情况。(例如,七述错误类型平均出现率11不总能被枪出)。这些数字仅仪作为当确定的统计数字JLI去得到时的指导性数字,实践中应
26、考虑呵能出现偏差2其数值是基于F国错误出现率的f包围给lli的:单替换错误60%85% 单对换错误.dlS%15% 单对换错误,d21%2% 双替换错误5%15% 位移错误O%5% 其他错误1归lO%未被检出的错误百分比反映了校骏码系统孤立使用的情况。如果把这些系统与真他校验结合起来使用,效果会更好。真他校验包含A致性校验、字符类型与字符串长度校验等等,例如1 个?f.f非it漫校验就会检查出字符的所有删改或插入错误D表Al系统选择的原则(概要)1 2 3 4 5 未被J TSO 7064 I字符串的|!q码的校验码检出的错误的百分比剩余羔铛MOD I字符集|字符集位数单替换单对换l双替换jf
27、1.t事!其他(每1川川liitillj d1Id21 ld 10 个错误P) 11-2 数字数字加附加符1 。I) 1口10 Q 在字f号鼠不i咙愤验.fiL91 U 9, 1 I的00c_ 2吨()O1 t , r可不!告IIj扣X 11.10 97一10数字敦子被字1 ? 3 川vp q ) ? 。i l h17平L 1 O! FI 76 ()._. 3 lO() fi l l月11JJ50 GB!T 17710-1999 表Al(完)i一阳湖12刊门-L一码陌母母-、一人-JlrEr一刷子,牛同时速母母;一保符引字字千一耳VAqfE司川11一时mw-JM一一阶川M-v刷一枚I一一未被检
28、巾的错误的百分t仁| 剩余差错l l 单对换|双替挽|Lfj:上UiIll (母1()I_) I川口比即i 啦替挽卜干?才I-II _, I 1,/0-1 1 d-2 I Id 101 1忖击民l11)|! 1i liJF 6 j-_川|成役后的:-1) jfH.-I,r不使11I )if.f !Ullf1 门l2.8|lso7ihi0, 31 2, 4 0, 1 37 , 2 l 。2. 37 , 36 1271-36 11 产j干一敦数一母囚一阳岸71字一敬敬一详母hf字一l 。0, 16 . 7 2, 8 。() , 04 。, OS 附录B(标准的附录)非拉丁字母的校验码系统本附录将举
29、例兑明如何将此系统扩展而满足那些国家字母非26个的国家的使用需要F一J-面以丹麦的29个字母为例(AZ、和人)。由于29是个质数.纯系统可111卢作J牧部(,F时仪JIJ出诙系统与ISO系统的不同之处:表示法:(丹麦)MOD 29-2 3:在宁IT):系统中增加3个字符值:26 :27 , : 28 4:为MOD29-2增加下列权数:j; fi f /i 15 14 13 12 11 10 Q R 7 6 巳 (丹麦)MOD29- 2 28 14 7、18 9 19 24 12 6 n lG 对A勺d 1 采用说明,1 J JS仆706j:1983中,此数为10.本标准经过推导,认为此数应JJ36 .IS0 7064原:fi误。