CN1269657A - 一种数字数据变换方法 - Google Patents

一种数字数据变换方法 Download PDF

Info

Publication number
CN1269657A
CN1269657A CN00112884A CN00112884A CN1269657A CN 1269657 A CN1269657 A CN 1269657A CN 00112884 A CN00112884 A CN 00112884A CN 00112884 A CN00112884 A CN 00112884A CN 1269657 A CN1269657 A CN 1269657A
Authority
CN
China
Prior art keywords
bit
character
conversion
packet
radix
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN00112884A
Other languages
English (en)
Other versions
CN1163814C (zh
Inventor
何大可
何薇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southwest Jiaotong University
Xian Jiaotong University
Original Assignee
Southwest Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southwest Jiaotong University filed Critical Southwest Jiaotong University
Priority to CNB001128841A priority Critical patent/CN1163814C/zh
Publication of CN1269657A publication Critical patent/CN1269657A/zh
Priority to US10/240,707 priority patent/US6859151B2/en
Priority to PCT/CN2001/000615 priority patent/WO2002033828A1/zh
Priority to EP01937948A priority patent/EP1289151A4/en
Priority to AU2001263734A priority patent/AU2001263734A1/en
Application granted granted Critical
Publication of CN1163814C publication Critical patent/CN1163814C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/02Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
    • H03M7/04Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word the radix thereof being two
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种数字数据变换方法,该方法解决现有加密电子邮件或任意8-比特数据序列在传送准备时所用变换编码效率低,加重网络负荷问题。其技术关键是设计了从一般比特串到可打印ASCII字符或汉字信息交换码序列的“基数-91变换”及扩展变换。与Internet标准SMTP结合使用,本发明取代“基数-64变换”(PGP和PEM采用)能使传输时间、存储需求减少7.7%或11.11%;取代QP变换能使传输时间、存储需求减少58.97%或60.49%。主要用于Internet加密电子邮件的传输或存储。

Description

一种数字数据变换方法
本发明涉及信息处理技术领域,特别涉及数字加密、数字签字、数据压缩等信息处理技术领域。
随着Internet国际互联网及其商业应用的迅猛发展,E-mail(电子邮件)的安全保密问题越来越突出。1991年出现了主要用于E-mail加密的密码系统PGP(Pretty Good Privacy),以及于1993年发布最后文本的Internet标准建议草案PEM(Privacy Enhanced Mail)。如今,PGP密码系统大约被全世界三亿Internet个人用户中的半数用于E-mail加密;而PEM正在被越来越多的Internet企业用户采用,成为电子商务安全的一个基础。PGP和PEM都能为用户提供消息的保密和认证功能,以及与E-mail的兼容性;PGP还为用户提供消息的压缩功能。所谓与E-mail兼容,就是把准备用E-mail传送的任意8-比特数据字节(Byte)串或任意比特流数据,变换为有限制的ASCII(American Standard Code for Information Interchange)字符的串。对后者的主要限制有:(1)字符可打印;(2)字符集中不包含控制字符。这样的ASCII字符共有95个,其对应的10进制编码是从32到126的全部整数。由这样的ASCII字符书写的邮件符合Internet标准SMTP(Simple Mail Transfer Protocol),能在几乎所有的E-mail系统中传递。目前,PGP或PEM提供与E-mail的兼容性,都是通过称为“基数-64变换”的编码映射Base64(也记作Radix-64)来实现的。
“基数-64变换”将输入消息M切分为6比特长的分组作为自变量实施映射,该映射记为
Base64[]:X→Y其中,自变量或原像集X包括全部64个6比特符号(用整数记为0,1,...,63)和表示“无数据”的Φ;像集Y包括26个英文字符的大写和小写、0至9的阿拉伯数字、“+”、“/”,和填充符“=”。常用软件中采用的映射规则为
Base64[0]=“A”,...,Base64[25]=“Z”,Base64[26]=“a”,...,Base64[51]=“z”,
Base64[52]=“0”,...,Base64[61]=“9”,Base64[62]=“+”,Base64[63]=“/”特别地,Base64[Φ]=“=”,仅在必要时使用,以便将变换输出的总字符数凑足为4的整倍数。为避免混淆,与C语言源程序的规定不同,本说明书采用中文引号“”作为ASCII字符或字符串的定界符。设Y中的每个符号用8-比特字节来记录、存储和传输(以下均按这种简化观点理解“传输”以避免讨论各式各样的实际传输信道,它不影响本说明书中各变换的性能对比),采用“基数-64变换”的编码效率为6/8=75%,数据扩展率为8/6=4/3=133.33%,故通常说“基数-64变换”将3字节输入变换为4字节输出。这对信道资源宝贵的Internet是一个浪费。目前在“多用途国际互联网邮件扩展(MIME)”中使用的变换QP(Quoted-Printable),是简单地用三个可打印字符“=LR”来替换16进制记法为“LR”的8-比特数据,L、R∈{0,1,...,9,A,B,C,D,E,F}。故QP变换的自变量比特分组长度为8,编码效率为1/3,数据扩展率为300%,对Internet资源的浪费更大。据新闻媒体报道,1999年底北京大学学生张明和戚文敏发明了名称为“电子邮局”(英文缩写EPOST)的技术,其效果是加速数据在Internet中的传送和突破原电子邮件邮箱存储容量的限制;但至今未见实现技术的公开报道,也未检索到国内外相关的专利申请。
本发明的目的是提供一种数字数据变换方法,它能与SMTP或稍作修订的MIME结合使用,降低在网络传输中由PGP或PEM加工(签字、压缩、加密)消息时使用“基数-64变换”导致的数据扩展,或因为使用“QP变换”导致的数据扩展,提高消息传输速度;同时降低以可打印字符方式存储该类数据的存储容量需求。
本发明的目的由以下技术方案实现:设计了一种从任意比特串数据到可打印字符或字的序列的变换。其主要思路是:将输入消息M分组映射的比特长度,从现有技术使用的6或8,增加到13、27或20,并利用91个可打印ASCII字符的集合或可打印双字符集合的直积与并积,来设计因分组长度增加后以指数方式增大的变换像集,从而提高编码效率。以下是本发明设计的“基数-91变换”,以及它的扩展形式——“基数-91扩展变换”1.“基数-91变换”描述
“基数-91变换”将输入消息M切分为13比特的分组作为自变量实施映射,该映射记为
Radix-91:X→Y其中,自变量或原像集X包括全部8192个13比特符号(用整数记为0,1,...,8191),和必要时用于指示末组约定一侧n个比特数据为填充数据的φn(n=1,...,12),φ1=8192,...,φ12=8203,原像集X有8204个元素;像集Y为直积R91×R91的子集,符号R91表示从95个可打印ASCII字符中除去包括“=”、“?”和空格符在内的四个字符后余下的91个字符的集合,直积R91×R91有8281个元素。
定义Radix-91是X到直积R91×R91内任意选定的一个1-1映射。选取哪一个具体的1-1映射作为Radix-91,不影响本发明的效果。为实现方便,本发明首选以下映射(设R91_CH[91]是包括R91全部元素的字符组,下同):
Radix-91:X→Y≡(ch1,ch2)    字符ch1,ch2∈R91
ch1=R91_CH[X/91],ch2=R91_CH[X%91]    (1)这里的符号“/”和“%”为C语言中的运算符,分别表示整数除法和模除求余数运算。
将输入消息M切分为13比特分组的操作,可能产生不足13比特的末分组。对这种分组,在约定一侧用n个比特补足成为完整分组后实施映射;同时在其后增加一组数据φn(n=1,...,12),并当做输入数据实施映射。双字符“=?”与“?=”分别用作输出字符串的“引导符”和“结束符”。故“基数-91变换”的输出中最多可出现93个可打印ASCII字符。
按以上“基数-91变换”的变换规则,由填充比特及其指示符φn的像以及“引导符”和“结束符”导致的输出数据的额外增加不超过8个字符。所以,随输入消息M的比特数或字节数增加,本发明设计的“基数-91变换”的平均编码效率趋近于81.25%,数据扩展率趋近于123%(现有的“基数-64变换”的编码效率为75%,数据扩展率为133%)。2.“基数-91扩展变换”(27比特分组)描述
集合R91的定义与上文中相同。按“基数-91变换”的思路,但输入消息分组长度由13比特增加到27比特,再设计出可打印字符或字的4字节值作为变换的像,就得到“基数-91扩展变换”。将其针对27比特分组的映射记为
Radix-91+:X→Y其中,自变量或原像集X包括全部227个27比特符号(用整数记为0,1,...,134217727),和必要时用于指示末组约定一侧n个比特数据为填充数据的φn(n=1,...,26),φ1=134217728,...,φ26=134217753,原像集X有227+26个元素;像集Y为直积Y0×Y0的子集,集合Y0是直积R91×R91与“汉字通信编码字符集的信息交换码集合”(包括GB2312和GB8565)或更一般的“中国、日本和韩国通用汉字编码字符集(CJK UNIFIEDIDERGRAPH)”的信息交换码集合的某个m元子集HZm的并集,即
Y0={R91×R91}∪HZm整数m∈[3305,942],R91×R91元素数为8281,Y0的元素数N=8281+m≥11586,直积Y0×Y0的元素数为N2,大于X的元素数。
定义Radix-91+是X到直积Y0×Y0内任意选定的一个1-1映射。在以上限定下m或N的取法,以及选取哪一个具体映射作为Radix-91+,均不影响本发明的效果。为实现方便,本发明首选m=3305,N=11586,HZm为GB2312中汉字“啊[1601]”至汉字“盈[4905]”的信息交换码(双8-比特字符,其中不同的8-比特字符有94个)的集合,[]内数字是该汉字的区位码,并选择以下具体映射:
Radix-91+:X→Y≡(y1,y2)≡(ch1,ch2,ch3,ch4)其中整数y1,y2∈[0,N-1],字符ch1,ch2,ch3,ch4∈R91
y1=X/N,y2=X%N                                      (2)所以称N为“扩展的基数”。当y1<8281时
ch1=R91_CH[y1/91],ch2=R91_CH[y1%91]                (3)当y1≥8281时
ch1ch2=区位码为1601+(y1-8281)的汉字的信息交换码       (4)当y2<8281时
ch3=R91_CH[y2/91],ch4=R91_CH[y2%91]                (3’)当y2≥8281时
ch3ch4=区位码为1601+(y2-8281)的汉字的信息交换码       (4’)
将输入消息M切分为27比特分组的操作,可能产生不足27比特的末分组。对这种分组,在约定一侧用n个比特补足成为完整分组后实施映射;同时在其后增加一组数据φn(n=1,...,26),并当做输入数据实施映射。双字符“=?”与“?=”分别用作输出字符串的“引导符”和“结束符”。
按以上“基数-91扩展变换”的变换规则,由填充比特及其指示符φn的像以及“引导符”和“结束符”导致的输出数据的额外增加不超过12个字符。所以,随输入消息M的比特数或字节数增加,本发明设计的“基数-91扩展变换”(27比特分组)的平均编码效率趋近于84.375%,数据扩展率趋近于118.5%(现有的Base64变换的编码效率为75%,数据扩展率为133%)。3.“基数-91扩展变换”(20比特分组)描述
集合R91、HZm与集合Y0的定义与上文中相同。按“基数-91变换”的思路,但输入消息分组长度由13比特增加到20比特,再设计出可打印字符或字的3字节值作为变换的像,就得到另一种“基数-91扩展变换”。仍然采用前面的映射记号
Radix-91+:X→Y其中,自变量或原像集X包括全部220个20比特符号(用整数记为0,1,...,1048575),和必要时用于指示末组约定一侧n个比特数据为填充数据的φn(n=1,...,19),φ1=1048576,...,φ19=1048594,原像集X有=220+19个元素;像集Y为直积R91×Y0的子集,Y0的元素数N≥11586,直积R91×Y0的元素数为91×N,大于X的元素数。
定义Radix-91+是X到直积R91×Y0内任意选定的一个1-1映射。在以上限定下m或N的取法,以及选取哪一个具体的映射作为Radix-91+,均不影响本发明的效果。为实现方便,本发明首选m=3305,N=11586,并选择以下具体映射;
Radix-91+:X→Y≡(y1,y2)≡(ch1,ch2,ch3)其中,整数y1∈[0,90],y2∈[0,N-1],字符ch1,ch2,ch3∈R91
y1=X/N,y2=X%N                                      (5)
ch1=R91_CH[y1]                                        (6)当y2<8281时
ch2=R91_CH[y2/91],ch3=R91_CH[y2%91]                (7)当y2≥8281时
ch2ch3=区位码为1601+(y2-8281)的汉字的信息交换码       (8)
不足20比特的末分组的处理方法,与按27比特分组的“基数-91扩展变换”类似。如同“基数-91变换”,双字符“=?”与“?=”分别用作输出字符串的“引导符”和“结束符”。由填充比特及其指示符φn的像以及“引导符”和“结束符”导致的输出数据的额外增加不超过10个字符。所以,随输入消息M的比特数或字节数增加,本发明设计的“基数-91扩展变换”(20比特分组)的平均编码效率趋近于83.33%,数据扩展率趋近于120%(现有的Base64变换的编码效率为75%,数据扩展率为133%)。
本发明与MIME准用的“基数-64变换”与QP变换相比,其特点是变换分组映射的自变量比特数超过6或8,也不是6或8的整倍数,而是特意选定的13、27或20。变换设计特征对比数据见表1。表1
Figure A0011288400091
本发明与现有技术相比,明显地提高了信息编码效率。将本发明用于信息传输时可以减少信道占用时间,节省传输费用;将本发明用于任意比特串数据按可打印字符或字方式的存储时,能节省存储空间或费用。变换性能特征对比数据见表2。表2
表2中的(等量)“消息”,指表中变换的输入,而不是指具体应用中由PGP或PEM处理的用户明文消息。表2中第三行数据(“等量消息变换后经E-mail传输的时间”)只是按编码方法本身计算的结果。在实际网络传输中使用本发明时,由于待传输消息的编码效率提高,网络负荷随之减轻,网络处理信道争用(“碰撞”)的资源消耗也随之降低,故本发明的实际效果比表2中第三行数据显示的会更好。
本发明的附图说明如下:
图1为本发明的“基数-91变换”计算机算法流程图。
图2为本发明的“基数-91扩展变换”计算机算法流程图。
以下结合图1对本发明作进一步的详细说明。
将任意比特串数据映射为可打印ASCII字符序列,该变换方法由计算机软件实现,其特征在于采用下列步骤:
(1)启动计算机(或计算机已由使用本变换软件的应用程序启动);
(2)将欲执行变换算法的可执行程序模块存入计算机系统的程序存储器,将程序准备就绪的输出字符集和填充比特指示数组移入内存,建立R91_CH[91]和φ[13]的表(Table);
(3)参数准备及赋值(由调用本模块的程序完成):将输入字节串指针INP_STR指向待变换字节串地址,INP_Len=输入字节串长度,32比特无符号整数变量X,W=0,W中未变换的剩余比特数R=0,输出字符串OUT_STR=“=?”,输出字符串长度OL=2;
(4)将程序计数器指针指向程序存储器中前述可执行程序模块入口地址,读取指令并执行操作,即执行映射变换;
(5)变换的循环体过程(当INP_Len>0时执行)
W的第R至第R+7比特位←从地址INP_STR处读取1个字节;
调整参数:R←R+8;INP_STR←INP_STR+1;INP_Len←INP_Len-1;
实施分组映射:
如果(R≥13或INP_Len=0)则执行
    {X←W的低端13比特;
     W>>13;(即在W的低端保存剩余比特)R←R-13;
     ch1←R91_CH[X/91];ch2←R91_CH[X%91];
     将字符ch1、ch2添加到输出串OUT_CH末尾;OL←OL+2;}
如果(R<0)则执行
    {n←-R(即末组高端n个0比特是填充比特)
     X←φ[n];ch1←R91_CH[X/91];ch2←R91_CH[X%91];
     将字符ch1、ch2添加到输出串OUT_CH末尾;OL←OL+2;}
(6)在OUT_STR末尾加结束符“?=”;
(7)变换模块执行结束。
变换模块执行结束后,输出字符串存于OUT_STR,其长度为OL的值。[例1]参照图1和前面对该计算机程序主要技术特征的说明,首先初始化确定具体映射关系的输出字符集
charR91_CH[91]={“!”“"”,...,“+”,“-”,...,“<”,“>”,“@”,...,“~”};即这里从95个可打印字符中扣除的4个字符是:“=”、空格符、“,”和“?”,各符号在ASCII表中的顺序不变;故映射规则为:R91_CH[0]=“!”,R91_CH[1]=“"”,R91_CH[22]=“8”,R91_CH[67]=“g”,R91_CH[90]=“~”等等。比特填充指示数据初始化为
unsigned φ[13]={0,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8203};
设输入消息按8-比特分段的10进制表出为
unsigned char INP_STR[5]={255,255,252,254,129};输入消息字节长度INP_Len=5,输出字符串初始化为OUT_STR=“=?”,其长度OL=2。用W表示无符号32比特变量,其比特位由高(左)到低(右)用31,...,1,0标记;用R计移入W但尚未分组的输入比特数目,这些比特总是存放在W的低R位(新读取的输入字节比特在W中紧靠原剩余比特的左侧存放)。初始化W=0,R=0。以符号“B”开头的记数为二进制数,其右端为低位比特。与图1算法流程中循环体对应的处理过程如下:(1)取INP_STR[0]=255存入W低8位,得到W=B0...011111111,R=8,INP_Len=4(2)取INP_STR[1]=255,在W中紧临低R位的左侧存入,即存入W的第8至第15位,
得到W=B0...011111111 11111111,R=16,INP_Len=3,此时R≥13,取出W低端13
比特为X,X=8191,W>>13(即在W低位保存剩余比特,下同),成为
W=B0......00000111,R=3,
ch1=R91_CH[X/91]=R91_CH[90],ch2=R91_CH[X%91]=R91_CH[1]
OUT_STR=“=?~"”,OL=4;(3)取INP_STR[2]=252,存入W第3至第10位,得到W=B0...011111100111,R=11,
INP_Len=2;(4)取INP_STR[3]=254,存入W第11至第18位,得到
W=B0...011111110 11111100111,R=19,INP_Len=1,此时R≥13,取出W低端13比
特为X,X=6119,W>>13,成为W=B0......00111111,R=6,
ch1=R91_CH[X/91]=R91_CH[67],ch2=R91_CH[X%91]=R91_CH[22],
OUT_STR=“=?~"g8”,OL=6;(5)取INP_STR[4]=129,存入W第6至第13位,得到
W=B0...010000001 111111,R=14,INP_Len=0,此时R≥13,取出W低端13比特为
X,X=127,W>>13,成为W=B0......00001,R=1,
ch1=R91_CH[X/91]=R91_CH[1],ch2=R91_CH[X%91]=R91_CH[36],
OUT_STR=“=?~"g8"H”,OL=8;(6)因为INP_Len=0,取X=W=1作为完整13比特组(即在剩余比特左侧填充了12个
0比特),R=R-13=-12,
ch1=R91_CH[X/91]=R91_CH[0],ch2=R91_CH[X%91]=R91_CH[1],
OUT_STR=“=?~"g8"H!"”,OL=10;(7)R<0,知n=-R=12是末组有效数据(1比特)左侧的填充0比特个数,用φ[12]=8203
指出填充比特个数,并将它映射为输出:X=8203,
ch1=R91_CH[X/91]=R91_CH[90],ch2=R91_CH[X%91]=R91_CH[13],
OUT_STR=“=?~"g8"H!"~/”,OL=12;(循环体处理过程结束)
最后,在输出串末尾添加“?=”,使输出串符合Internet标准建议MIME中已编码数据的标示法。所以,对所给输入数据,“基数-91变换”的输出是字符长度为14的可打印字符串OUT_STR=“=?~"g8"H!"~/?=”,OL=14。要实施Radix-91逆变换,只需按相反的次序进行操作,并注意字符“=?”和“?=”没有原像[例1结束]。
以下结合图2对本发明作进一步的详细说明。
将任意比特串数据映射为可打印ASCII字符和汉字信息交换码的序列,该变换方法由计算机软件实现,其特征在于采用下列步骤:
(1′)启动计算机(或计算机已由使用本变换软件的应用程序启动);
(2′)将欲执行变换算法的可执行程序模块存入计算机系统的程序存储器,将程序准备就绪的输出字符集、汉字信息交换码集、填充比特指示数组和常数11586移入内存,建立R91_CH[91]、HZm[3305]、φ[27]的表(Table)和常量——扩展的基数N;
(3′)参数准备及赋值(由调用本模块的程序完成):将输入字节串指针INP_STR指向待变换字节串地址,INP_Len=输入字节串长度,32比特无符号整数变量X,y1,y2,W=0,W中未变换的剩余比特数R=0,输出字符串OUT_STR“=?”,输出字符串长度OL=2;
(4′)将程序计数器指针指向程序存储器中前述可执行程序模块入口地址,读取指令并执行操作,即执行映射变换;
(5′)变换的循环体过程(当INP_Len>0时执行)
W的第R至第R+7比特位←从地址INP_STR处读取1个字节;
调整参数:R←R+8;INP_STR←INP_STR+1;INP_Len←INP_Len-1;
实施分组映射:
如果(R≥27或INP_Len=0)则执行
    {X←W的低端27比特;
     W>>27;(即在W的低端保存剩余比特)R←R-27;
     y1←X/N;y2←X%N;
     当(y1<8281){ch1←R91_CH[y1/91];ch2←R91_CH[y1%91];}
     当(y1≥8281)ch1ch2←HZm[y1-8281];
     当(y2<8281){ch3←R91_CH[y2/91];ch4←R91_CH[y2%91];}
    当(y2≥8281)ch3ch4←HZm[y2-8281];
    将ch1、ch2、ch3、ch4添加到输出串OUT_CH末尾;OL←OL+4;
    }
如果(R<0)则执行
    {n←-R(即末组高端n个0比特是填充比特);X←φ[n];
    y1←X/N;y2←X%N;
    当(y1<8281){ch1←R91_CH[y1/91];ch2←R91_CH[y1%91];}
    当(y1≥8281)ch1ch2←HZm[y1-8281];
    当(y2<8281){ch3←R91_CH[y2/91];ch4←R91_CH[y2%91];}
    当(y2≥8281)ch3ch4←HZm[y2-8281];
    将ch1、ch2、ch3、ch4添加到输出串OUT_CH末尾;OL←OL+4;
    }
(6′)在OUT_STR末尾加结束符“?=”;
(7′)变换模块执行结束。
变换模块执行结束后,输出字符串存于OUT_STR,其长度为OL的值。[例2]本例将对输入数据
unsigned char INP_STR[6]={255,255,252,254,129,255};实施27比特分组的“基数-91扩展变换”,变换输出中作为GB2312信息交换码的双8-比特字符约定以相应汉字显示。参照图2和前面对该计算机程序主要技术特征的说明,首先初始化R91_CH[91](同例1)、HZm、φ[27]和扩展的基数N=11586。输出串初始化为OUT_STR=“=?”,其长度OL=2。采用与例1类似的比特分组拼装方案,可得到如下两个分组:
X1=B 110 11111100 11111111 11111111=117243903
X2=B 000000 11111111 10000001 11111=2093119二进制记数中的间隔仅仅是为解说方便,即从左往右,X1是由
INP_STR[3]低位3比特、INP_STR[2]8比特、INP_STR[1]8比特、INP_STR[0]8比特组成,X2是由
6个填充0比特、INP_STR[5]8比特、INP_STR[4]8比特、INP_STR[3]高位5比特组成。按照公式(2)、(3)、(4)、(3′)、(4′)实施映射,对X=X1,
y1=X/N=10119,y2=X%N=5169y1≥8281,ch1ch2是区位码为1601+(y1-8281)=3439的汉字的信息交换码;y2<8281,
ch3=R91_CH[y2/91]=R91_CH[56],ch4=R91_CH[y2%91]=R91_CH[73]第一分组变换后的结果是OUT STR=“=?谜\m”,OL=6。对X=X2,
y1=X/N=180,y2=X%N=7639y1<8281,ch1=R91_CH[y1/91]=R91_CH[1],ch2=R91_CH[y1%91]=R91_CH[79]y2<8281,ch3=R91_CH[y2/91]=R91_CH[83],ch4=R91_CH[y2%91]=R91_CH[86]第二分组变换后的结果是OUT_STR=“=?谜\m"swz”,OL=10。增加一组指示X2高端6个0比特为填充比特的分组:X=φ[6]=134217733,此时
y1=X/N=11584,y2=X%N=5509y1≥8281,ch1ch2是区位码为1601+(y1-8281)=4904的汉字的信息交换码;y2<8281,
ch3=R91_CH[y2/91]=R91_CH[60],ch4=R91_CH[y2%91]=R91_CH[49]再加上结束符“?=”,最终的输出是OUT_STR=“=?谜\m"swz赢U?=”,OL=16。
“基数-91扩展变换”的逆变换按照上述过程的逆过程进行,并注意字符“=?”和“?=”没有原像。“基数-91扩展变换”的编码效率高于“基数-91变换”[例2结束]。
在实施本发明时,即使分组映射规则确定之后,将输入字节串按确定比特长度的分组拼装方案(包括比特数不足的末组的处理办法)还可能有多种选择,以致给出不同的输出字符串,但输出字符串的长度不会因为分组拼装方案不同而变化。因而,比特分组拼装方案并不影响本发明的编码效率,也不影响通过相应逆变换还原出正确的输入数据。
本发明中双字符“=?”和“?=”的用法遵从MIME标准建议中关于已编码数据的标示法(参考RFC2049第二部分“MIME相容性”之9),只是作为已编码数据的字符集有扩展。但是,“基数-91变换”的输出字符不超出95个可打印ASCII字符之集,所以可以配合Internet标准SMTP使用,在PGP、PEM或稍加改进的MIME中取代“基数-64变换”或QP变换。
本发明比QP变换和“基数-64变换”适用范围更广还在于,本发明由于设计了填充比特指示符φn,所以可对任意长度的输入比特数据实施变换和逆变换;而QP变换仅对比特长度为8的整倍数的输入数据使用方便,“基数-64变换”仅对比特长度为6的整倍数的输入数据使用方便。

Claims (5)

1.一种数字数据变换方法,该方法将任意比特串数据映射为可打印ASCII字符序列,该变换方法由计算机软件实现,其特征在于:
(1)将欲执行变换算法的可执行程序模块存入计算机系统的程序存储器,将程序准备就绪的输出字符集和填充比特指示数组移入内存,建立字符组R91_CH[91]和整数组φ[13]的表(Table);
(2)将输入字节串指针指向待变换字节串地址,用变量记录输入字节串长度,将程序计数器指针指向程序存储器中前述可执行程序模块入口地址,读取指令并执行操作;
(3)变换对输入数据进行分组处理,每分组的比特长度为13;
(4)变换分组映射的自变量或原像集X包括全部8192个13比特符号和12个填充比特指示符φ1,...,φ12,共计8204个元素;
(5)变换的输出表示中,使用93个可打印ASCII字符;
(6)变换分组映射的像集Y为直积R91×R91的子集,R91是91个可打印ASCII字符的集合,可逆的1-1映射关系为
Radix-91:X→Y≡(ch1,ch2)字符ch1,ch2∈R91
ch1=R91_CH[X/91],ch2=R91_CH[X%91]
(7)对不足13比特的输入数据分组,在约定一侧用n个比特填充后成为完整分组实施映射,再添加一组数据φn当做输入数据实施相同映射,其像在直积R91×R91中。
2.根据权利要求1所述的数字数据变换方法,其特征在于从任意比特串到可打印ASCII字符序列的变换方法为:
(1)变换的基本输出字符集R91的91个可打印ASCII字符,可以从除去符号“=”、“?”和空格符之外的92个可打印ASCII字符中任意选取;
(2)变换对输入数据分组实施,分组比特长度为13,在自变量集和像集确定之后,可任意选取一个具体的1-1映射实现变换;
(3)变换对输入数据分组实施,在分组比特长度、自变量集和像集、具体实现变换的1-1映射确定之后,可任意选取一种比特分组拼装方案,实现输入数据按13比特长度分组;
(4)在变换像的表示或编码算法中,使用非2的整数幂次的91进位制或基数。
3.一种数字数据变换方法,该方法将任意比特串数据映射为可打印ASCII字符和汉字信息交换码的序列,该变换方法由计算机软件实现,其特征在于:
(1)将欲执行变换算法的可执行程序模块存入计算机系统的程序存储器,将程序准备就绪的输出字符集与汉字信息交换码集、填充比特指示数组和常数11586移入内存,建立R91_CH[91]、HZm[3305]、φ[27]的表(Table)和常量单元——扩展的基数N;
(2)将输入字节串指针指向待变换字节串地址,用变量记录输入字节串长度,将程序计数器指针指向程序存储器中前述可执行程序模块入口地址,读取指令并执行操作;
(3)变换对输入数据进行分组处理,每分组的比特长度为27;
(4)变换分组映射的自变量或原像集X包括全部227个27比特符号和26个填充比特指示符φ1,...,φ26,共计227+26个元素;
(5)变换的输出表示中,使用93个可打印ASCII字符和94个8-比特字符,后者的两两组合为GB2312汉字信息交换码字;
(6)变换分组映射的像集Y为直积Y0×Y0的子集,
Y0={R91×R91}∪HZm即Y0为直积R91×R91与HZm的并集,整数m∈[3305,942],Y0的元素数N∈[11586,942+8281],可逆的1-1映射关系为
Radix-91+:X→Y≡(y1,y2)≡(ch1,ch2,ch3,ch4)其中整数y1,y2∈[0,N-1],字符ch1,ch2,ch3,ch4∈R91
y1=X/N,y2=X%N当y1<8281时,ch1=R91_CH[y1/91],ch2=R91_CH[y1%91]当y1≥8281时,ch1ch2=区位码为1601+(y1-8281)的汉字的信息交换码当y2<8281时,ch3=R91_CH[y2/91],ch4=R91_CH[y2%91]当y2≥8281时,ch3ch4=区位码为1601+(y2-8281)的汉字的信息交换码;
(7)对不足27比特的输入数据分组,在约定一侧用n个比特填充后成为完整分组实施映射,再添加一组数据φn当做输入数据实施相同映射,其像在直积Y0×Y0中。
4.根据权利要求3所述的数字数据变换方法,其特征在于从任意比特串到可打印ASCII字符及汉字信息交换码序列的变换方法为:
(1)变换的基本输出字符集R91的91个可打印ASCII字符,可以从除去符号“=”、“?”和空格符之外的92个可打印ASCII字符中任意选取,变换的基本输出双字符集HZm的m个码字,可从包括GB2312和GB8565的“汉字通信编码字符集的信息交换码集合”中任意选取,或从“中国、日本和韩国通用汉字编码字符集(CJK UNIFIED IDERGRAPH)”的信息交换码集合中任意选取;
(2)变换对输入数据分组实施,分组比特长度为27,在自变量集和像集确定之后,可任意选取一个具体的1-1映射实现变换;
(3)变换对输入数据分组实施,在分组比特长度、自变量集和像集、具体实现变换的1-1映射确定之后,可任意选取一种比特分组拼装方案,实现输入数据按27比特长度分组;
(4)在变换像的表示或编码算法中,使用非2的整数幂次的91进位制或基数,和N进位制或扩展的基数,N∈[11586,942+8281]。
5.一种数字数据变换方法,该方法将任意比特串数据映射为可打印ASCII字符和汉字信息交换码的序列,该变换方法由计算机软件实现,其特征在于:
(1)将欲执行变换算法的可执行程序模块存入计算机系统的程序存储器,将程序准备就绪的输出字符集与汉字信息交换码集、填充比特指示数组和常数11586移入内存,建立R91_CH[91]、HZm[3305]、φ[20]的表(Table)和常量单元N;
(2)将输入字节串指针指向待变换字节串地址,用变量记录输入字节串长度,将程序计数器指针指向程序存储器中前述可执行程序模块入口地址,读取指令并执行操作;
(3)变换对输入数据进行分组处理,每分组的比特长度为20;
(4)变换分组映射的自变量或原像集X包括全部220个20比特符号和19个填充比特指示符φ1,...,φ19,共计220+19个元素;
(5)变换的输出表示中,使用93个可打印ASCII字符和94个8-比特字符,后者的两两组合为GB2312汉字信息交换码字;
(6)变换分组映射的像集Y为直积R91×Y0的子集,
Y0={R91×R91}∪HZm;
(7)对不足20比特的输入数据分组,在约定一侧用n个比特填充后成为完整分组实施映射,再添加一组数据φn当做输入数据实施相同映射,其像在直积R91×Y0中。
CNB001128841A 2000-04-28 2000-04-28 一种数字数据变换方法 Expired - Lifetime CN1163814C (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CNB001128841A CN1163814C (zh) 2000-04-28 2000-04-28 一种数字数据变换方法
US10/240,707 US6859151B2 (en) 2000-04-28 2001-04-26 Digital data transforming method
PCT/CN2001/000615 WO2002033828A1 (fr) 2000-04-28 2001-04-26 Procédé de conversion de données numériques
EP01937948A EP1289151A4 (en) 2000-04-28 2001-04-26 PROCESS FOR THE CONVERSION OF DIGITAL DATA
AU2001263734A AU2001263734A1 (en) 2000-04-28 2001-04-26 A digital data transforming method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB001128841A CN1163814C (zh) 2000-04-28 2000-04-28 一种数字数据变换方法

Publications (2)

Publication Number Publication Date
CN1269657A true CN1269657A (zh) 2000-10-11
CN1163814C CN1163814C (zh) 2004-08-25

Family

ID=4582709

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB001128841A Expired - Lifetime CN1163814C (zh) 2000-04-28 2000-04-28 一种数字数据变换方法

Country Status (5)

Country Link
US (1) US6859151B2 (zh)
EP (1) EP1289151A4 (zh)
CN (1) CN1163814C (zh)
AU (1) AU2001263734A1 (zh)
WO (1) WO2002033828A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102038500A (zh) * 2010-12-02 2011-05-04 广东宝莱特医用科技股份有限公司 心电图机输出文件和波形叠加方法
CN101470724B (zh) * 2007-12-25 2011-09-28 英业达股份有限公司 字符转换系统及方法
CN103401561A (zh) * 2013-07-25 2013-11-20 百度在线网络技术(北京)有限公司 用于地图数据的压缩和解压缩的方法及装置
CN105187568A (zh) * 2015-08-12 2015-12-23 广东睿江科技有限公司 一种ipv4地址转换方法及装置
CN108052805A (zh) * 2017-11-20 2018-05-18 北京旋极信息技术股份有限公司 一种数据加解密方法和装置
CN115630060A (zh) * 2022-09-09 2023-01-20 中国船舶重工集团公司第七一三研究所 一种监控数据处理方法及系统

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004021956A1 (de) * 2004-05-04 2005-12-01 Siemens Ag Verfahren zur Ermittlung der Struktur eines Kommunikationsnetzwerkes
WO2006000653A1 (fr) * 2004-05-26 2006-01-05 France Telecom Procede et plate-forme de manipulation de donnees securisees
CN101286819B (zh) * 2008-05-07 2010-05-12 中兴通讯股份有限公司 一种数据接收方法及装置
US8164492B2 (en) 2009-05-04 2012-04-24 Touch Technologies, Inc. Apparatus and method for fast data encoding and decoding
EP2529331B1 (en) * 2010-01-29 2015-05-20 Hewlett Packard Development Company, L.P. Parallel test payload
WO2013134783A1 (en) 2012-03-09 2013-09-12 Visa International Service Association Embedding supplemental consumer data
CN105100111A (zh) * 2015-08-26 2015-11-25 成都卫士通信息产业股份有限公司 一种信息传输保护方法和系统
CN105245315A (zh) * 2015-10-27 2016-01-13 成都卫士通信息产业股份有限公司 一种采用编码实现信息保密存储的方法和系统
CN106897259A (zh) * 2017-02-28 2017-06-27 郑州云海信息技术有限公司 一种基于windows平台的ascii码和字符串的转换方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2830884B2 (ja) * 1992-02-06 1998-12-02 日本電気株式会社 多重文字コードセットの入出力変換方式
US5602921A (en) 1994-12-15 1997-02-11 Pitney Bowes Inc. Postage accounting system including means for transmitting ASCII encoded variable information for driving an external printer
US5687366A (en) * 1995-05-05 1997-11-11 Apple Computer, Inc. Crossing locale boundaries to provide services
US5682158A (en) * 1995-09-13 1997-10-28 Apple Computer, Inc. Code converter with truncation processing
US5929792A (en) * 1997-06-30 1999-07-27 Sun Microsystems, Inc. Method and apparatus for encoding multiple character sets

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101470724B (zh) * 2007-12-25 2011-09-28 英业达股份有限公司 字符转换系统及方法
CN102038500A (zh) * 2010-12-02 2011-05-04 广东宝莱特医用科技股份有限公司 心电图机输出文件和波形叠加方法
CN102038500B (zh) * 2010-12-02 2013-03-06 广东宝莱特医用科技股份有限公司 心电图机输出文件和波形叠加方法
CN103401561A (zh) * 2013-07-25 2013-11-20 百度在线网络技术(北京)有限公司 用于地图数据的压缩和解压缩的方法及装置
CN105187568A (zh) * 2015-08-12 2015-12-23 广东睿江科技有限公司 一种ipv4地址转换方法及装置
CN105187568B (zh) * 2015-08-12 2018-09-25 广东睿江云计算股份有限公司 一种ipv4地址转换方法及装置
CN108052805A (zh) * 2017-11-20 2018-05-18 北京旋极信息技术股份有限公司 一种数据加解密方法和装置
CN115630060A (zh) * 2022-09-09 2023-01-20 中国船舶重工集团公司第七一三研究所 一种监控数据处理方法及系统
CN115630060B (zh) * 2022-09-09 2023-09-29 中国船舶重工集团公司第七一三研究所 一种监控数据处理方法及系统

Also Published As

Publication number Publication date
AU2001263734A1 (en) 2002-04-29
EP1289151A1 (en) 2003-03-05
CN1163814C (zh) 2004-08-25
US20030152220A1 (en) 2003-08-14
EP1289151A4 (en) 2007-04-25
WO2002033828A8 (fr) 2002-08-08
US6859151B2 (en) 2005-02-22
WO2002033828A1 (fr) 2002-04-25

Similar Documents

Publication Publication Date Title
CN1269657A (zh) 一种数字数据变换方法
CN1236582C (zh) 伪随机序列发生器及有关的方法
CN1819513A (zh) Cpk id证书及其生成方法
WO1997018652A1 (en) Efficient cryptographic hash functions and methods for amplifying the security of hash functions and pseudo-random functions
CN1168041A (zh) 加密和解密方法以及加密和解密装置
CN1816170A (zh) 短信收发的编码转换方法及其应用的网络设备
CN110266682A (zh) 数据加密方法、装置、移动终端及解密方法
TWI461003B (zh) 數據解碼方法
CN107798708A (zh) 一种dna乱序编码和混沌映射的图像加密和解密方法
CN108052805A (zh) 一种数据加解密方法和装置
CN104657432A (zh) 一种降低长地址转换为短地址重复率的方法
CN1441555A (zh) 改进的哈夫曼译码方法和装置
CN1355632A (zh) 可变大小的密钥以及使用该密钥的方法和装置
CN1663162A (zh) 用于对数字数据序列进行编码以及解码的方法和装置
CN104301310A (zh) 基于条码传真识别技术的隔离网络数据交换方法与系统
CN1627275A (zh) 将文件分割存储和还原处理的方法和系统
CN109358901A (zh) 一种可解码点阵字库的处理器芯片及实现方法
CN116010984A (zh) 一种关系型数据库数据多重加密存储方法、装置及设备
CN1425987A (zh) 强化错乱的分组密码加密方法
CN1169326C (zh) 异步传输模式交换装置及其方法
CN109818743A (zh) 一种椭圆曲线公钥文本化传递方法及系统
CN109905241B (zh) 一种椭圆曲线公钥的短汉字编码、解码方法
CN102833069A (zh) 基于明码与密码相结合的跨平台电子凭证
CN1464678A (zh) 基于半群上离散对数问题的数字签名及验证的方法
CN1245695C (zh) 一种基于杠杆函数和超递增序列的公钥加密方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20001011

Assignee: Shenzhen Yongda electronic Touchplus information Corp

Assignor: Southwest Jiaotong University

Contract record no.: 2017440020099

Denomination of invention: Digital data converting method

Granted publication date: 20040825

License type: Exclusive License

Record date: 20171215

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20040825