刷卡器刷卡数据的发送方法转让专利

申请号 : CN202310349703.4

文献号 : CN116132021B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄杰

申请人 : 深圳市聚力得电子股份有限公司

摘要 :

本发明涉及数据加密传输技术领域,具体涉及刷卡器刷卡数据的发送方法,包括:获取明文序列;将第一密钥序列作为初始的搜索缓冲区;从明文序列中第一个元素开始,在搜索缓冲区中进行最长匹配,得到匹配长度,根据匹配长度获取待编码字符串;根据待编码字符串在第二加密字典中对应的码字或待编码字符串在搜索缓冲区对应的字符的索引以及匹配长度,获取待编码字符串的密文;根据待编码字符串以及第三密钥序列获取变换参数以及变换码,进一步得到第一长度;根据第一长度对搜索缓冲区进行调整;根据所有待编码字符串的密文获得密文数据,对密文数据进行发送。本发明既可实现加密又可实现压缩,确保了刷卡数据安全以及高效传输。

权利要求 :

1.刷卡器刷卡数据的发送方法,其特征在于,该方法包括以下步骤:S1:将刷卡数据转化为明文序列;获取第一密钥序列、第二加密字典以及第三密钥序列;将第一密钥序列作为初始的搜索缓冲区;构建一个空的序列,作为淘汰缓冲区;

S2:从明文序列中第一个元素开始,在搜索缓冲区中进行最长匹配,得到匹配长度;

当匹配长度为0时,将明文序列中第一个元素作为待编码字符串,将待编码字符串在第二加密字典中对应的码字作为待编码字符串的密文;

当匹配长度为1时,将明文序列中第一个元素作为待编码字符串,将待编码字符串在搜索缓冲区中对应的字符的索引作为待编码字符串的密文;

当匹配长度大于1时,根据明文序列、匹配长度以及搜索缓冲区获取待编码字符串以及待编码字符串的密文;

将待编码字符串添加到搜索缓冲区末尾,将待编码字符串从明文序列中移除;

S3:将待编码字符串中第一个字符在第二加密字典中对应的码字作为变换码;根据待编码字符串以及第三密钥序列获取变换参数,根据变换码以及变换参数获取第一长度N;

当第一长度N小于搜索缓冲区的长度M时,将搜索缓冲区后N个元素构成新的搜索缓冲区,将搜索缓冲区前M‑N个元素添加到淘汰缓冲区末尾;

当第一长度N大于搜索缓冲区的长度M时,将淘汰缓冲区后N‑M个元素添加到搜索缓冲区开始的位置,构成新的搜索缓冲区;将淘汰缓冲区末尾的后N‑M个元素删除;

S4:重复S2、S3,直到明文序列为空时停止迭代;将所有待编码字符串的密文构成的序列作为密文数据;

刷卡器对密文数据进行发送。

2.根据权利要求1所述的刷卡器刷卡数据的发送方法,其特征在于,所述第一密钥序列的获取方法为:对ASCII编码包含的128种字符随机排序,将排序结果作为第一密钥序列。

3.根据权利要求1所述的刷卡器刷卡数据的发送方法,其特征在于,所述第二加密字典的获取方法为:将[128,255]范围内的每个整数作为一个码字,将每个码字随机分配给一种字符,将字符与码字的对应关系作为第二加密字典。

4.根据权利要求1所述的刷卡器刷卡数据的发送方法,其特征在于,所述第三密钥序列的获取方法为:获取明文序列的长度L;利用混沌映射的方法生成预设长度的混沌序列,将混沌序列中后L个元素分别乘以127之后再加1,并将所得结果向上取整,将最终得到 个整数构成的序列作为第三密钥序列。

5.根据权利要求1所述的刷卡器刷卡数据的发送方法,其特征在于,所述根据明文序列、匹配长度以及搜索缓冲区获取待编码字符串以及待编码字符串的密文,包括的具体步骤如下:将匹配长度记为S,将明文序列中前S个字符所构成的字符串作为待编码字符串,获取待编码字符串在搜索缓冲区中对应的字符串中的第一个字符的索引,作为前缀;将前缀与匹配长度组成待编码字符串的密文。

