2024年1月4日发(作者:过南晴)
GB /T 17710-1999前、今 口 本标准等同采用国际标准ISO 7064:19830996年经ISO/IEC JTC1 SC14确认)。本标准提供了对键入和抄录数据时发生的错误进行校验的方法,目的是满足各系统之间对交换数 据的校验。与其他存在的校验码系统相比,本标准规定的校验码系统可直接校验数字型、字母型和数字字母型字符串,操作方便;检错类型多,检错能力强;并经过了严格的数学验证,所使用的数学知识浅显,易于接受和推广。 本标准的内容包括前言、引言及应用范围、第一篇总则、第二篇纯系统、第三篇混合系统和两个附录,附录A和附录B是标准的附录。本标准由中国标准化与信息分类编码研究所提出。 本标准主要起草单位: 中国标准化与信息分类编码研究所。本标准的主要起草人: 谢民、丘维声、丁雅娴、胡家璋、李小林。本标准由全国信息技术标准化技术委员会数据元表示法分技术委员会归口并负责解释。
Gs/T 17710-1999ISO前言I SO(国际标准化组织)是国际范围内各国标准组织(ISO成员)的联盟,其工作的开展主要通过ISO技术委员会,对技术委员会工作感兴趣的每一成员,经授权后,可成为该技术委员会的成员。与ISO有联系的其他国际组织、政府或非政府组织,可参与ISO的工作。技术委员会采纳的标准草案应提交全体成员组织讨论, 通过后方可被ISO委员会接纳为国际标准。国际标准I SO 7064由ISO/TC97(ISO/IEC JTC1前身)信息处理系统技术委员会制定,并在1981年11月提交成员组织讨论。 以下是通过此标准的成员组织:比利时 联邦德国中华人民共和国 爱尔兰捷克斯洛伐克 意大利丹麦 日本阿拉伯埃及共和国 荷兰芬兰 波兰法国 罗马尼亚全体成员组织一致同意通过本标准。 南非共和国西班牙瑞典瑞士英国美国 注:1996年8月,ISO/IEC JTC1 SC14组织P成员,对包括本标准在内的几个标龄较长的国际标准进行了阶段审核, 各P成员组织均同意不需修订本标准,SC14于1996年12月正式宣布ISO 7064:1983仍可继续使用。
中华人民共和国国家标准数据处理校验码系统Data processing-Check character systems 17710-1999GB/T iat ISO 7064:19830引言 目前,正在使用的校验码系统有一百多个,其中许多系统的特性非常近似,大多数系统并未起到有效的作用。现存的应用系统中,仅有少数经过严格的数学验证,有些还存在严重的缺陷。同时,系统的多样性无形中也损害着校验码系统的经济效益,常影响对交换数据的校验。因此,必须选择一些可满足不同需要的、兼容的校验码系统。本标准提供的校验码系统已经过数学验证,在其适用范围内,通过提供可靠的保护,可防止常见的抄录和键入错误。I SO 2108,ISO 2984和ISO 6166也规定了校验码系统,但它们只能用于专门的领域,其错误检测率低于本标准的规定。附录A概述了为某一用途而选用本标准校验码系统时应考虑的准则。 附录B举例说明了当国家字母的数目与国际上通用的26个字母不同时, 应如何建立兼容的本国校验码系统,并设计了具体的扩展方式。范围1.1本标准规定的校验码系统,可以防止在抄录和键入字符串时产生的错误。字符串的长度或固定或可变,包括下列字符集中的字符:1)数字型 (10个数字:0-9)2)字母型 (26个字母:A-Z )3)字母数字型 (字母和数字)字符串中嵌入的空格和特殊字符忽略不计。 1.2对使用本标准产生校验码或校验字符串的产品,本标准规定了一致性要求。1.3本标准规定的校验码系统能检查出下列错误:1)所有的单一字符替代错误( 即单个字符被另一字符所替换,如1234被错录为4234) ; 2)所有的或几乎所有的单一字符对换错误(即相邻两个字符或隔一个字符的两个单一字符的位置互换, 如12345被错录为123丝或12旦4旦);3)所有的或几乎所有的位移错误( 即整个字符串被向左或向右移位,如-123被录入为123一 );4)大部分的双替代错误(即在同一字符串中, 分开的两处单一字符对换错误,如1234567被错录为72345 87); 5)大部分的其他错误。1.4本标准不适用于经特殊设计的专门系统,如:1)既能查错又能自动更正的系统; 2)检查故意伪造的错误的系统; 3)检查仅在计算机之间进行交换的字符串的系统。 1.5本标准用于各组织之间的信息交换,也是内部信息系统信息交换的有力工具。国家质量技术监督局1999一03一23批准1999一10一01实施
Gs/T 17710-1999第一篇总2定义则本标准采用下列定义: 2.1校验码checker character可通过数学关系来验证代码正确性的附加字符。 2.2校验码系统checker character system产生校验码并校验包括校验码在内的字符串的一套规则。 2.3附加符,附加校验码supplementary character 受保护的一系列字符串所构成的字符集以外的校验码。2.4模数modulus为使整除运算获得整余数而用作除数的整数。 2.5同余congruence指在一组整数中, 两两之差与模数有倍数关系的特性。同余用符合“三”表示。如39=6(模11),即指39一6=33是11的倍数。2.6底数radix几何级数的基数。 3类型本标准规定了两类系统: 1)纯系统;2)混合系统。 3门纯系统表1中列出了纯系统( 详见第二篇),每一个系统的所有运算都使用单一模数。校验码系统表示法, )ISO 7064 MOD 11-2ISO 7064 MOD 37-2ISO 7064 MOD 97-10ISO 7064 MOD 661-26ISO 7064 MOD 1271-36表1纯系统 适用范围 数字型字符串 字母数字型字符串数字型字符串 字母型字符串字母数字型字符串校验码数目及类型2 ,1位数字或附加符X 1位数字或字母或附加符、2位数字 2位字母 2位数字或字母 1)在MOD之后的第1个数字是模数,第2个数字是底数。2)前两个系统可在被校验的字符串处产生一位附加校验码,(例如ISO 7064 MOD 11-2产生的校验码是。~9及X, ISO 7064 MOD 37-2的校验码是。-9,A-Z及、)。当不能使用附加校验码,又只能有一位校验码时,应避免使用产生附加校验码的系统;如果既不能使用附加校验码,又不能使用一位校验码, 则应使用混合系统。 3.2混合系统 表2中列出了混合系统(详见第三篇)。混合系统在运算中采用了两个模数,其中一个模数等于被保护的字符集中的字符数,另一个模数比它大1,形成的校验码位于被保护的字符串组成的字符集内。
GB/T 17710-1999表2混合系统校验码系统表示法“应用 字符数目及类型ISO 7064 MOD 11,10数字串 1位数字 ISO 7064 MOD 27,26字母串 1位字母 ISO 7064 MOD 37,36字母数字串1位数字或字母1)在系统表示法中,紧跟在MOD后面的两个数字是两个模数。4系统一致性和表示法4.1字符串本标准为不同的应用规定了不同的校验码系统, 受这些系统保护的字符串应遵循本标准的规定。4.2生成校验码的产品4.2.1若无更严格的条件限制,可为本标准生成校验码的产品(软件或硬件),应能为本标准的所有系统生成校验码。4.2.2对不能使本标准的所有系统生成校验码的产品,应说明它们的特定使用范围。如“为ISO 7064,MOD 11-2生成的校验码”。4.3校验产品4.3.1若无更严格的条件限制,可校验本标准所生成的校验码的产品(软件或硬件),应能使用本标准的所有系统。4.3.2对仅能用本标准中某些校验码系统的产品,应说明它们所使用的系统。如“用ISO 7064,MOD11-2生成的校验字符串”。4.4系统表示法4.4.1通常采用表1和表2中给出的每一系统的全称表示,例如“ISO 7064,MOD 11-2".注:采用缩写形式“MOD 11”将会与使用模数11的类似系统混淆。4.4.2当需要简化时,如,数据元传输时往往需要同时标明用来保护该数据元的系统,可采用下列单一数字表示法:校验码系统 表示法校验码系统 表示法ISO 7064, MOD 11一2ISO 7064, MOD 11,10ISO 7064, MOD 37-2ISO 7064, MOD 27,26ISO 7064, MOD 97-10ISO 7064, MOD 37,36ISO 7064, MOD 661-26无校验码或非标准系统ISO 7064, MOD 1271-36第二篇纯系统5纯系统的说明5.1公式字符串应满足下列公式的校验: 习lai X r“一’)]= 1(mod M)公式中:n—包括校验码的字符串的字符个数;i —表示从右边开始的字符所在位置序号(包括校验码在内),即最右边的字符i=1,空格与分割符不计在内;
GBIT 17710-1999a;—由表3规定的处于i位置上的字符值;r—底数(即几何级数的基数);M—字符012345 6 7 8 9 模数。系统中数字字符值01234567表3字符对应的值 系统中字母字符值系统中字母数字字符值01234567898910为ISO 7064 MOD 11-2设置的附加符X As0123456789101112131415161718191011121314151617181920212223242526272829cDEFGHIJKLMNOPQRST
GB/T 17710-1999表3(完)字符UVWXYZ 系统中数字字符值系统中字母字符值202122232425系统中字母数字字符值30313233343536为ISO 7064 MOD 37-2设置的附加符* 5.2运算 任何运算均按公式进行。5.3校验码的位置校验码设在字符串的最右端。 6带一位校验码的纯系统的计算方法纯系统有两种基本运算方法: 纯系统递归法和纯系统多项式法,两种方法的结果一致。6.1递归法6.1.1运算在递归法中, 字符串的字符从左到右逐个处理。用j=l,......,n来表示下标。n为包括校验码在内的字符串中字符的数目。当j=1时,定义P;=Mo计算如下: S;=P;+a( ,一,+1) 其中,a(.-;+,)为字符值,r为底数。如果Sn =1(mod M),则字符串满足校验要求。选择校验码a,时,应使之满足公式尸,十a,三1 (mod M)。1)二S; +;(P X r6.1.2举例假定使用校验码系统I SO 7064,MOD 11-2为字符串0794设置一个校验码。此时M=11,r=2,n二5(4位字符加1位校验码)。运算过程如下:步骤1前次运下一字中间 +_=行结果符值和”P;+a( ,一,+ll=12345中间和X底数=运算结果vS; X r=P(;+i)0 X 2=0S;0723507X2 = 14二460 十00 十714 十46 +94====23 X 250 X 2=100100+校验码值要与1(mod 11)同余此处结果P,为100, 加上校验码的值必须与1(mod 11)同余,而100本身就与1(mod 11)同余,因此校验码值为零,整个受保护的字符串则为0794旦,校验码加在字符串的最右边。为了校验该字符串是否正确, 如上所示,再按步骤j=1-5进行计算,将校验码值。也包括在内。如果运算结果与1(模11)同余,则证明该字符串是正确的。
Gs/T 17710-1999注 1.如果计算过程中任一步的结果PU+i )或中间和s,大于模数M,则可减去模数的倍数,用其整余数继续运算。如上例中: P3二14可处理为14一11二3 S,- --23可处理为23一22=1P4=46可处理为46一44二2 2.在ISO 7064,MOD11-2系统中有效的校验码值是0--.10。如果校验码的值为10,就由字符“X”表示。如果原字符串是079这样的短字符串, 在第三步计算结束时运算值为46,46=2(模11),由于2十10=1(模11),因此带有校验码的完整字符串为079兰。对该字符串进行检验时, 第三步运算之后得到46+10=56,与1(模11)同余,满足校验。 6.2多项式法6.2.1运算纯系统多项式法采用r c-1’或r c'一‘’(moe, M)的值乘以字符串中每一字符值来计算。表4中列出了所有纯系统的r“一‘’(mod M)前15个值。将字符值与它们的权数相乘, 再将结果相加,如果这些结果之和与1(模M)同余,则包含校验码在内的字符串是有效的。位置序号ISO 7064,MOD 11-2ISO 7064,MOD 37-215 14 13 12 1110 9 8 7 65 4 3 2 15 8 4 2 1表4纯系统的权数 6 3 7 9 105 8 4 2 130 15 26 13 2531 34 17 27 3253 15 50 5 4934 81 76 27 9016 8 4 2 19 30 3 10 1ISO 7064,MOD 97-10ISO 7064,MOD 661-26ISO 7064,MOD 1271-36129 488 273 341. 547199 389 498 70 562225 390 15 26 1769 904 590 87 532156 428 718 373 893625 900 25 36 1注:此处仅列出前巧个位置的权数,其余的可用下列公式无限扩展:W; 二r(‘一‘)(mod M)W;为位置序号i的权数 6.2.2举例 用多项式法产生校验码的计算过程如下,仍以6.1.2中的字符串0794为例:字符位置i 5 4 3 2 1权数2“一‘ '(mod 11) 5 8 4 2 1字符值ai 0 7 9 4乘积 0 56 36 8 乘积的和0+56+36+8二100总和100加上校验码必须与1( 模11)同余,由于100本身与1 (mod 11)同余,所以校验码必定为零,这样整个字符串为07940.。校验码设置在字符串的最右端。 用这种方法来校验字符串,需用与字符位置相关的权数乘以字符值(包括校验码在内),结果相加,总和被11除,如果余数是1,则通过验证。字符位置i 5 4 3 2 1权数2“一‘ '(mod 11) 5 8 4 2 1字符值ai 0 7 9 4 0乘积 0 56 36 8 0乘积的和 0+56+36+8+0“100满足验证要求。 100= -l(mod 11)
Gs/T 17710-1999 注:最右边的位置,即;0=1的位置,是留给校验码的位置。因此,原字符串(不含校验码)的最右端位置就与r的权数( W,)有关,此处W:为2,7带两位校验码的纯系统的计算方法7.1运算 这些系统与含一位校验码的系统计算方法完全一致,只需再加一步,除了底数是10的系统求出两个字符值作为校验码(对于校验码系统ISO 7064,MOD 97-10,见7.4)。用底数除运算结果得到的整商数即为i=2位置上的校验码值,余数则是i=1位置上的校验码值。7.2递归法应用举例 下面是采用递归法,用ISO 7064,MOD1271-36系统计算字符串“ISO 79”两个校验码的例子,字母数字字符值在表3中给出。运算步骤如下:步骤1翼 L+篇一中间和P;+山, 一,一l)=S;186762111 2484520+ 648 187 1 241443 +++十18282479二二==二中间和x底数=结果作为下次运算值的结果(mod 1271)Pv+, >(mod M)648 187 1 2414431 0201 132S; X r =尸(i+i)18X 36==12345664824 336676 X 36211 X 361 248 X 36452 X36=7 596=44 928=16 272=36 7201 020+0"=1 0201 020 X 361)被第一个校验码占据的这一位置在这一步时仍是空的,所以其值为零。第7步:为了计算校验码值, 用(M+1)减去最后的Pt>+1)值:1 271+1=1 2721 272一1 132=140 为得到单个的校验字符值,用140除以底数36,商数是3,整余数为320这样, 商数3即为位置i=2处的校验码值,整余数32为位置i=1处的校验码值。按照表3,3与32分别对应着字符3和字符W,因而带有校验码的完整的字符串为ISO 79旦里。需验证该字符串时,第1-5步如上所示,第6,7步如下: 020+3=1 023240+32=1 2721 023X36=36 828240(mod 1 271)(见注)1 272=1(mod 1271), 满足校验。注:最后这个字符是刚加上的,因而该总数不再乘以底数。 了.3多项式法应用举例用多项式法计算7.2中的字符串I SO 79的两个校验码,其权数采用表4中的值,字符值参照表3,步骤如下:字符位置i 7 6 5 4 3 2 1权数W; 373 893 625 900 25 36 1字符值a; 18 28 24 7 9乘积 乘积的和 6 714 25 004 15 000 6 300 2256 714+25 004+15 000+6 300-{-225=53 243二1 132 (mod 1 271)然后按照7.2中的第7步计算, 得到ISO 79旦里7.4 ISO 7064,MOD 97-10的简化程序
GB/T 17710-1999 对该系统可采用7.2和7.3中所叙述的步骤。通常, 十进制中的数字已经乘以10的幂数,因此可采用简化步骤如下:在字符串后面添写两个。,然后除以97,再用98减去上述余数,所得结果中的两个数字就是校验码。例如, 对于字符串794,计算过程如下:第一步:在校验码位置上加两个0: 794凶第二步:除以97, 得商818,整余数为54第三步:计算校验码值,( 97+1)一54=44,将44加到原字符串后面,得794丝为了验证, 用97除该字符串,如果余数为1,则满足要求。第三篇混合系统8混合系统说明¥.1公式 一个包括按标准混合公式产生的校验码的字符串须满足下式的验证:(…(( ((M+a
2024年1月4日发(作者:过南晴)
GB /T 17710-1999前、今 口 本标准等同采用国际标准ISO 7064:19830996年经ISO/IEC JTC1 SC14确认)。本标准提供了对键入和抄录数据时发生的错误进行校验的方法,目的是满足各系统之间对交换数 据的校验。与其他存在的校验码系统相比,本标准规定的校验码系统可直接校验数字型、字母型和数字字母型字符串,操作方便;检错类型多,检错能力强;并经过了严格的数学验证,所使用的数学知识浅显,易于接受和推广。 本标准的内容包括前言、引言及应用范围、第一篇总则、第二篇纯系统、第三篇混合系统和两个附录,附录A和附录B是标准的附录。本标准由中国标准化与信息分类编码研究所提出。 本标准主要起草单位: 中国标准化与信息分类编码研究所。本标准的主要起草人: 谢民、丘维声、丁雅娴、胡家璋、李小林。本标准由全国信息技术标准化技术委员会数据元表示法分技术委员会归口并负责解释。
Gs/T 17710-1999ISO前言I SO(国际标准化组织)是国际范围内各国标准组织(ISO成员)的联盟,其工作的开展主要通过ISO技术委员会,对技术委员会工作感兴趣的每一成员,经授权后,可成为该技术委员会的成员。与ISO有联系的其他国际组织、政府或非政府组织,可参与ISO的工作。技术委员会采纳的标准草案应提交全体成员组织讨论, 通过后方可被ISO委员会接纳为国际标准。国际标准I SO 7064由ISO/TC97(ISO/IEC JTC1前身)信息处理系统技术委员会制定,并在1981年11月提交成员组织讨论。 以下是通过此标准的成员组织:比利时 联邦德国中华人民共和国 爱尔兰捷克斯洛伐克 意大利丹麦 日本阿拉伯埃及共和国 荷兰芬兰 波兰法国 罗马尼亚全体成员组织一致同意通过本标准。 南非共和国西班牙瑞典瑞士英国美国 注:1996年8月,ISO/IEC JTC1 SC14组织P成员,对包括本标准在内的几个标龄较长的国际标准进行了阶段审核, 各P成员组织均同意不需修订本标准,SC14于1996年12月正式宣布ISO 7064:1983仍可继续使用。
中华人民共和国国家标准数据处理校验码系统Data processing-Check character systems 17710-1999GB/T iat ISO 7064:19830引言 目前,正在使用的校验码系统有一百多个,其中许多系统的特性非常近似,大多数系统并未起到有效的作用。现存的应用系统中,仅有少数经过严格的数学验证,有些还存在严重的缺陷。同时,系统的多样性无形中也损害着校验码系统的经济效益,常影响对交换数据的校验。因此,必须选择一些可满足不同需要的、兼容的校验码系统。本标准提供的校验码系统已经过数学验证,在其适用范围内,通过提供可靠的保护,可防止常见的抄录和键入错误。I SO 2108,ISO 2984和ISO 6166也规定了校验码系统,但它们只能用于专门的领域,其错误检测率低于本标准的规定。附录A概述了为某一用途而选用本标准校验码系统时应考虑的准则。 附录B举例说明了当国家字母的数目与国际上通用的26个字母不同时, 应如何建立兼容的本国校验码系统,并设计了具体的扩展方式。范围1.1本标准规定的校验码系统,可以防止在抄录和键入字符串时产生的错误。字符串的长度或固定或可变,包括下列字符集中的字符:1)数字型 (10个数字:0-9)2)字母型 (26个字母:A-Z )3)字母数字型 (字母和数字)字符串中嵌入的空格和特殊字符忽略不计。 1.2对使用本标准产生校验码或校验字符串的产品,本标准规定了一致性要求。1.3本标准规定的校验码系统能检查出下列错误:1)所有的单一字符替代错误( 即单个字符被另一字符所替换,如1234被错录为4234) ; 2)所有的或几乎所有的单一字符对换错误(即相邻两个字符或隔一个字符的两个单一字符的位置互换, 如12345被错录为123丝或12旦4旦);3)所有的或几乎所有的位移错误( 即整个字符串被向左或向右移位,如-123被录入为123一 );4)大部分的双替代错误(即在同一字符串中, 分开的两处单一字符对换错误,如1234567被错录为72345 87); 5)大部分的其他错误。1.4本标准不适用于经特殊设计的专门系统,如:1)既能查错又能自动更正的系统; 2)检查故意伪造的错误的系统; 3)检查仅在计算机之间进行交换的字符串的系统。 1.5本标准用于各组织之间的信息交换,也是内部信息系统信息交换的有力工具。国家质量技术监督局1999一03一23批准1999一10一01实施
Gs/T 17710-1999第一篇总2定义则本标准采用下列定义: 2.1校验码checker character可通过数学关系来验证代码正确性的附加字符。 2.2校验码系统checker character system产生校验码并校验包括校验码在内的字符串的一套规则。 2.3附加符,附加校验码supplementary character 受保护的一系列字符串所构成的字符集以外的校验码。2.4模数modulus为使整除运算获得整余数而用作除数的整数。 2.5同余congruence指在一组整数中, 两两之差与模数有倍数关系的特性。同余用符合“三”表示。如39=6(模11),即指39一6=33是11的倍数。2.6底数radix几何级数的基数。 3类型本标准规定了两类系统: 1)纯系统;2)混合系统。 3门纯系统表1中列出了纯系统( 详见第二篇),每一个系统的所有运算都使用单一模数。校验码系统表示法, )ISO 7064 MOD 11-2ISO 7064 MOD 37-2ISO 7064 MOD 97-10ISO 7064 MOD 661-26ISO 7064 MOD 1271-36表1纯系统 适用范围 数字型字符串 字母数字型字符串数字型字符串 字母型字符串字母数字型字符串校验码数目及类型2 ,1位数字或附加符X 1位数字或字母或附加符、2位数字 2位字母 2位数字或字母 1)在MOD之后的第1个数字是模数,第2个数字是底数。2)前两个系统可在被校验的字符串处产生一位附加校验码,(例如ISO 7064 MOD 11-2产生的校验码是。~9及X, ISO 7064 MOD 37-2的校验码是。-9,A-Z及、)。当不能使用附加校验码,又只能有一位校验码时,应避免使用产生附加校验码的系统;如果既不能使用附加校验码,又不能使用一位校验码, 则应使用混合系统。 3.2混合系统 表2中列出了混合系统(详见第三篇)。混合系统在运算中采用了两个模数,其中一个模数等于被保护的字符集中的字符数,另一个模数比它大1,形成的校验码位于被保护的字符串组成的字符集内。
GB/T 17710-1999表2混合系统校验码系统表示法“应用 字符数目及类型ISO 7064 MOD 11,10数字串 1位数字 ISO 7064 MOD 27,26字母串 1位字母 ISO 7064 MOD 37,36字母数字串1位数字或字母1)在系统表示法中,紧跟在MOD后面的两个数字是两个模数。4系统一致性和表示法4.1字符串本标准为不同的应用规定了不同的校验码系统, 受这些系统保护的字符串应遵循本标准的规定。4.2生成校验码的产品4.2.1若无更严格的条件限制,可为本标准生成校验码的产品(软件或硬件),应能为本标准的所有系统生成校验码。4.2.2对不能使本标准的所有系统生成校验码的产品,应说明它们的特定使用范围。如“为ISO 7064,MOD 11-2生成的校验码”。4.3校验产品4.3.1若无更严格的条件限制,可校验本标准所生成的校验码的产品(软件或硬件),应能使用本标准的所有系统。4.3.2对仅能用本标准中某些校验码系统的产品,应说明它们所使用的系统。如“用ISO 7064,MOD11-2生成的校验字符串”。4.4系统表示法4.4.1通常采用表1和表2中给出的每一系统的全称表示,例如“ISO 7064,MOD 11-2".注:采用缩写形式“MOD 11”将会与使用模数11的类似系统混淆。4.4.2当需要简化时,如,数据元传输时往往需要同时标明用来保护该数据元的系统,可采用下列单一数字表示法:校验码系统 表示法校验码系统 表示法ISO 7064, MOD 11一2ISO 7064, MOD 11,10ISO 7064, MOD 37-2ISO 7064, MOD 27,26ISO 7064, MOD 97-10ISO 7064, MOD 37,36ISO 7064, MOD 661-26无校验码或非标准系统ISO 7064, MOD 1271-36第二篇纯系统5纯系统的说明5.1公式字符串应满足下列公式的校验: 习lai X r“一’)]= 1(mod M)公式中:n—包括校验码的字符串的字符个数;i —表示从右边开始的字符所在位置序号(包括校验码在内),即最右边的字符i=1,空格与分割符不计在内;
GBIT 17710-1999a;—由表3规定的处于i位置上的字符值;r—底数(即几何级数的基数);M—字符012345 6 7 8 9 模数。系统中数字字符值01234567表3字符对应的值 系统中字母字符值系统中字母数字字符值01234567898910为ISO 7064 MOD 11-2设置的附加符X As0123456789101112131415161718191011121314151617181920212223242526272829cDEFGHIJKLMNOPQRST
GB/T 17710-1999表3(完)字符UVWXYZ 系统中数字字符值系统中字母字符值202122232425系统中字母数字字符值30313233343536为ISO 7064 MOD 37-2设置的附加符* 5.2运算 任何运算均按公式进行。5.3校验码的位置校验码设在字符串的最右端。 6带一位校验码的纯系统的计算方法纯系统有两种基本运算方法: 纯系统递归法和纯系统多项式法,两种方法的结果一致。6.1递归法6.1.1运算在递归法中, 字符串的字符从左到右逐个处理。用j=l,......,n来表示下标。n为包括校验码在内的字符串中字符的数目。当j=1时,定义P;=Mo计算如下: S;=P;+a( ,一,+1) 其中,a(.-;+,)为字符值,r为底数。如果Sn =1(mod M),则字符串满足校验要求。选择校验码a,时,应使之满足公式尸,十a,三1 (mod M)。1)二S; +;(P X r6.1.2举例假定使用校验码系统I SO 7064,MOD 11-2为字符串0794设置一个校验码。此时M=11,r=2,n二5(4位字符加1位校验码)。运算过程如下:步骤1前次运下一字中间 +_=行结果符值和”P;+a( ,一,+ll=12345中间和X底数=运算结果vS; X r=P(;+i)0 X 2=0S;0723507X2 = 14二460 十00 十714 十46 +94====23 X 250 X 2=100100+校验码值要与1(mod 11)同余此处结果P,为100, 加上校验码的值必须与1(mod 11)同余,而100本身就与1(mod 11)同余,因此校验码值为零,整个受保护的字符串则为0794旦,校验码加在字符串的最右边。为了校验该字符串是否正确, 如上所示,再按步骤j=1-5进行计算,将校验码值。也包括在内。如果运算结果与1(模11)同余,则证明该字符串是正确的。
Gs/T 17710-1999注 1.如果计算过程中任一步的结果PU+i )或中间和s,大于模数M,则可减去模数的倍数,用其整余数继续运算。如上例中: P3二14可处理为14一11二3 S,- --23可处理为23一22=1P4=46可处理为46一44二2 2.在ISO 7064,MOD11-2系统中有效的校验码值是0--.10。如果校验码的值为10,就由字符“X”表示。如果原字符串是079这样的短字符串, 在第三步计算结束时运算值为46,46=2(模11),由于2十10=1(模11),因此带有校验码的完整字符串为079兰。对该字符串进行检验时, 第三步运算之后得到46+10=56,与1(模11)同余,满足校验。 6.2多项式法6.2.1运算纯系统多项式法采用r c-1’或r c'一‘’(moe, M)的值乘以字符串中每一字符值来计算。表4中列出了所有纯系统的r“一‘’(mod M)前15个值。将字符值与它们的权数相乘, 再将结果相加,如果这些结果之和与1(模M)同余,则包含校验码在内的字符串是有效的。位置序号ISO 7064,MOD 11-2ISO 7064,MOD 37-215 14 13 12 1110 9 8 7 65 4 3 2 15 8 4 2 1表4纯系统的权数 6 3 7 9 105 8 4 2 130 15 26 13 2531 34 17 27 3253 15 50 5 4934 81 76 27 9016 8 4 2 19 30 3 10 1ISO 7064,MOD 97-10ISO 7064,MOD 661-26ISO 7064,MOD 1271-36129 488 273 341. 547199 389 498 70 562225 390 15 26 1769 904 590 87 532156 428 718 373 893625 900 25 36 1注:此处仅列出前巧个位置的权数,其余的可用下列公式无限扩展:W; 二r(‘一‘)(mod M)W;为位置序号i的权数 6.2.2举例 用多项式法产生校验码的计算过程如下,仍以6.1.2中的字符串0794为例:字符位置i 5 4 3 2 1权数2“一‘ '(mod 11) 5 8 4 2 1字符值ai 0 7 9 4乘积 0 56 36 8 乘积的和0+56+36+8二100总和100加上校验码必须与1( 模11)同余,由于100本身与1 (mod 11)同余,所以校验码必定为零,这样整个字符串为07940.。校验码设置在字符串的最右端。 用这种方法来校验字符串,需用与字符位置相关的权数乘以字符值(包括校验码在内),结果相加,总和被11除,如果余数是1,则通过验证。字符位置i 5 4 3 2 1权数2“一‘ '(mod 11) 5 8 4 2 1字符值ai 0 7 9 4 0乘积 0 56 36 8 0乘积的和 0+56+36+8+0“100满足验证要求。 100= -l(mod 11)
Gs/T 17710-1999 注:最右边的位置,即;0=1的位置,是留给校验码的位置。因此,原字符串(不含校验码)的最右端位置就与r的权数( W,)有关,此处W:为2,7带两位校验码的纯系统的计算方法7.1运算 这些系统与含一位校验码的系统计算方法完全一致,只需再加一步,除了底数是10的系统求出两个字符值作为校验码(对于校验码系统ISO 7064,MOD 97-10,见7.4)。用底数除运算结果得到的整商数即为i=2位置上的校验码值,余数则是i=1位置上的校验码值。7.2递归法应用举例 下面是采用递归法,用ISO 7064,MOD1271-36系统计算字符串“ISO 79”两个校验码的例子,字母数字字符值在表3中给出。运算步骤如下:步骤1翼 L+篇一中间和P;+山, 一,一l)=S;186762111 2484520+ 648 187 1 241443 +++十18282479二二==二中间和x底数=结果作为下次运算值的结果(mod 1271)Pv+, >(mod M)648 187 1 2414431 0201 132S; X r =尸(i+i)18X 36==12345664824 336676 X 36211 X 361 248 X 36452 X36=7 596=44 928=16 272=36 7201 020+0"=1 0201 020 X 361)被第一个校验码占据的这一位置在这一步时仍是空的,所以其值为零。第7步:为了计算校验码值, 用(M+1)减去最后的Pt>+1)值:1 271+1=1 2721 272一1 132=140 为得到单个的校验字符值,用140除以底数36,商数是3,整余数为320这样, 商数3即为位置i=2处的校验码值,整余数32为位置i=1处的校验码值。按照表3,3与32分别对应着字符3和字符W,因而带有校验码的完整的字符串为ISO 79旦里。需验证该字符串时,第1-5步如上所示,第6,7步如下: 020+3=1 023240+32=1 2721 023X36=36 828240(mod 1 271)(见注)1 272=1(mod 1271), 满足校验。注:最后这个字符是刚加上的,因而该总数不再乘以底数。 了.3多项式法应用举例用多项式法计算7.2中的字符串I SO 79的两个校验码,其权数采用表4中的值,字符值参照表3,步骤如下:字符位置i 7 6 5 4 3 2 1权数W; 373 893 625 900 25 36 1字符值a; 18 28 24 7 9乘积 乘积的和 6 714 25 004 15 000 6 300 2256 714+25 004+15 000+6 300-{-225=53 243二1 132 (mod 1 271)然后按照7.2中的第7步计算, 得到ISO 79旦里7.4 ISO 7064,MOD 97-10的简化程序
GB/T 17710-1999 对该系统可采用7.2和7.3中所叙述的步骤。通常, 十进制中的数字已经乘以10的幂数,因此可采用简化步骤如下:在字符串后面添写两个。,然后除以97,再用98减去上述余数,所得结果中的两个数字就是校验码。例如, 对于字符串794,计算过程如下:第一步:在校验码位置上加两个0: 794凶第二步:除以97, 得商818,整余数为54第三步:计算校验码值,( 97+1)一54=44,将44加到原字符串后面,得794丝为了验证, 用97除该字符串,如果余数为1,则满足要求。第三篇混合系统8混合系统说明¥.1公式 一个包括按标准混合公式产生的校验码的字符串须满足下式的验证:(…(( ((M+a