一种用于磁卡数据的加密算法制造技术

技术编号:24331478 阅读:43 留言:0更新日期:2020-05-29 19:47
本发明专利技术公开了一种用于磁卡数据的加密算法,包括(1)确定卡面号的位数为x,确定卡内号的位数为n,并根据确定的卡面号位数随机生成一个卡面号;(2)根据卡面号的位数x以及卡内号的位数n确定算法因子d的位数,并根据算法因子d的位数随机生成一个算法因子d;(3)制定数字混淆规则r1并对指定的每一项混淆规则r1进行编号,同时根据算法因子d选择对应编号的数字混淆规则r1对卡面号进行数字混淆,得到混淆卡面号等步骤。本发明专利技术提供一种用于磁卡数据的加密算法,通过复杂的加密算法,将卡面号进行加密处理得到高离散性、微弱相关性的卡内号,提高了卡内号的破解难度,降低了卡内号被破解几率,更好的保护了用户使用磁卡的安全性。

An encryption algorithm for magnetic card data

【技术实现步骤摘要】
一种用于磁卡数据的加密算法
本专利技术属于磁卡安全领域,具体是指一种用于磁卡数据的加密算法。
技术介绍
随着新零售行业的飞速发展,零售企业会存在发行预付费磁卡的需求,预付费磁卡数据的加密成为零售企业非常关心的问题。预付卡磁卡的使用方法为:顾客持有该卡到超市或购物商场,商家使用磁卡读卡器将卡内号读出,商家的预付费磁卡系统会根据卡内号查询到该卡的信息,最终完成预付费磁卡的交易。调研发现,大部分零售商所用的预付费磁卡的卡内号是根据卡面号根据一定的加密算法计算得出的,出于资产安全的考虑,系统在设计时不会存储卡内号到数据库中,这也就要求能根据卡内号解密得到卡面号。调研发现大部分零售商预付卡磁卡的卡内号加密规则简单,选择不同号段、每个号段选择连续的卡面号就能破解出卡内号的加密规则,进而能根据卡内号解密出真正的卡面号,这对预付卡的资产安全有极大的安全隐患,不法分子在破解出卡内号加密规则后就能伪造零售商发行的预付费磁卡,给零售商、顾客造成资产损失。因此需要更加安全的加密算法保证磁卡卡内号不会被破解。
技术实现思路
本专利技术的目的在于克服上述问题,提供一种用于磁卡数据的加密算法,通过复杂的加密算法,将卡面号进行加密处理得到高离散性、微弱相关性的卡内号,提高了卡内号的破解难度,降低了卡内号被破解几率,更好的保护了用户使用磁卡的安全性。本专利技术的目的通过下述技术方案实现:一种用于磁卡数据的加密算法,包括以下步骤:(1)确定卡面号的位数为x,确定卡内号的位数为n,并根据确定的卡面号位数随机生成一个卡面号;(2)根据卡面号的位数x以及卡内号的位数n确定算法因子d的位数,并根据算法因子d的位数随机生成一个算法因子d;(3)制定数字混淆规则r1并对指定的每一项混淆规则r1进行编号,同时根据算法因子d选择对应编号的数字混淆规则r1对卡面号进行数字混淆,得到混淆卡面号;(4)制定数字打乱顺序规则r2并对指定的每一项数字打乱顺序规则r2进行编号,同时根据算法因子d选择对应编号的数字打乱顺序规则r2对混淆卡面号进行数字打乱顺序,得到乱序卡面号;(5)制定指定位置的指定数字混淆规则r3并对指定的每一项指定位置的指定数字混淆规则r3进行编号,同时根据算法因子d选择对应编号的指定位置的指定数字混淆规则r3对乱序卡面号进行指定位置的指定数字混淆,得到混淆卡内号;(6)预设十种加密算法因子d插入混淆卡内号的规则r4,并将十种加密算法因子d插入混淆卡内号的规则分别定义为0、1……9作为版本号;(7)从预设的版本号中随机选择一个版本号,并根据该版本号对应的规则r4将加密算法因子d插入混淆卡内号中得到初定卡内号;(8)将版本号插入初定卡内号的第i位后得到卡内号。步骤(1)中0<x<n≤40。步骤(2)中算法因子d生成过程为:(21)根据卡面号位数x和卡内号位数n计算算法因子d的位数y,其计算公式为y=n-x-1;(22)根据计算得到的算法因子d的位数y,随机生成一个位数为y的算法因子d。步骤(3)中数字混淆规则r1为:用a0、a1、……、a9替换卡面号中的数字0、1、……、9,令a0、a1、……、a9分别为数字0-9中的任意一个数字,且a0≠a1≠……≠a9;混淆规则r1的编号方法为:当a0、a1、……、a9分别为数字0-9中的一个数字,且a0≠a1≠……≠a9时则为一项数字混淆规则,筛选出所需数量的且同时满足上述条件的数字混淆规则并依次编号,即完成了对混淆规则r1的编号。步骤(4)中数字打乱顺序规则r2为:将混淆卡面号中任意位置的数字进行位置的变化;数字打乱顺序规则r2的编号方法为:当混淆卡面号中任意位置的数字进行位置的变化后则为一项数字打乱顺序规则,筛选出所需数量的数字打乱顺序规则并依次编号,即完成了对数字打乱顺序规则r2的编号。步骤(5)中指定位置的指定数字混淆规则r3为:(51)对乱序卡面号的第1位、第2位、……、第x位数字分别制定混淆规则,且该混淆规则具体为用b0、b1、……、b9替换当前位置处的数字,令b0、b1、……、b9分别为数字0-9中的任意一个数字,且b0≠b1≠……≠b9;(52)随机选择乱序卡面号中一个或多个位置的数字进行按照(51)中规定的相应位置的混淆规则进行数字的混淆;指定位置的指定数字混淆规则r3的编号方法为:满足指定位置的指定数字混淆规则r3且能得到唯一混淆卡内号则为一项指定位置的指定数字混淆规则,筛选出所需数量的指定位置的指定数字混淆规则并依次编号,即完成了对指定位置的指定数字混淆规则r3的编号。步骤(6)中加密算法因子d插入混淆卡内号的规则r4为:将加密算法因子d整体插入或者将加密算法因子d每一位依次插入混淆卡内号中任意位置;选择十种不同的r4并分别将其定义为0、1、……、9作为版本号。步骤(8)中1≤i≤(x+y)。本专利技术与现有技术相比,具有以下优点及有益效果:本专利技术通过复杂的加密算法,将卡面号进行加密处理得到高离散性、微弱相关性的卡内号,提高了卡内号的破解难度,降低了卡内号被破解几率,更好的保护了用户使用磁卡的安全性。具体实施方式下面结合实施例对本专利技术作进一步的详细说明,但本专利技术的实施方式不限于此。实施例一种用于磁卡数据的加密算法,包括以下步骤:(1)确定卡面号的位数为x,确定卡内号的位数为n,并根据确定的卡面号位数随机生成一个卡面号;其中,0<x<n≤40。(2)根据卡面号的位数x以及卡内号的位数n确定算法因子d的位数,并根据算法因子d的位数随机生成一个算法因子d;算法因子d生成过程为:(21)根据卡面号位数x和卡内号位数n计算算法因子d的位数y,其计算公式为y=n-x-1;(22)根据计算得到的算法因子d的位数y,随机生成一个位数为y的算法因子d。如:若y的值为5,则将会在10000-99999的范围内随机取一个数字作为d。(3)制定数字混淆规则r1并对指定的每一项混淆规则r1进行编号,同时根据算法因子d选择对应编号的数字混淆规则r1对卡面号进行数字混淆,得到混淆卡面号;数字混淆规则r1为:用a0、a1、……、a9替换卡面号中的数字0、1、……、9,令a0、a1、……、a9分别为数字0-9中的任意一个数字,且a0≠a1≠……≠a9;混淆规则r1的编号方法为:当a0、a1、……、a9分别为数字0-9中的一个数字,且a0≠a1≠……≠a9时则为一项数字混淆规则,筛选出所需数量的且同时满足上述条件的数字混淆规则并依次编号,即完成了对混淆规则r1的编号。如:r11:将0替换为1,将1替换为2,……,将9替换为0;r12:将0替换为9,将1替换为8,……,将9替换为0;……(4)制定数字打乱顺序规则r2并对指定的每一项数字打乱顺序规则r2进行编号,同时根据算法因本文档来自技高网...

