当前位置: 首页 > 专利查询>郑启芳专利>正文

一种模拟纸牌洗牌的对称加密算法制造技术

技术编号:36554736 阅读:23 留言:0更新日期:2023-02-04 17:09
本发明专利技术涉及信息技术领域,具体涉及一种对称加密算法。对称加密技术使用密钥(一种特殊参数,被形象比喻成钥匙)的方式对明文(原始数据)进行加密处理,形成与原始数据大相径庭的密文(加密数据),密文也必须使用加密时的密钥进行反向计算来解密,才能还原为明文。这种加密技术即便公开了加密方法,在没有密钥的情况下,很难甚至不能对密文进行还原,对数据起到一种保护作用。本发明专利技术要解决的技术问题:提供一种新的且好理解并容易实现的对称加密算法,使数据在网络传输、存储等场景中得到一种保护。本发明专利技术提出的技术方案:一种模拟纸牌洗牌的对称加密算法。包括:A.密钥转译、B牌流程、C.反洗牌流程。反洗牌流程。反洗牌流程。

【技术实现步骤摘要】
一种模拟纸牌洗牌的对称加密算法


[0001]本专利技术涉及信息
,具体涉及一种对称加密算法。

技术介绍

[0002]对称加密技术使用密钥(一种特殊参数,被形象比喻成钥匙)的方式对明文(原始数据)进行加密处理,形成与原始数据大相径庭的密文(加密数据),密文也必须使用加密时的密钥进行反向计算来解密,才能还原为明文。这种加密技术即便公开了加密方法,在没有密钥的情况下,很难甚至不能对密文进行还原,对数据起到一种保护作用。然而目前的对称加密算法种类较少且常见常用的都出自国外,其算法设计也比较复杂难懂,实现门槛较高,比如DES加密。

技术实现思路

[0003]本专利技术要解决的技术问题:提供一种新的且好理解并容易实现的对称加密算法,使数据在网络传输、存储等场景中得到一种保护。
[0004]本专利技术提出的技术方案:一种模拟纸牌洗牌的对称加密算法。包括:A.密钥转译、B.洗牌流程、C.反洗牌流程。
[0005]A.密钥转译:作为数据加密方,可随意输入或者自定义规则来生成一组字符串作为密钥,字符串长度越长(即密钥拥有的字符数越多),则模拟洗牌的次数就越多,而多次的洗牌也促使加密后的数据被破译的难度变大。密钥转译是指利用密钥来生成洗牌相关的参数值,其生成逻辑如下:「叠牌总轮数」= 密钥的长度。该值决定了一共要经过几轮叠牌;「当前叠牌颗粒度」= 当前密钥字符的编码数值与n

1的值取模运算后加1的结果。n为当前数据的长度。该值在叠牌模拟时,限定当前最多释放几张牌。需要注意的是,反洗牌流程中,需先将密钥反转后再参与计算;「当前是否左侧开始叠牌」= 当前密钥字符的编码数值与2取模运算后的值。该值在叠牌模拟时,决定了是从左侧开始还是右侧开始。需要注意的是,反洗牌流程中,需先将密钥反转后再参与计算;「切牌总次数」= 密钥的长度。该值决定了一共要经过几次切牌;「当前切牌位置」= 当前密钥字符的编码数值与f(i) 相乘再与n

1的值取模运算后加1的结果。n为当前数据的长度,洗牌流程中,f(i) 返回i,反洗牌流程中,f(i) 返回切牌总次数
‑1‑
i,i为当前第几次切牌。该值在切牌模拟时,决定在什么位置将数据一分为二进行对调。需要注意的是,反洗牌流程中,需先将密钥反转后再参与计算。
[0006]B. 洗牌流程:该流程用来将数据洗乱,达到一种加密效果。步骤为:首先,依据洗牌参数值「叠牌总轮数」进行一轮或多轮叠牌模拟;其次,依据洗牌参数值「切牌总次数」进行一次或多次切牌模拟。
[0007]C.反洗牌流程:该流程用来将数据复原,达到一种解密效果。步骤为:首先,依据洗
牌参数值「切牌总次数」进行一次或多次反切牌模拟;其次,依据洗牌参数值「叠牌总轮数」进行一轮或多轮反叠牌模拟。
[0008]B

1.叠牌模拟:该步骤为洗牌流程中的第一个环节。它将数据当作一堆牌,模拟的动作是:将一堆牌分成左右两堆,各堆每次释放一定数量的牌交叉重叠在一起,使牌序发生变化。结合附图1,在本专利技术技术方案中的步骤为:1、数据拆分成颗粒单元组、2、将颗粒单元组分为左右两列、3、模拟堆叠、4、模拟展牌的顺序输出结果。
[0009]1、数据拆分成颗粒单元组:以洗牌参数「当前叠牌颗粒度」将数据拆成多个颗粒单元暂存于颗粒单元组,一个颗粒单元模拟当前叠放哪几张牌。逻辑为:a) 创建一个空的颗粒单元组,用于接收颗粒单元;b) 创建两个下标索引s1和s2,初始时均指向数据的第一个下标值,即s1 = 0,s2 = 0;c) 若s1小于数据的最后一个下标值,则一直执行下列过程: s2 = s1 + 洗牌参数值「当前叠牌颗粒度」;在数据中复制s1与s2之间(包括s1位置,但不包括s2位置)的内容作为一个颗粒单元存入颗粒单元组中; s1 = s2。
[0010]2、将颗粒单元组分为左右两列:规则为,若不能均分,那么哪列开始叠牌便哪列多分到一个颗粒单元。逻辑为:a) 如果当前颗粒单元组长度为奇数,则:如果洗牌参数值「当前是否左侧开始叠牌」等于1,那么以ceil(颗粒单元组长度/2) 作为分隔点将步骤1中的颗粒单元组分成左右两列,不然以floor(颗粒单元组长度/2) 作为分隔点将步骤1中的颗粒单元组分成左右两列;b) 如果上述步骤1中的颗粒单元组长度为偶数,则:以颗粒单元组长度/2作为分隔点将上述步骤1后的颗粒单元组均分为左右两列。
[0011]3、模拟堆叠:将上述步骤2中的两列颗粒单元,交叉堆叠成一组。 逻辑为:a) 创建一个容器,用于接收颗粒单元;b) 将右列的颗粒单元的排列顺序反转;c) 若洗牌参数值「当前是否左侧开始叠牌」= 1,则:先从左列移动一个颗粒单元到容器,然后从右列移动一个颗粒单元到容器,如此循环至两列为空;否则:先从右列移动一个颗粒单元到容器,然后从左列移动一个颗粒单元到容器,如此循环至两列为空。
[0012]4、模拟展牌的顺序输出结果。逻辑为:将上述步骤3容器中颗粒单元顺序反转后,依次拼接其单元内的数据输出。
[0013]B

