一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

通信数据文混淆加密方法与流程

2022-07-11 02:51:27 来源:中国专利 TAG:


1.本发明涉及一种对通信数据文进行混淆并对进行了混淆后的通信数据文进行加密的通信数据文混淆加密方法。


背景技术:

2.以往,作为对数值列进行混淆的方法,例如存在专利文献1所公开的伪随机数生成装置中的方法。在该混淆方法中,将存储于寄存器的各存储要素中的数值列中的、存储于两个存储要素中的数值进行交换,来对寄存器进行混淆。关于用于确定在对寄存器进行混淆时成为对象的两个存储要素的地址,提供由伪随机数生成器生成的一阶随机数作为第一地址,另外,提供循环顺序编号作为第二地址。循环顺序编号作为将表示二阶随机数的生成次序的顺序编号除以构成寄存器的存储要素的数量得到的余数而被提供。由控制部将寄存器的以一阶随机数为地址的存储要素中存储的数值与寄存器的以循环顺序编号为地址的存储要素中存储的数值进行交换,由此对寄存器进行混淆。
3.另外,以往,作为对数值列进行混淆的方法,例如还存在专利文献2所公开的转置表制作方式中的方法。在该混淆方法中,对输入的输入数据列进行混淆。混淆是基于将从块加密器输出的随机数据除以转置表的空位数所求出的余数来进行的。即,在该余数所表示的数值的空位的转置表中依次存储顺序数,来制作转置表。输入数据列通过将各数值转置到按照转置表中存储的顺序数的排列位置而被进行混淆。
4.现有技术文献
5.专利文献
6.专利文献1:日本特开2007-287079号公报
7.专利文献2:日本特开昭61-264936号公报


技术实现要素:

8.发明要解决的问题
9.然而,关于通过专利文献1、专利文献2所公开的以往的混淆方法进行了混淆后的通信数据文,即使该通信数据文被监听也不知道其内容是怎样的内容,但是攻击者能够通过发送完全相同的数据的重播攻击或重放攻击来冒充发送者。此时,即使对通信数据文实施加密,由于除了根据otp密码等每次都改变密钥那样的密码以外而只要发送复制的密文即可,因此也无法防止冒充。
10.本发明是为了消除这种问题而完成的,其目的在于提供一种无法进行上述那样的冒充的通信数据文的混淆加密方法。
11.用于解决问题的方案
12.为此,本发明构建了一种通信数据文混淆加密方法,包括:第一步骤,在规定长度的明文的规定位置附加只限使用一次的临时识别值;第二步骤,基于第一混淆随机数值,对在明文中附加临时识别值所得到的通信数据原文进行混淆;第三步骤,在进行了混淆后的
通信数据原文的末尾附加第一混淆随机数值来生成通信数据第一变换文;第四步骤,以与基于第二混淆随机数值所确定的移位量相应的量对通信数据第一变换文的整体进行循环移位运算;第五步骤,在进行了循环移位运算后的通信数据第一变换文的末尾附加第二混淆随机数值来生成通信数据第二变换文;以及第六步骤,对通信数据第二变换文进行加密来生成通信数据文。
13.根据本结构,明文在第一步骤中被附加临时识别值来变换为通信数据原文,通信数据原文在第二步骤中基于第一混淆随机数值而被进行混淆。进行了混淆后的通信数据原文在第三步骤中在末尾被附加第一混淆随机数值来变换为通信数据第一变换文。关于通信数据第一变换文,在第四步骤中以与基于第二混淆随机数值所确定的移位量相应的量对通信数据第一变换文的整体进行循环移位运算,并且在第五步骤中在末尾被附加第二混淆随机数值来变换为通信数据第二变换文。通信数据第二变换文在第六步骤中被加密来变换为通信数据文。
14.因而,由于在通信数据文中附加临时识别值,因此即使监听通信数据文的第三方想要冒充发送者,也由于临时识别值只限使用一次,因此即使想要再次利用监听到的通信数据文也被视为不正当,并且在接收侧不被视为正确的数据。因此,虽然设想对临时识别值进行蛮力破解(日文:総当
たり
)变更来确定临时识别值,但由于在通信数据文中通过基于第一混淆随机数的混淆和基于第二混淆随机数的混淆这两次混淆来对临时识别值在通信数据文中的位置进行混淆,因此确定临时识别值是困难的。另外,为了执行对临时识别值的蛮力破解,只能对存在于通信数据第一变换文和通信数据第二变换文的各末尾的随机数进行译解并获知临时识别值在通信数据文中的位置之后执行蛮力破解来获知临时识别值,或者对通信数据文的全部数据进行蛮力破解。因此,冒充变难。
15.发明的效果
16.因此,根据本发明,能够提供一种即使攻击者想要通过发送完全相同的数据的重播攻击或重放攻击来冒充发送者也无法进行冒充的通信数据文的混淆加密方法。
附图说明
17.图1是示出使用本发明的一个实施方式的通信数据文的混淆加密方法来进行通信的各主机的功能结构的框图。
18.图2是示出在一个实施方式的通信数据文的混淆加密方法中由发送侧的主机进行的通信数据文的混淆加密处理的流程图。
19.图3是示出通过一个实施方式的通信数据文的混淆加密方法进行了加密的通信数据文的解密处理的流程图。
具体实施方式
20.接着,对用于实施本发明的通信数据文的混淆加密方法的方式进行说明。
21.图1是示出使用本发明的一个实施方式的通信数据文的混淆加密方法进行通信的各主机(主机(host)1、主机2)的功能结构的框图。
22.各主机1、主机2是个人计算机(pc)、微型计算机(通称为微电脑)等,具有相同的结构,具备随机数产生单元3、实时时钟(real time clock:rtc)4、循环移位运算单元5以及加
密/解密单元6。另外,各主机1、主机2各自被构成为具备cpu(中央运算处理装置)、rom(只读存储器)以及ram(能够读写的存储器)的ic模块。
23.cpu按照rom中存储的计算机程序来进行各部的控制。各主机1、主机2中的随机数产生单元3、循环移位运算单元5以及加密/解密单元6等通过该cpu按照计算机程序进行的软件控制来实现。但是,这些单元也可以构成为通过由电子电路形成的硬件实现来代替通过cpu的软件控制实现。随机数产生单元3进行的随机数生成不论是硬件还是软件皆可。在rom中,除了计算机程序之外,还保存有运算参数、各种表等。在ram中暂时存储cpu的控制处理等中使用的参数等,ram作为存储作业区域来使用。
24.接着,说明在从主机1向主机2发送加密数据时进行的一个实施方式的通信数据文的混淆加密方法。
25.图2是示出由主机1进行的通信数据文的混淆加密处理的流程图。
26.首先,主机1在规定长度的明文的规定位置附加只限使用一次的临时识别值(one time id:下面记作otid)(参照图2的步骤(下面记作s)101)。在本实施方式中,明文“92 13 f4 c4 71 5b”由6个字节的规定长度的16进制数构成,在数据列的开头配置有命令值“92”。明文“92 13 f4 c4 71 5b”由cpu将值“23”作为otid附加在其开头,来变换为通信数据原文“23 92 13 f4 c4 71 5b”,从而生成通信数据原文。
27.otid用于即使监听通信中途的通信数据文并重新发送该通信数据文也使该通信数据文作为正规的通信数据文而失去意义,在本实施方式中,根据实时时钟4计时的时刻数据来生成otid。但是,关于otid的生成,并不限定于实时时钟4计时的时刻数据,也可以构成为利用主机1与主机2之间的前次的通信中的通信识别值(通信id)、前次的通信中的通信文的哈希值、数字数据传输中的循环冗余校验中使用的crc码值、作为错误检测码使用的校验和值(checksum值)、或者基于相同的种子生成的伪随机数序列中的规定位置的数值模式来生成。在该情况下,在各主机1和主机2中,代替实时时钟4,而具备用于哈希计算的哈希计算单元、用于计算crc码值的crc计算单元、用于计算checksum值的checksum计算单元等。
28.当生成通信数据原文“23 92 13 f4 c4 71 5b”时,接下来由随机数产生单元3生成任意量在此为要进行混淆的数据数即两个的第一混淆随机数“ac”、“87”,以对该通信数据原文进行混淆(参照s102)。在本实施方式中,将otid“23”、以及明文“92 13 f4 c4 71 5b”中的想要隐匿的值即命令值“92”设为要进行混淆的数据的对象。
29.接着,利用作为通信数据原文“23 92 13 f4 c4 71 5b”的数据数的“7”对s102中所生成的两个第一混淆随机数“ac”、“87”分别进行模运算(参照s103)。即,将第一混淆随机数“ac”(=ach:十六进制数)除以数据数“7”得到的余数通过式(ach mod 7=4)而被计算为4。另外,将第一混淆随机数“87”(=87h:十六进制数)除以数据数“7”得到的余数通过式(87h mod 7=2)而被计算为2。
30.接着,将在s103的运算中求出的余数4、2的值设为表示通信数据原文“23 92 13 f4 c4 71 5b”中的各数据值的位置的索引值4、2,并将由该索引值4、2确定的位置的数据与设为要进行混淆的数据的对象的otid“23”及想要隐匿的命令值“92”进行交换(参照s104)。即,根据索引值4而将以通信数据原文“23 92 13 f4 c4 71 5b”的开头数据为第0个来进行算数的第4个数据“c4”确定为交换数据,并将该第4个数据“c4”与第0个otid“23”进行交换。另外,根据索引值2而将以通信数据原文“23 92 13 f4 c4 71 5b”的开头数据为第0个来进
行算数的第2个数据“13”确定为交换数据,并将该第2个数据“13”与第1个命令值“92”进行交换。通过该数据交换,通信数据原文“23 92 13 f4 c4 71 5b”基于第一混淆随机数值“ac”、“87”被进行混淆,生成“c4 13 92 f4 23 71 5b”来作为数据列。
31.接着,在进行了混淆后的通信数据原文、也就是进行了数据交换后的数据列“c4 13 92 f4 23 71 5b”的末尾附加第一混淆随机数值“ac”、“87”,来生成通信数据第一变换文“c4 13 92 f4 23 71 5b ac 87”(参照s105)。接着,由随机数产生单元3生成任意量的第二混淆随机数值、在本实施方式中为“10”(参照s106)。
32.接着,由循环移位运算单元5以与基于第二混淆随机数值“10”所确定的移位量相应的量对通信数据第一变换文的整体进行循环移位运算,在进行了循环移位运算后的通信数据第一变换文的末尾附加第二混淆随机数值“10”,来生成通信数据第二变换文(参照s107)。在本实施方式中,通信数据第一变换文“c4 13 92 f4 23 71 5b ac 87”以位为单位与第二混淆随机数值“10”的量相应地向左方向移位10位,得到数据列“92 f4 23 71 5b ac 87 c4 13”。之后,在数据列的末尾附加第二混淆随机数值“10”,生成通信数据第二变换文“92 f4 23 71 5b ac 87 c4 13 10”。
33.此外,在本实施方式中,以位为单位进行了循环移位运算单元5的循环移位运算,但也可以设为以字节为单位进行。当通信数据第一变换文“c4 13 92 f4 23 71 5b ac 87”以字节为单位向左方向移位10个字节时,得到数据列“c4 13 92 f4 23 71 5b ac 87”,之后,通过在数据列的末尾附加第二混淆随机数值“10”,来生成通信数据第二变换文“c4 13 92 f4 23 71 5b ac 87 10”。另外,循环移位运算的移位方向也不限定于左方向,也可以是右方向。
34.当生成通信数据第二变换文“92 f4 23 71 5b ac 87 c4 13 10”时,接下来由加密/解密单元6使用规定的加密密钥对该通信数据第二变换文进行加密,生成通信数据文“e2 b3 1b d9 8a 43 98 26 52dc”(参照s108)。主机1的cpu将该通信数据文发送到主机2。
35.图3是示出接收到通信数据文“e2 b3 1b d9 8a 43 98 26 52 dc”的主机2对该通信数据文的解密处理的流程图。
36.主机2通过与主机1的加密相反的过程来对通信数据文进行解密。也就是说,首先,主机2通过其加密/解密单元6使用规定的加密密钥来对所接收到的通信数据文“e2 b3 1b d9 8a 43 98 26 52 dc”进行解密,得到通信数据第二变换文“92 f4 23 71 5b ac 87 c4 13 10”(参照图3的s201)。由于在通信数据第二变换文的末尾附加有第二混淆随机数值“10”,因此接下来由主机2的cpu从通信数据第二变换文的末尾去除第二混淆随机数值“10”,通信数据第二变换文“92 f4 23 71 5b ac 87 c4 13 10”被变换为数据列“92 f4 23 71 5b ac 87 c4 13”,由循环移位运算单元5将该数据列向与在主机1中进行的移位相反的方向移位与第二混淆随机数值“10”相应的量(参照s202)。在主机1中以位为单位向左移位了10位,因此在此以位为单位向右移位10位。通过该向右移位运算,得到通信数据第一变换文“c4 13 92 f4 23 71 5b ac 87”。通过该s202的处理,除进行了混淆的值以外的值恢复为原来的值,因此在通信数据第一变换文的末尾附加有第一混淆随机数值“ac”、“87”。
37.接着,由主机2的cpu利用数据数“7”对在通信数据第一变换文的末尾附加的两个数据的第一混淆随机数值“ac”、“87”进行模运算(参照s203)。该模运算的结果为,如上述那样根据第一混淆随机数值“87”计算出余数值2,根据第一混淆随机数值“ac”计算出余数值
92 f4 23 71 5b ac 87”和通信数据第二变换文“92 f4 23 71 5b ac 87 c4 13 10”的各末尾的随机数“ac”、“87”、“10”进行译解并获知otid“23”在通信数据文“e2 b3 1b d9 8a 43 98 26 52dc”中的位置之后执行蛮力破解来获知otid“23”,或者对通信数据文“e2 b3 1b d9 8a 43 98 26 52dc”的全部数据进行蛮力破解。因此,冒充变难。
44.即,即使通过基于第一混淆随机数“ac”、“87”的混淆对otid“23”的位置进行混淆,但只要掌握通信数据文的译解的数量,则也能够通过统计数据来推测位置未改变的数据部分和位置改变了的数据部分。但是,在本实施方式中,利用第二混淆随机数“10”进一步进行了用于对数据整体进行混淆的循环移位运算,因此每当译解时位置每次都未改变的数据部分仅为末尾的用于循环移位运算的随机数值。该数据部分的值是随机数值,因此虽然位置未改变,但数值每次都改变。因此,只要攻击者没有译解出加密方式并掌握通信数据文的内容,在将通信数据文变更成了不正当的值时,就能够通过在接收侧的主机2中确认otid来消除不正当的通信数据文。
45.因此,根据本实施方式,能够提供即使攻击者想要通过发送完全相同的数据的重播攻击或重放攻击来冒充发送者也无法进行冒充的通信数据文的混淆加密方法。
46.另外,在本实施方式中,通过如下方式进行作为第二步骤的s102、s103以及s104中的混淆:基于第一混淆随机数值“ac”、“87”改变otid“23”和命令值“92”这两个值在通信数据原文“23 92 13 f4 c4 71 5b”中的位置。
47.在未进行混淆的通信数据文中,当发送相同的通信数据文时,容易确定otid、明文中的想要隐匿的值例如命令值等在通信数据文中的位置。因此,通过利用由相同的密钥加密后的多个密文,能够容易地进行对明文进行译解的唯密文攻击即coa攻击、在存在一个以上的密文和明文的条件下根据想要译解的密文求解出明文的选择密文攻击即cca攻击。因此,对通信数据文进行基于随机数的混淆,但若对全部数据进行混淆,则导致追加的随机数数据变多。但是,根据本实施方式,基于第一混淆随机数值“ac”、“87”而固定地仅对容易成为攻击目标的值即otid“23”和命令值“92”这两个值进行混淆,并基于第二混淆随机数值“10”通过循环移位运算对通信数据文整体进行混淆,由此能够不使追加的随机数数据变多,并且在不进行密码译解的情况下难以对通信数据文进行译解和利用。
48.另外,在本实施方式中,通过如下方式进行s104中的混淆:将otid“23”与由将otid用的第一混淆随机数值“ac”除以通信数据原文“23 92 13 f4 c4 71 5b”的数据数“7”得到的余数所确定的索引位置4的数据进行交换,另外,将命令值“92”与将命令值用的第一混淆随机数值“87”除以通信数据原文“23 92 13 f4 c4 71 5b”的数据数“7”得到的余数所确定的索引位置2的数据进行交换。即,在本实施方式中,将otid“23”及命令值“92”分别与通过模运算所确定的索引位置的数据进行交换。因而,数据的交换位置能够通过模运算来高效且有效地迅速生成,该模运算的生成算法简单且能够高速地生成并且已知在统计上也表现出良好的行为。因此,还能够高效且有效地迅速进行通信数据文的混淆加密。
49.另外,在本实施方式中,在s101中,otid“23”被附加于明文“92 13 f4 c4 71 5b”中的作为任意的固定位置的索引位置第0个。但是,otid“23”也可以被附加在基于随机数值所确定的索引位置的明文中。如果otid“23”被附加在基于随机数值所确定的索引位置的明文中,则otid“23”在通信数据文中的位置的确定变得更加困难。
50.产业上的可利用性
51.在根据本发明来进行了混淆加密的通信数据文的通信中,能够使用物理协议spi(serial peripheral interface:串行外设接口)、uart(universal asynchronous receiver/transmitter:通用异步收发器)、i2c(inter-integrated circuit:内置集成电路)、can(controller area network:控制器局域网)、ethernet(注册商标)、rs232c、usb(universal serial bus:通用串行总线)、bt(bluetooth:注册商标)、wifi(注册商标)无线等,不管其种类如何皆可。本发明特别是在容易进行冒充的ethernet中使用时更能够发挥效果。另外,通信数据文的开头字节不再是命令值或填充数据(用于探测开头的同步数据),因此在连续进行通信的状况下,期望按照通信的开始按标准确定且容易知道开头字节在何处的spi或i2c等标准进行通信。
52.当通过示波器等确认进行通信的通信数据文的波形时,能够从电波形窃听密文。此时,虽然usb或i2c的通信地址被窃听,但是用于进行控制的地址(寄存器地址等)通过本发明的通信数据文混淆加密方法被进行了隐匿,因此不用担心被窃听。另外,通信不限于ic间的通信,也可以是ic与打印机等设备之间的通信。
53.附图标记说明
54.1、2:主机(host);3:随机数产生单元;4:实时时钟;5:循环移位运算单元;6:加密/解密单元。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献