【技术保护点】
1.一种用于磁卡数据的加密算法,其特征在于,包括以下步骤:/n(1)确定卡面号的位数为x,确定卡内号的位数为n,并根据确定的卡面号位数随机生成一个卡面号;/n(2)根据卡面号的位数x以及卡内号的位数n确定算法因子d的位数,并根据算法因子d的位数随机生成一个算法因子d;/n(3)制定数字混淆规则r1并对指定的每一项混淆规则r1进行编号,同时根据算法因子d选择对应编号的数字混淆规则r1对卡面号进行数字混淆,得到混淆卡面号;/n(4)制定数字打乱顺序规则r2并对指定的每一项数字打乱顺序规则r2进行编号,同时根据算法因子d选择对应编号的数字打乱顺序规则r2对混淆卡面号进行数字打乱顺序,得到乱序卡面号;/n(5)制定指定位置的指定数字混淆规则r3并对指定的每一项指定位置的指定数字混淆规则r3进行编号,同时根据算法因子d选择对应编号的指定位置的指定数字混淆规则r3对乱序卡面号进行指定位置的指定数字混淆,得到混淆卡内号;/n(6)预设十种加密算法因子d插入混淆卡内号的规则r4,并将十种加密算法因子d插入混淆卡内号的规则分别定义为0、1……9作为版本号;/n(7)从预设的版本号中随机选择一个版本号,并根据该版本号对应的规则r4将加密算法因子d插入混淆卡内号中得到初定卡内号;/n(8)将版本号插入初定卡内号的第i位后得到卡内号。/n...