2.切牌模拟:该步骤为洗牌流程中的第二个环节。它将数据当作一堆牌,模拟的动作是:以某个位置作为分割点,将一堆牌一分为二后进行对调,使牌序发生变化。在本专利技术技术方案中的具体步骤为:以洗牌参数值「当前切牌位置」为分隔点,将数据一分为二对调后拼接输出。
[0014]C

1.反切牌模拟:该步骤为反洗牌流程中的第一个环节。它模拟的动作是:将上述B

2环节进行反向操作。在本专利技术技术方案中的具体步骤为:a) 重置洗牌参数值「当前切牌位置」= 当前数据长度与洗牌参数值「当前切牌位置」的差;b) 以重置过的洗牌参数值「当前切牌位置」为分隔点,将数据一分为二对调后拼
接输出。
[0015]C

2.反叠牌模拟:该步骤为反洗牌流程中的第二个环节,它模拟的动作是:将上述B

1环节进行反向操作。结合附图2,在本专利技术技术方案中的步骤为:1、数据拆分成颗粒单元组、2、模拟反堆叠、3、模拟展牌的顺序输出结果。
[0016]1、 数据拆分成颗粒单元组:以洗牌参数「当前叠牌颗粒度」将数据拆成多个颗粒单元暂存于颗粒单元组。逻辑为:a) 创建一个空的颗粒单元组,用于接收颗粒单元;b) 生成相关变量,其逻辑为:先计算当前数据长度,然后与洗牌参数值「当前叠牌颗粒度」求余数和商。若余数为0,则:「颗粒组总单元数」= 商,「是否含不饱和颗粒」= 0;否则:「颗粒组总单元数」= 商+1,「是否含不饱和颗粒」= 1,「不饱和颗粒单元长度」= 余数;c) 创建两个下标索引s1和s2,初始时均指向数据的第一个下标,即s1 = 0,s2 = 0;d) 若s1小于数据的最后一个下标值,则一直执行下列过程:d1) 若变量值「是否含不饱和颗粒」等于1并且洗牌参数值「当前是否左侧开始叠牌」等于1并且计算前颗粒单元组长度的结果等于变量值「颗粒组总单元数」
‑ꢀ本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模拟纸牌洗牌的对称加密算法,其特征在于,包括步骤:A.密钥转译、B.洗牌流程、C.反洗牌流程。2.根据权利要求1所述的一种模拟纸牌洗牌的对称加密算法,其特征在于,密钥转译为洗牌参数值的逻辑如下:「叠牌总轮数」= 密钥的长度;「当前叠牌颗粒度」= 当前密钥字符的编码数值与n

1的值取模运算后加1的结果,n为当前数据的长度,反洗牌流程中,需先将密钥反转后再参与计算;「当前是否左侧开始叠牌」= 当前密钥字符的编码数值与2取模运算后的值,反洗牌流程中,需先将密钥反转后再参与计算;「切牌总次数」= 密钥的长度;「当前切牌位置」= 当前密钥字符的编码数值与f(i) 相乘再与n

1的值取模运算后加1的结果,n为当前数据的长度,洗牌流程中,f(i) 返回i,反洗牌流程中,f(i) 返回切牌总次数
‑1‑
i,i为当前第几次切牌,反洗牌流程中,需先将密钥反转后再参与计算。3.根据权利要求1所述的一种模拟纸牌洗牌的对称加密算法,其特征在于,洗牌流程的步骤为:首先,依据洗牌参数值「叠牌总轮数」进行一轮或多轮叠牌模拟;其次,依据洗牌参数值「切牌总次数」进行一次或多次切牌模拟。4.根据权利要求1所述的模拟纸牌洗牌的对称加密算法,其特征在于,反洗牌流程的步骤为:首先,依据洗牌参数值「切牌总次数」进行一次或多次反切牌模拟;其次,依据洗牌参数值「叠牌总轮数」进行一轮或多轮反叠牌模拟。5.根据权利要求1、3所述的一种模拟纸牌洗牌的对称加密算法,其特征在于,叠牌模拟的步骤为:1、数据拆分成颗粒单元组;2、将颗粒单元组分为左右两列;3、模拟堆叠;4、模拟展牌的顺序输出结果。6.根据权利要求1、...

【专利技术属性】
技术研发人员:郑启芳
申请(专利权)人:郑启芳
类型:发明
国别省市:

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

1