6.根据权利要求1所述的刷卡器刷卡数据的发送方法,其特征在于,所述根据待编码字符串以及第三密钥序列获取变换参数,根据变换码以及变换参数获取第一长度N,包括的具体步骤如下:将待编码字符串获取的次序作为待编码字符串的序号,记为t,获取第三密钥序列中第t个元素作为变换参数;利用变换码除以变换参数,将得到的余数作为第一长度N。

说明书 :

刷卡器刷卡数据的发送方法

技术领域

[0001] 本发明涉及数据加密传输技术领域,具体涉及刷卡器刷卡数据的发送方法。

背景技术

[0002] 随着刷卡支付行业的发展,刷卡器作为非现金结算的收款设备,被用于各个商户。客户在商户的刷卡器上刷银行卡进行消费,刷卡器将银行卡号、交易金额、交易密码、商户编号等刷卡数据经过收单机构、清算机构发送至发卡银行,发卡银行核对刷卡数据之后返回交易结果。
[0003] 为确保刷卡数据传输的安全性以及交易的实时性,需要对刷卡数据进行加密以及压缩。现有的加密方法如AES、DES等仅能实现加密,无法实现压缩。现有的压缩如LZ77、LZW仅能实现压缩,无法实现加密。利用现有的方法对刷卡数据进行加密以及压缩,需要经过两次运算,效率较低。

发明内容

[0004] 本发明提供刷卡器刷卡数据的发送方法,以解决现有的问题。
[0005] 本发明的刷卡器刷卡数据的发送方法采用如下技术方案:
[0006] 本发明一个实施例提供了刷卡器刷卡数据的发送方法,该方法包括以下步骤:
[0007] S1:将刷卡数据转化为明文序列;获取第一密钥序列、第二加密字典以及第三密钥序列;将第一密钥序列作为初始的搜索缓冲区;构建一个空的序列,作为淘汰缓冲区;
[0008] S2:从明文序列中第一个元素开始,在搜索缓冲区中进行最长匹配,得到匹配长度;
[0009] 当匹配长度为0时,将明文序列中第一个元素作为待编码字符串,将待编码字符串在第二加密字典中对应的码字作为待编码字符串的密文;
[0010] 当匹配长度为1时,将明文序列中第一个元素作为待编码字符串,将待编码字符串在搜索缓冲区中对应的字符的索引作为待编码字符串的密文;
[0011] 当匹配长度大于1时,根据明文序列、匹配长度以及搜索缓冲区获取待编码字符串以及待编码字符串的密文;
[0012] 将待编码字符串添加到搜索缓冲区末尾,将待编码字符串从明文序列中移除;
[0013] S3:将待编码字符串中第一个字符在第二加密字典中对应的码字作为变换码;根据待编码字符串以及第三密钥序列获取变换参数,根据变换码以及变换参数获取第一长度N;
[0014] 当第一长度N小于搜索缓冲区的长度M时,将搜索缓冲区后N个元素构成新的搜索缓冲区,将搜索缓冲区前M‑N个元素添加到淘汰缓冲区末尾;
[0015] 当第一长度N大于搜索缓冲区的长度M时,将淘汰缓冲区后N‑M个元素添加到搜索缓冲区开始的位置,构成新的搜索缓冲区;将淘汰缓冲区末尾的后N‑M个元素删除;
[0016] S4:重复S2、S3,直到明文序列为空时停止迭代;将所有待编码字符串的密文构成的序列作为密文数据;
[0017] 刷卡器对密文数据进行发送。
[0018] 优选的,所述第一密钥序列的获取方法为:
[0019] 对ASCII编码包含的128种字符随机排序,将排序结果作为第一密钥序列。
[0020] 优选的,所述第二加密字典的获取方法为:
[0021] 将[128,255]范围内的每个整数作为一个码字,将每个码字随机分配给一种字符,将字符与码字的对应关系作为第二加密字典。
[0022] 优选的,所述第三密钥序列的获取方法为:
[0023] 获取明文序列的长度L;利用混沌映射的方法生成预设长度的混沌序列,将混沌序列中后L个元素分别乘以127之后再加1,并将所得结果向上取整,将最终得到 个整数构成的序列作为第三密钥序列。
[0024] 优选的,所述根据明文序列、匹配长度以及搜索缓冲区获取待编码字符串以及待编码字符串的密文,包括的具体步骤如下:
[0025] 将匹配长度记为S,将明文序列中前S个字符所构成的字符串作为待编码字符串,获取待编码字符串在搜索缓冲区中对应的字符串中的第一个字符的索引,作为前缀;将前缀与匹配长度组成待编码字符串的密文。
[0026] 优选的,所述根据待编码字符串以及第三密钥序列获取变换参数,根据变换码以及变换参数获取第一长度N,包括的具体步骤如下:
[0027] 将待编码字符串获取的次序作为待编码字符串的序号,记为t,获取第三密钥序列中第t个元素作为变换参数;利用变换码除以变换参数,将得到的余数作为第一长度N。
[0028] 本发明的技术方案的有益效果是:现有的加密方法如AES、DES等仅能实现加密,无法实现压缩。现有的压缩如LZ77、LZW仅能实现压缩,无法实现加密。利用现有的方法对刷卡数据进行加密以及压缩,需要经过两次运算,效率较低。本发明可同时进行加密以及压缩,相较于现有方法,本发明效率更高;本发明通过第一密钥序列构建初始的搜索缓冲区,实现了明文序列中较为靠前的字符或字符串的编码,达到压缩以及加密的效果;本发明通过为每种字符分配码字,在对明文序列进行加密压缩过程中,对于搜索缓冲区中不存在的字符,利用字符的码字来进行编码,使得最终得到的密文数据中,字符的信息被隐藏,从而进一步实现加密,攻击者在未掌握字符的码字的情况下,无法对密文数据进行破解,确保了刷卡数据传输过程中的安全性;本发明根据第三密钥序列获取变换参数,根据已编码的字符的码字获取变换码,结合变换码以及变换参数获取第一长度,根据第一长度动态调整搜索缓冲区的长度,将明文序列中的字符或字符串在搜索缓冲区中匹配到的字符的索引以及匹配长度作为密文,由于第三密钥序列足够混乱,使得搜索缓冲区的长度也无规律,攻击者无法猜测出搜索缓冲区的长度,从而无法根据密文中的索引来猜测出对应的字符或字符之间的关系,打破了明文序列中字符之间的统计特征;同时搜索缓冲区的长度与变换码相关,即与已编码的字符有关,使得最终得到的密文数据具有雪崩效应,即若改变明文序列中较少的字符,则会导致在加密压缩过程中搜索缓冲区的长度动态调整程度与之前不一致,从而导致得到的密文数据产生非常大的变化,因此本发明中的密文数据复杂,可抵抗统计分析攻击。