【技术特征摘要】
1.一种用于磁卡数据的加密算法,其特征在于,包括以下步骤:
(1)确定卡面号的位数为x,确定卡内号的位数为n,并根据确定的卡面号位数随机生成一个卡面号;
(2)根据卡面号的位数x以及卡内号的位数n确定算法因子d的位数,并根据算法因子d的位数随机生成一个算法因子d;
(3)制定数字混淆规则r1并对指定的每一项混淆规则r1进行编号,同时根据算法因子d选择对应编号的数字混淆规则r1对卡面号进行数字混淆,得到混淆卡面号;
(4)制定数字打乱顺序规则r2并对指定的每一项数字打乱顺序规则r2进行编号,同时根据算法因子d选择对应编号的数字打乱顺序规则r2对混淆卡面号进行数字打乱顺序,得到乱序卡面号;
(5)制定指定位置的指定数字混淆规则r3并对指定的每一项指定位置的指定数字混淆规则r3进行编号,同时根据算法因子d选择对应编号的指定位置的指定数字混淆规则r3对乱序卡面号进行指定位置的指定数字混淆,得到混淆卡内号;
(6)预设十种加密算法因子d插入混淆卡内号的规则r4,并将十种加密算法因子d插入混淆卡内号的规则分别定义为0、1……9作为版本号;
(7)从预设的版本号中随机选择一个版本号,并根据该版本号对应的规则r4将加密算法因子d插入混淆卡内号中得到初定卡内号;
(8)将版本号插入初定卡内号的第i位后得到卡内号。


2.根据权利要求1所述的一种用于磁卡数据的加密算法,其特征在于:步骤(1)中0<x<n≤40。


3.根据权利要求2所述的一种用于磁卡数据的加密算法,其特征在于:步骤(2)中算法因子d生成过程为:
(21)根据卡面号位数x和卡内号位数n计算算法因子d的位数y,其计算公式为y=n-x-1;
(22)根据计算得到的算法因子d的位数y,随机生成一个位数为y的算法因子d。


4.根据权利要求3所述的一种用于磁卡数据的加密算法,其特征在于:步骤(3)中数字混淆规则r1为:用a0、a1、……、a9替换卡面号中的数字0、1、……、9,令a0、...

【专利技术属性】
技术研发人员:刘俊旺陈品竹王军韩笑跃杨凯
申请(专利权)人:多点深圳数字科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1