附图说明

[0029] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030] 图1为本发明的刷卡器刷卡数据的发送方法的步骤流程图;
[0031] 图2为ASCII编码表;
[0032] 图3为本发明的第一密钥序列示意图;
[0033] 图4为本发明的第二加密字典示意图;
[0034] 图5为本发明的加密过程示意图。

具体实施方式

[0035] 为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的刷卡器刷卡数据的发送方法,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
[0036] 除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
[0037] 下面结合附图具体的说明本发明所提供的刷卡器刷卡数据的发送方法的具体方案。
[0038] 请参阅图1,其示出了本发明一个实施例提供的刷卡器刷卡数据的发送方法的步骤流程图,该方法包括以下步骤:
[0039] S001.获取刷卡器刷卡数据,将刷卡数据转化为明文序列。
[0040] 客户在商户的刷卡器上刷银行卡进行消费,刷卡器采集交易请求信息,如银行卡的发卡银行、银行卡号、交易金额、交易密码、商户编号等,此些交易请求信息即为刷卡数据。
[0041] 需要说明的是,刷卡器需将刷卡数据发送至收单机构,收单机构接收到刷卡数据后再将刷卡数据通过清算机构传输至发卡银行,发卡银行核对刷卡数据之后返回交易结果。由于刷卡数据涉及到客户的信息,为防止客户的信息泄露造成客户的财产损失,需要对刷卡数据进行加密传输,同时为确保交易的实时性,还需对刷卡数据进行压缩,提高刷卡数据的传输速度。刷卡数据涉及到数字、字符等多种数据类型,为实现多种类型的数据的统一加密压缩,需将刷卡数据转换为统一的数据类型。
[0042] 在本发明实施例中,对刷卡数据进行编码,将刷卡数据编码成统一的二进制形式,并对得到的二进制数据利用ASCII进行解码,将解码得到的字符序列作为明文序列。需要说明的是,常用的对数据进行编码的方法包括但不限于Unicode、ASCII、GB2312,本发明实施例中采用的编码方法为Unicode,在其他实施例中,实施人员可选择其他的编码方法。
[0043] 至此,获取了明文序列。由于ASCII仅包含128个字符,因此明文序列中最多包含128种字符。明文序列中元素的数据类型统一,使得后续加密压缩更加便捷。ASCII编码表参见图2。
[0044] S002.构建第一密钥序列、第二加密字典以及第三密钥序列。
[0045] 需要说明的是,本发明结合LZ77编码的思想对刷卡数据进行加密压缩,LZ77编码通过设置搜索缓冲区,将已编码的字符动态加入到搜索缓冲区,利用字符串到搜索缓冲区中相同的字符串之间的距离以及字符串的长度来编码字符串,从而实现将一个较长的字符串编码成两个数字,达到压缩的效果。在LZ77编码的一开始,搜索缓冲区为空,因此对于明文序列中较为靠前的字符通常在最终的压缩结果中保留,达不到加密或压缩的结果。因此本发明实施例通过构建第一密钥序列来设置初始的搜索缓冲区,对于明文序列中较为靠前的字符或字符串也可进行编码,一定程度上实现压缩,在第一密钥序列保密的情况下,可达到加密的效果。由于明文序列中最多包含128种字符,为了确保明文序列中较为靠前的字符在初始的搜索缓冲区中能找到对应的字符,则需要确保初始的搜索缓冲区中包含所有的128种字符,即第一密钥序列中需要包含128种字符。
[0046] 在本发明实施例中,获取第一密钥序列的方法为:将128种字符随机排序,将排序结果作为第一密钥序列。本发明实施例的一个第一密钥序列参见图3。
[0047] 至此,获取了第一密钥序列,需要说明的是,第一密钥序列由刷卡器与收单机构共同约定,并预先存储在刷卡器上以及收单机构本地。第一密钥序列用来设置初始的搜索缓冲区,使得后续根据初始的搜索缓冲区可实现明文序列较为靠前的字符或字符串的编码,达到加密压缩的效果。
[0048] 需要说明的是,在LZ77编码的过程中,若字符在搜索缓冲区中未出现,则对该字符不进行编码,使得最终的压缩结果中该字符保留。若直接采用LZ77编码对刷卡数据进行加密压缩,得到的结果中包含的字符则会泄露刷卡数据的内容,因此需要为每个字符分配一个码字,在对刷卡数据进行加密压缩的过程中,对于搜索缓冲区中未出现的字符,采用字符的码字来进行编码,从而实现将最终结果中的字符隐藏,攻击者在不知道字符与码字的对应关系的情况下,则无法根据码字推测出字符的内容,从而一定程度实现刷卡数据的加密。由于明文序列中最多包含128种字符,为每种字符分配一个码字,则需要128个码字。同时由于第一密钥序列的长度为128,后续根据第一密钥序列得到的初始的搜索缓冲区的长度也为128,后续对明文序列进行加密压缩时,根据搜索缓冲区中字符的索引对字符串进行编码,搜索缓冲区的索引的取值范围为[0,127],为了避免码字与搜索缓冲区的索引冲突,码字的范围需设置为[128,255]。
[0049] 在本发明实施例中,将[128,255]范围内的每个整数作为一个码字,将每个码字随机分配给一种字符,使得最终每个码字对应一种字符,每种字符对应一个码字。将字符与码字的对应关系作为第二加密字典。本发明实施例的一个第二加密字典参见图4。
[0050] 至此,获取了第二加密字典。需要说明的是,第二加密字典由刷卡器与收单机构共同约定,并预先存储在刷卡器上以及收单机构本地。第二加密字典用来存储字符与码字的对应关系,由于128种字符与128个码字一一对应,则一共有128!种对应关系,即有128!种不同的第二加密字典,本发明实施例中的第二加密字典仅为128!种不同的第二加密字典中的一种,因此攻击者难以对第二加密字典进行暴力破解,使得后续根据第二加密字典对刷卡数据进行加密的安全性高。
[0051] 需要说明的是,由于LZ77编码利用字符串到搜索缓冲区中相同的字符串之间的距离以及字符串的长度来编码字符串,因此利用LZ77编码得到的编码结果中,存在统计规律,攻击者可根据编码结果推测出原始数据的规律。为避免攻击者进行统计分析攻击,本发明实施例通过构建第三密钥序列,利用第三密钥序列结合已编码的字符,动态调整搜索缓冲区的长度,采用搜索缓冲区中匹配的字符的索引来对字符或字符串进行编码,攻击者在不知道搜索缓冲区的长度的情况下,难以根据索引来得到字符之间的对应关系,使得最终的加密压缩结果中不包含原始数据的统计规律,从而抵抗统计分析攻击。为了避免索引与第二加密字典中每种字符的码字冲突,搜索缓冲区的长度不能超过128,因此第三密钥序列中每个元素的取值范围为[1,128]。
[0052] 在本发明实施例中,获取第三密钥序列的方法如下:
[0053] 获取明文序列的长度L。设置第三密钥 ,根据第三密钥 利用混沌映射的方法生成长度为 的混沌序列,将混沌序列中第 到第 个元素分别乘以127之后再加1,并将所得结果向上取整,最终得到 个[1,128]范围内的整数,将此些整数构成的序列作为第三密钥序列。需要说明的是,第三密钥中 、 、的取值范围由混沌映射算法决定,本发明实施例中采用的混沌映射算法为Logistic混沌映射,因此第三密钥中每个参数的取值范围为 , ,为整数且 ,在此范围下,得到
的第三密钥序列足够混乱。在其他实施例中,实施人员可采用其他的混沌映射算法。
[0054] 至此,获取了第三密钥序列。需要说明的是,第三密钥 由刷卡器与收单机构共同约定,并预先存储在刷卡器上以及收单机构本地。第三密钥序列在每次对刷卡数据加密时,由刷卡器生成。第三密钥序列用来动态改变搜索缓冲区的长度,使得后续根据搜索缓冲区得到的密文不包含原始数据的统计规律,增加了密文的复杂性,可抵抗统计分析攻击。
[0055] S003.对明文序列进行加密压缩,获得密文数据。
[0056] 在本发明实施例中,对明文序列进行加密压缩的具体步骤如下:
[0057] 1.将第一密钥序列作为初始的搜索缓冲区。构建一个空的序列,作为淘汰缓冲区。
[0058] 2.从明文序列中第1个元素开始,在搜索缓冲区中进行最长匹配:
[0059] 当匹配长度为0时,即不存在匹配结果时,明文序列中第一个元素在搜索缓冲区中不存在,此时将明文序列中第一个元素作为待编码字符串,获取待编码字符串在第二加密字典中对应的码字作为待编码字符串的密文;
[0060] 当匹配长度为1时,明文序列中第一个元素在搜索缓冲区中存在,此时将明文序列中第一个元素作为待编码字符串,获取待编码字符串在搜索缓冲区中对应的字符的索引,作为待编码字符串的密文;
[0061] 当匹配长度大于1时,将匹配长度记为S,此时明文序列中前S个字符所构成的字符串在搜索缓冲区存在,将明文序列中前S个字符所构成的字符串作为待编码字符串,获取待编码字符串在搜索缓冲区中对应的字符串中的第一个字符的索引,将该索引作为前缀,将前缀与匹配长度组成待编码字符串的密文。例如搜索缓冲区为 ,明文序列为 ,则明文序列中 可以与搜索缓冲区中第4、5个元素 匹配,则
匹配长度为2,待编码字符串为 ,搜索缓冲区中对应的字符串 中第一个字符 的索引为3,则前缀为3,则前缀3与匹配长度2构成待编码字符串 的密文(3,2);
[0062] 将待编码字符串添加到搜索缓冲区末尾,并将待编码字符串从明文序列中移除。
[0063] 3.将待编码字符串获取的次序作为待编码字符串的序号,记为t,获取第三密钥序列中第t个元素作为变换参数。将待编码字符串中第一个字符在第二加密字典中对应的码字作为变换码。利用变换码除以变换参数,将得到的余数作为第一长度N。
[0064] 根据第一长度对搜索缓冲区进行调整,具体为:
[0065] 当第一长度N小于搜索缓冲区的长度M时,将搜索缓冲区后N个元素构成新的搜索缓冲区。将搜索缓冲区前M‑N个元素添加到淘汰缓冲区末尾;
[0066] 当第一长度N等于搜索缓冲区的长度M时,对搜索缓冲区不进行调整;
[0067] 当第一长度N大于搜索缓冲区的长度M时,将淘汰缓冲区后N‑M个元素添加到搜索缓冲区开始的位置,构成新的搜索缓冲区。将淘汰缓冲区末尾的后N‑M个元素删除。
[0068] 4.重复步骤2、3,直到明文序列为空时停止迭代。将所有待编码字符串的密文按照待编码字符串的顺序构成的序列作为密文数据。
[0069] 至此,获取了密文数据。
[0070] 本 发 明 实 施 例 以 明 文 序 列 、第 三 密 钥 序 列为例进行加密的过程示意图参见图5,其中第一密钥序列采用的图3中
的第一密钥序列,第二加密字典采用的图4中的第二加密字典。最终得到的密文数据为,攻击者在未掌握初始的搜索缓冲区、搜索缓冲区的变化规律以及
每种字符的码字的情况下,无法根据密文数据推测明文序列。明文序列中存在两个 ,但其对应的密文不同,分别为 、 ,因此本发明实施例对于相同的字符或字符串,会加密成不同的结果,破坏了明文序列中原有的统计特性,攻击者无法挖掘密文数据中的数据规律来破解明文序列,使得刷卡数据传输过程中的安全性更高。
[0071] 需要说明的是,本发明实施例通过第一密钥序列构建初始的搜索缓冲区,实现了明文序列中较为靠前的字符或字符串的编码,达到压缩以及加密的效果;本发明实施例通过为每种字符分配码字,在对明文序列进行加密压缩过程中,对于搜索缓冲区中不存在的字符,利用该字符的码字来进行编码,使得最终得到的密文数据中,字符的信息被隐藏,从而进一步实现加密,攻击者在未掌握字符的码字的情况下,无法对密文数据进行破解,确保了刷卡数据传输过程中的安全性;本发明实施例根据第三密钥序列获取变换参数,根据已编码的字符的码字获取变换码,结合变换码以及变换参数获取第一长度,根据第一长度动态调整搜索缓冲区的长度,将明文序列中的字符或字符串在搜索缓冲区中匹配到的字符的索引以及匹配长度作为密文,由于第三密钥序列足够混乱,使得搜索缓冲区的长度也无规律,攻击者无法猜测出搜索缓冲区的长度,从而无法根据密文中的索引来猜测出对应的字符或字符之间的关系,打破了明文序列中字符之间的统计特征;同时搜索缓冲区的长度与变换码相关,即与已编码的字符有关,使得最终得到的密文数据具有雪崩效应,即若改变明文序列中较少的字符,则会导致在加密压缩过程中搜索缓冲区的长度动态调整程度与之前不一致,从而导致得到的密文数据产生非常大的变化,因此本发明实施例中的密文数据复杂,可抵抗统计分析攻击。
[0072] S004.对密文数据进行传输解密。
[0073] 刷卡器将密文数据传输至收单机构。
[0074] 收单机构对密文数据进行解密,具体为:
[0075] 收单机构获取密文数据中长度为1的元素的个数以及长度为2的元素,长度为1的元素为明文序列中单个字符加密的结果,长度为2的元素为明文序列中多个字符构成的字符串加密的结果,长度为2的元素中第二个数值为该元素对应的字符串的长度。将所有长度为2的元素中第二个数值累加,将累加结果与密文数据中长度为1的元素的个数相加,得到明文序列的长度L。
[0076] 根据明文序列的长度L以及第三密钥 利用步骤S002中的方法获取第三密钥序列。根据第二加密字典、第一密钥序列以及第三密钥序列对密文数据进行解密,具体为:
[0077] 1.将第一密钥序列作为初始的搜索缓冲区。构建一个空的序列,作为淘汰缓冲区。将密文序列中第1个元素作为待解密元素。
[0078] 2.当待解密元素长度为1且值大于127时,将待解密元素作为一个码字,获取该码字在加密字典中对应的字符,作为待解密元素的明文;
[0079] 当待解密元素长度为1且值小于或等于127时,获取搜索缓冲区中索引为待解密元素的字符,作为待解密元素的明文;
[0080] 当待解密元素长度为2时,将待解密元素中第一个数值记为第一索引,将待解密元素中第二个数值作为匹配长度,获取搜索缓冲区中索引为第一索引的字符,获取搜索缓冲区中以该字符为开始的长度为匹配长度的字符串,作为待解密元素的明文。
[0081] 将待解密元素的明文添加到搜索缓冲区末尾。
[0082] 3.将待解密元素的明文中第一个字符在加密字典中对应的码字作为变换码。将待解密元素在密文数据中的序号记为t,获取第三密钥序列中第t个元素作为变换参数,获取变换码除以变换参数的余数,将该余数作为第一长度N。
[0083] 根据第一长度对搜索缓冲区进行调整,具体为:
[0084] 当第一长度N小于搜索缓冲区的长度M时,将搜索缓冲区后N个元素构成新的搜索缓冲区。将搜索缓冲区前M‑N个元素加入到淘汰缓冲区末尾;
[0085] 当第一长度N等于搜索缓冲区的长度M时,对搜索缓冲区不进行调整;
[0086] 当第一长度N大于搜索缓冲区的长度M时,将淘汰缓冲区后N‑M个元素加入到搜索缓冲区开始的位置,构成新的搜索缓冲区。将淘汰缓冲区末尾的后N‑M个元素删除。
[0087] 将密文数据中待解密元素的下一个元素作为新的待解密元素。
[0088] 4.重复步骤2、3,直到密文数据中每个元素都已遍历时停止迭代。密文数据中所有元素的明文按照顺序构成的序列即为明文序列。
[0089] 将明文序列利用ASCII编码方法编码成二进制数据,再利用S001中的编码方法对二进制数据进行解码,最终得到的结果即为刷卡器刷卡数据。
[0090] 收单机构对刷卡数据进行处理,并利用收单机构与清算机构之间约定的第二加密字典、第一密钥序列以及第三密钥序列对处理之后的刷卡数据进行加密,发送至清算机构。同理,清算机构对密文数据解密、处理、再加密之后发送至发卡银行,发卡银行根据最终得到的数据完成交易并返回交易结果。
[0091] 通过以上步骤,完成了刷卡器刷卡数据的加密压缩传输发送。
[0092] 本发明实施例通过第一密钥序列构建初始的搜索缓冲区,实现了明文序列中较为靠前的字符或字符串的编码,达到压缩以及加密的效果;本发明实施例通过为每种字符分配码字,在对明文序列进行加密压缩过程中,对于搜索缓冲区中不存在的字符,利用字符的码字来进行编码,使得最终得到的密文数据中,字符的信息被隐藏,从而进一步实现加密,攻击者在未掌握字符的码字的情况下,无法对密文数据进行破解,确保了刷卡数据传输过程中的安全性;本发明实施例根据第三密钥序列获取变换参数,根据已编码的字符的码字获取变换码,结合变换码以及变换参数获取第一长度,根据第一长度动态调整搜索缓冲区的长度,将明文序列中的字符或字符串在搜索缓冲区中匹配到的字符的索引以及匹配长度作为密文,由于第三密钥序列足够混乱,使得搜索缓冲区的长度也无规律,攻击者无法猜测出搜索缓冲区的长度,从而无法根据密文中的索引来猜测出对应的字符或字符之间的关系,打破了明文序列中字符之间的统计特征;同时搜索缓冲区的长度与变换码相关,即与已编码的字符有关,使得最终得到的密文数据具有雪崩效应,即若改变明文序列中较少的字符,则会导致在加密压缩过程中搜索缓冲区的长度动态调整程度与之前不一致,从而导致得到的密文数据产生非常大的变化,因此本发明实施例中的密文数据复杂,可抵抗统计分析攻;现有的加密方法如AES、DES等仅能实现加密,无法实现压缩。现有的压缩如LZ77、LZW仅能实现压缩,无法实现加密。利用现有的方法对刷卡数据进行加密以及压缩,需要经过两次运算,效率较低。本发明实施例可同时进行加密以及压缩,相较于现有方法,本发明实施例效率更高。
[0093] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。