CN114117416B - 基于sat的对称密码自动化分析平台可视化方法及系统 - Google Patents
基于sat的对称密码自动化分析平台可视化方法及系统 Download PDFInfo
- Publication number
- CN114117416B CN114117416B CN202111086891.3A CN202111086891A CN114117416B CN 114117416 B CN114117416 B CN 114117416B CN 202111086891 A CN202111086891 A CN 202111086891A CN 114117416 B CN114117416 B CN 114117416B
- Authority
- CN
- China
- Prior art keywords
- variable
- variables
- sat
- analysis platform
- layer
- 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.)
- Active
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 45
- 238000007794 visualization technique Methods 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 19
- 238000012800 visualization Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 12
- 230000000007 visual effect Effects 0.000 claims description 9
- 238000000034 method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010219 correlation analysis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Image Generation (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明属于平台可视化技术领域,提供了一种基于SAT的对称密码自动化分析平台可视化方法及系统。其中,该可视化方法包括处理基于SAT的对称密码自动化分析平台的中间文件,提取变量及变量值;逐层逐行按照设定规则处理变量,基于变量的位数与连续规则框勾画数量相同的原则,执行画状态;遍历所有的变量,根据连续规则框的连线顺序,为每个变量画上预设操作;接收绘图模式命令,执行与当前绘图模式命令相匹配的变量操作,展示当前绘图模式对应的可视化模式。
Description
技术领域
本发明属于平台可视化技术领域,尤其涉及一种基于SAT的对称密码自动化分析平台可视化方法及系统。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
对称密码是密码的一种,对称密码包括加密算法、解密算法、秘钥生成算法。它的的特征是加密方和解密方使用相同的秘钥,而公钥加密是加密方和解密方使用不同的秘钥。对称密码从加密形式上来看,分为分组密码和流密码,只要区别分组密码按照分组加密,流密码以bit为单位进行加密。对称密码在结构上可以分为Feistel、SPN和ARX三种基本结构。Feistel的特征是只有一半经过非线性函数另一半不经过非线性函数,然后交换两个部分;SPN的特征是同时经过非线性层,然后紧接着同时经过线性层;ARX的特征是只有模加、与和移位运算。
目前对称密码的分析方法包括差分分析、高阶差分分析、不可能差分分析、线性分析、零相关分析、积分分析、相关秘钥和中间相遇等。其中,山东大学网络空间安全学院自主开发了一种基于SAT的对称密码自动化分析平台,该平台已经集成了分组密码常见的攻击类型,包括差分攻击、线性攻击、零相关攻击、不可能差分攻击、积分攻击、相关秘钥攻击,并且提供了不同的攻击模式。
基于SAT的对称密码自动化分析平台已经被中国密码局在内的多个科研机构和高校采用。但是,发明人发现,在使用过程中,由于平台给出的攻击结果是纯文本,难于阅读和跟踪错误,使用者提出了攻击结果可视化的需求。
发明内容
为了解决上述背景技术中存在的技术问题,本发明提供一种基于SAT的对称密码自动化分析平台可视化方法及系统,其能够执行与当前绘图模式命令相匹配的变量操作,得到当前绘图模式对应的可视化模式,便于阅读和跟踪错误。
为了实现上述目的,本发明采用如下技术方案:
本发明的第一个方面提供一种基于SAT的对称密码自动化分析平台可视化方法,其包括:
处理基于SAT的对称密码自动化分析平台的中间文件,提取变量及变量值;
逐层逐行按照设定规则处理变量,基于变量的位数与连续规则框勾画数量相同的原则,执行画状态;
遍历所有的变量,根据连续规则框的连线顺序,为每个变量画上预设操作;
接收绘图模式命令,执行与当前绘图模式命令相匹配的变量操作,展示当前绘图模式对应的可视化模式。
本发明的第二个方面提供一种基于SAT的对称密码自动化分析平台可视化系统,其包括:
中间文件处理模块,其用于处理基于SAT的对称密码自动化分析平台的中间文件,提取变量及变量值;
画状态执行模块,其用于逐层逐行按照设定规则处理变量,基于变量的位数与连续规则框勾画数量相同的原则,执行画状态;
画操作设置模块,其用于遍历所有的变量,根据连续规则框的连线顺序,为每个变量画上预设操作;
可视化模式展示模块,其用于接收绘图模式命令,执行与当前绘图模式命令相匹配的变量操作,展示当前绘图模式对应的可视化模式。
本发明的第三个方面提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的基于SAT的对称密码自动化分析平台可视化方法中的步骤。
本发明的第四个方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的基于SAT的对称密码自动化分析平台可视化方法中的步骤。
与现有技术相比,本发明的有益效果是:
本发明的基于SAT的对称密码自动化分析平台可视化方法,通过基于变量的位数与连续规则框勾画数量相同的原则,执行画状态;遍历所有的变量,根据连续规则框的连线顺序,为每个变量画上预设操作;接收绘图模式命令,执行与当前绘图模式命令相匹配的变量操作,展示当前绘图模式对应的可视化模式,能够基于不同的绘图模式命令直观地展示攻击结果,相比较之前抽象的文本攻击结果,可视化的结果对于非密码专业的从业人员来说是界面友好且提高了阅读性和跟踪错误的效率。
本发明的基于SAT的对称密码自动化分析平台的可视化方法,提供了三种不同的模式,分别为:画全部连线模式、画路线模式和Debug模式,用于分别显示全部状态连接信息、只显示路线信息和debug模式,其中,显示全部的状态连接信息,就是把所有的状态以及值都显示出来;显示路线,是只把攻击路线显示出来,这样攻击人员可以很方便的查看路线;debug模式,可以通过点击状态来手动显示或者取消连线,这个模式用来跟踪路线,可以很方便的找出问题所在,极大的提高了正确描述密码的效率。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明实施例的基于SAT的对称密码自动化分析平台可视化方法流程图;
图2是本发明实施例的画路线模式的可视化示意图;
图3是本发明实施例的画全部连线模式的可视化示意图;
图4是本发明实施例的基于SAT的对称密码自动化分析平台可视化系统结构示意图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
本发明实施例的基于SAT的对称密码分析平台可视化方法及系统,基于python作图软件库turtle,工作环境是ubuntu18.04及python3,依赖svgwrite和rsvg-convert。
需要说明的是,在其他实施例中,基于SAT的对称密码分析平台可视化方法及系统也可采用其他作图软件工具来实现,此处不再累述。
实施例一
如图1所示,本实施例提供了一种基于SAT的对称密码自动化分析平台可视化方法,其具体包括如下步骤:
步骤S101:处理基于SAT的对称密码自动化分析平台的中间文件,提取变量及变量值。
本实施例中的处理基于SAT的对称密码自动化分析平台的中间文件为cfg文件。
其中,对称密码自动化分析平台的输入是config文件,把config文件解析之后会得到cfg文件。
当得到cfg文件之后,提取其中的变量。然后对变量进行如下的一系列操作:
首先,对提取到的变量按照轮层编号的顺序进行排序,并按照轮层的结构保存变量(cfg文件中的变量形如’node_r_l_i,len’,其中r是轮编号,l是层编号,i是层中变量的编号,len是变量的bit长度)。
接下来会调整变量的上下位置,按照如下规则调整:
如果某一层同时含有操作前和操作后的变量,把操作后的变量放到下一层。如果某一层同时包含SPLIT操作后的两个变量,并且变量的长度大于输入状态,则把其中一个变量移到下一层。如果某一层变量长度过长,则把这一层中和上一层没有直接相连关系的变量移到下一层。
然后会调整变量的水平位置,按照如下规则调整:如果当前层的变量变化后得到的变量不在相邻的下一层,则在下一层相同位置插入一个长度相同的虚假变量。
最后再一次调整变量的上下位置,按照如下规则调整:
如果变量a变化后得到变量b,b变量所在的层含有虚假变量,并且a和b之间隔着很多层,而且a和b之间和a正对的变量都是占位的虚假变量,则把b变量提前,直接放到a下一层的相同位置,而b原先的位置放置等长的虚假变量。
调整完变量的位置关系之后,可视化程序要保存必要的变量信息:
用列表存储前后有连接关系的变量,每对有关系的变量用元祖存放(如果变量a操作之后得到变量b和c,那么将(a,b)和(a,c)存储到列表中)。用字典来来保存变量和它前面的操作,变量和它后面的操作,变量和它经过操作后得到的所有的变量,变量和得到它需要的变量,同时有的变量还要保存变量和它的分枝数,变量和它的移位数。用字典保存变量和它操作后得到的变量是不是在连续的层,变量和得到它的前面的变量是不是在连续的层,当前层和下一层是不是一个对应一个的关系。如果一个变量前面有分支,则用字典保存当前节点和前面的节点;如果一个变量右面有分支,则用字典保存当前节点和后面的节点。
有些变量的信息由变量本身就可以得到不需要计算,但是有些变量的信息需要计算才可以得到。
计算变量和空隙(在画图的时候,变量和变量不是紧靠着的,中间会出一块区域)之间的比例min_step,如果最短的变量的列数大于1,那么最小的空隙是2,比率是2/min_col;如果最小列为1,则min_step=1。
计算一层的总长度,一层变量的总列数乘以(1+min_step),然后选取最长的层长度作为密码的宽度。
下面计算层的高度,层的高度有相邻的两层共同决定,如果相邻的两层是n和(n+1)层,则层高由经过操作之后的变量至少有一个在第(n+1)层的第n层变量和操作前的变量都不在第n层的第(n+1)层变量共同决定。
遍历第n层变量,如果第n层的某个变量经过操作后的变量至少有一个在第(n+1)层,那么由这个操作决定的当前层的高度由以下公式给出:
如果操作是SB、PL、RRS、RLS、LS、RS或NOT,如果输出变量和输入变量正对高度为:len_up1+ope_height+len_up3+len_down1,如果输出变量和输入变量不是正对高度为:len_up1+ope_height+len_up3+len_down1+cross_hei(len_up1,len_up2,len_up3,ope_height,len_down1,len_down2,len_down3,cross_hei都是在layout类里面提前设置好的一些参数)。
其中:SB、PL、RRS、RLS、LS、RS和NOT的含义如下:
SB:对变量做过S盒操作。
PL:对变量做过线性层操作
RRS:对变量做右循环移位操作。
RLS:对变量做左循环移位操作。
LS:对变量做左移位操作。
RS:对变量做右移位操作。
NOT:对变量做按位取反操作。
如果操作是Decompose、SPLIT,高度为len_up2+len_up2+cross_hei+len_down1。
如果操作是ModuloAdd、AND、XOR,如果输出变量和输入变量正对高度为:len_up1+cross_hei+len_down3+len_down2;如果输出变量和输入变量不是正对高度为:len_up1+len_down1。
如果操作是EQ,如果输出变量和输入变量正对高度为:len_up1+cross_hei+len_down1;
如果输出变量和输入变量不是正对高度为:len_up1+len_down1。
如果操作是Cascade,如果输出变量和输入变量正对高度为:len_down1+len_down3+cross_hei+len_up1,如果输出变量和输入变量不是正对高度为:len_up1+len_down1。
在遍历第n层变量的过程中,始终保存最大的高度max_n。
遍历第(n+1)层变量,如果第(n+1)层的的某个变量操作前的变量都不在第n层,那么由这个操作决定的当前层的高度由以下公式给出:
如果操作是SB、PL、RRS、RLS、LS、RS、NOT,如果输出变量和输入变量正对高度为:len_up1+len_donw1+ope_height,如果输出变量和输入变量不是正对高度为:len_up1+ope_height+len_up3+len_down1+cross_hei。
如果操作是ModuloAdd、AND、XOR,高度为len_up1+cross_hei+len_down1。
如果操作是ModuloAdd、AND、XOR,高度为:len_up1+cross_hei+len_down3+len_down2。
如果操作是EQ,高度为len_up1+cross_hei+len_down1。
如果操作是Cascade,高度为len_donw2+len_down3+cross_hei+len_up1。
在遍历第(n+1)层变量的过程中,可视化程序始终保存最大的高度max_n_1。
计算第n层变量和第(n+1)层变量之间的高度为max(max_n,max_n_1)。
计算总高度,所有轮高度的和。
结果文件是后缀名为.sol的文件,该文件中保存的是变量以及变量的值。读取该文件,并且用字典存储变量以及变量的值。
步骤S102:逐层逐行按照设定规则处理变量,基于变量的位数与连续规则框勾画数量相同的原则,执行画状态。
在本实施例中,针对一行变量,按照从左到右的顺序处理变量。
而且连续规则框选择方块来实现。
需要说明的是,本领域的技术人员也可根据实际情况来设定相应规则及选择连续规则框的形状(比如圆形等),此处不再详述。
其中,状态就是一层变量。在图上一个变量由若干连续的小方块组成,状态就是若干用空隙间隔的变量。
当读到一行变量的时候,从左往右开始绘制。如果某个变量不是虚假变量,如果它有n个bit,则要画n个连续小方块(小方格的长度是wordsize,默认是10),然后空出n*min_step*wordsize的距离绘制下一个变量;如果某个变量是虚假变量,则不用绘制小方格,只需要空出(n+1)*min_step*wordsize的距离就可以。同时用字典存储变量和变量所代表的小方格的位置。最后,如果变量不在最后一层,在变量的小方格的下面边的中点竖直往下画一个长为len_up1的线,并且用字典存储当前变量和竖线;如果变量不在第一层,在变量的小方格的上面边的中点竖直往上画一个长为len_down1的线,并且用字典存储当前变量和竖线。
当画完第n层,去画第(n+1)层的时候,需要读取第n层变量和第(n+1)层变量之间的高度h,画笔从当前位置往下移动h,然后画下一个状态。
当处理到一个变量的时候,根据变量的长度会把变量的名字标在上面或者左侧。
步骤S103:遍历所有的变量,根据连续规则框的连线顺序,为每个变量画上预设操作。
具体地,步骤S103中的遍历所有的变量,为每个变量画上所需要的操作的具体实施过程为:
当读取的变量是a的时候,如果a不是最后一层的变量,会查看a后面的操作,并且取出a后面的竖直线h1,如果a不是不是第一层的变量,查看a前面的操作,并且取出a前面的竖直线h2。
如果变量后面的操作是SB,在h1的终点向下画一个矩形(h1的终点是矩形上边的中点),长度和进入S盒变量的长度相同,高度默认单位长度,在矩形的中间写入字符“SB”,标志当前操作是S盒操作,然后再S盒的下面引出一条线(方向向下,长度为len_up3),同时用该线来更新字典中变量a后面的线。
如果变量后面的操作是PL和NOT,如SB一样绘制,只不过写入字符相应的改为“PL”、“NOT”。
如果变量后面的操作是RRS、RLS,如SB一样绘制,只不过写入字符相应的改为“>>>n”、“<<<n”,其中n是变量的移位数。
如果变量后面的操作是RS、LS,如SB一样绘制,只不过写入字符相应的改为“>>n”、“<<n”,其中n是变量的移位数。
如果变量后面的操作是SPLIT,以h1的终点为中点,画一条水平线,长度等于输入变量的长度,然后在线的起点和终点分别向下画长度为len_up3的线。
如果变量后面的操作是Decompose,以h1的终点为中点,画一条水平线,长度等于输入变量的长度,然后将线均分为分枝数减1,在每个点分别向下画长度为len_up3的线,同时用得到的线来更新字典中变量a后面的线。
如果变量前面的操作是XOR,在h2的终点向上画一个圆形,然后以圆心为中点画一个水平线,长度为输入变量的长度,在线的起点和终点分别向上引出一条线,长度为len_down3,最后连接圆的最高点和最低点,同时用得到的两条线来更新字典中变量a前面的线。
如果变量前面的操作是ModuloADD,如XOR一样绘制只不过圆形改为方形。
如果变量前面的操作是ADD,在h2的终点向上画一个矩形,从矩形左边中点向左水平引出一条线到输出变量的最左边,从矩形右边水平引出一条线到输出变量最右边,在两个线的终点分别向上引出长度为len_down3的线,在矩形的中心写上字符“&”,同时用得到的两条线来更新字典中变量a前面的线。
如果变量前面的操作是Cascade,以h2的终点为中点,画一条水平线,长度等于输入变量的长度,然后将线均分为分枝数减1,在每个点分别向上画长度为len_down3的线,同时用得到的多条线来更新字典中变量a前面的线。
逐层遍历变量,如果当前遍历到的变量为a,a经过操作之后的变量是b(当然,一个变量操作之后可能会变成多个变量,但是为了叙述方便,假设变化之后只有一个变量)。如果变量a和变量b在连续的两层,则直接连接两个变量即可,并且用字典存储a后面的线和新得到线的起点、终点。如果两个变量不在连续的两层则按照如下规则处理:
假设当前遍历的是第n层,和当前遍历到的变量相关的不在第(n+1)层,字典中变量a后面的线是h,字典中变量b前面的线是h1(当然变量a后面的线和变量b前面的线都可能有多条,为了叙述方便,假设只有一条)。
如果h正对第(n+1)层的空隙,则该空隙计数器加1。
假设h正对第(n+1)层中的一个变量c。
如果h1在c左侧,则c左侧的空隙计数器加1,如果h1在c的右侧,则c右侧的空隙计数器加1。
如果c的左侧是图的最左侧,则c的右边的空隙计数器加1。
如果c的右侧是图的最右测,则c的左边的空隙计数器加1。
在以上条件都不满足的情况下。如果h和h1都正对第(n+1)层的变量c,令h到c左侧的水平距离为m1,h到c右侧的水平距离为m2,h1到c左侧的水平距离为m3,h1到c右侧的水平距离为m4,如果m1+m3>=m2+m4,侧的空隙计数器加1,否侧c右侧的空隙计数器加1。
在做以上处理的时候也会记录下h会经过第(n+1)的哪个空隙。
遍历第(n+1)层的空隙,如果经过当前空隙的线都是正对当前空隙的,则所有的线直接竖直画下来,结束的位置是变量下面变往下len_up1的位置。如果当前空隙是第0个空隙,将会使用以下方法安排线的排布:在第0个空隙的右侧往左排,使得每个线到左数第一个变量左侧的距离和当前线到右边相邻线的距离都不小于一个给定的最小值,对于当前层的竖线正对第n层第0个空隙的变量如果它和右侧线的距离小于最小值,则往左侧倾斜一下使得和右边的距离等于给定的最小值,结束的位置是第(n+1)层变量上面的边往上len_down1的位置,然后竖直往下走,如果大于则直接延长,结束位置是第(n+1)层变量下面变往下len_up1的位置。
如果当前空隙是最后一个空隙,将会使用以下方法来安排线的排布:
在最后一个空隙的右侧往左排,使得每个线到右数第一个变量右侧的距离和当前线到左边相邻线的距离都不小于一个给定的最小值,对于当前层的竖线正对第n层最后一个空隙的变量如果它和左侧线的距离小于最小值,则往右侧倾斜一下使得和左边的距离等于给定的最小值,结束的位置是第(n+1)层变量上面的边往上len_down1的位置,然后竖直往下走,如果大于则直接延长,结束位置是第(n+1)层变量下面变往下len_up1的位置。
得到空隙中的线后,用字典存储新得到的变量后面的线和线的起点、变量后面增加的转折点。
进行第(n+1)层变量连线的时候,输入的变量包含第(n+1)层的变量和之前层没有连接完成的变量后面线的最后一段竖直线。
迭代执行,并且用字典保存全部的连线信息,包括一个变量和它后面的全部的线,一个变量和它前面的全部的线,已经每条线和线的起点、转折点、终点。
到连线之后,进行交叉检查:
检查每个SPLIT节点引出的两条线干线是不是有交叉的情况,如果有交叉的存在,采用避免交叉的算法:如果两条线用a和b来表示,用交叉后b线对应的点去更新交叉后a线对应的点,同时用交叉后a线对应的点去更新交叉后b线对应的点。
检查进入XOR、ModuloAdd、AND节点的两条线是不是又交叉,如果有交叉的存在,采用如上避免交叉的算法。
步骤S104:接收绘图模式命令,执行与当前绘图模式命令相匹配的变量操作,展示当前绘图模式对应的可视化模式。
在具体实施中,所述绘图模式包括画全部连线模式、画路线模式和Debug模式。
其中,所述画全部连线模式的执行过程为:
遍历所有的节点,得到每个变量后面的连线,然后得到连线上的所有的点,按顺序一次连接所有的点。在画全部连线模式下,同一个变量出来的连线的颜色相同,如图3所示。
在具体实施中,使用svgwrite和rsvg-convert将画全部连线模式的运行结果保存在pdf。
其中,所述画路线模式的执行过程为:
遍历所有的节点,得到当前节点的值,如果非全0,得到变量后面的连线,然后得到连线上的所有的点,按顺序一次连接所有的点。在画路线模式下,同一个变量出来的连线的颜色相同,如图2所示。。
在具体实施中,使用svgwrite和rsvg-convert将画路线模式的运行结果保存在pdf。
从图2和图3的展示结果上来看,本实施例的该方法所展现的视图比较美观、简洁,已经使得连线尽量短,交叉尽量少,并且所展现的视图是有结构的,对于密码专业的人员来说可以很轻松的分辨是哪种结构的密码算法。
其中,所述Debug模式的执行过程为:
在绘图窗口显示出所有的变量和操作,执行点击变量命令来显示变量后面的非零连线和前面的非零连线,再次执行点击当前变量命令来取消连线,如果在执行点击当前变量命令之前,某个变量和当前变量有公共的连线,那么取消当前变量之后,还需恢复相关变量的连线。
实施例二
如图4所示,本实施例提供了一种基于SAT的对称密码自动化分析平台可视化系统,其具体包括如下模块:
中间文件处理模块,其用于处理基于SAT的对称密码自动化分析平台的中间文件,提取变量及变量值;
画状态执行模块,其用于逐层逐行按照设定规则处理变量,基于变量的位数与连续规则框勾画数量相同的原则,执行画状态;
画操作设置模块,其用于遍历所有的变量,根据连续规则框的连线顺序,为每个变量画上预设操作;
可视化模式展示模块,其用于接收绘图模式命令,执行与当前绘图模式命令相匹配的变量操作,展示当前绘图模式对应的可视化模式。
此处需要说明的是,本实施例中的各个模块与实施例一中的各个步骤一一对应,其具体实施过程相同,此处不再累述。
实施例三
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述所述的基于SAT的对称密码自动化分析平台可视化方法中的步骤。
实施例四
本实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述所述的基于SAT的对称密码自动化分析平台可视化方法中的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于SAT的对称密码自动化分析平台可视化方法,其特征在于,包括:
处理基于SAT的对称密码自动化分析平台的中间文件,提取变量及变量值;
逐层逐行按照设定规则处理变量,基于变量的位数与连续规则框勾画数量相同的原则,执行画状态;
遍历所有的变量,根据连续规则框的连线顺序,为每个变量画上预设操作;
接收绘图模式命令,执行与当前绘图模式命令相匹配的变量操作,展示当前绘图模式对应的可视化模式。
2.如权利要求1所述的基于SAT的对称密码自动化分析平台可视化方法,其特征在于,所述绘图模式包括画全部连线模式、画路线模式和Debug模式。
3.如权利要求2所述的基于SAT的对称密码自动化分析平台可视化方法,其特征在于,所述画全部连线模式的执行过程为:
遍历所有的节点,得到每个变量后面的连线,然后得到连线上的所有的点,按顺序一次连接所有的点。
4.如权利要求2所述的基于SAT的对称密码自动化分析平台可视化方法,其特征在于,在画全部连线模式下,同一个变量出来的连线的颜色相同。
5.如权利要求2所述的基于SAT的对称密码自动化分析平台可视化方法,其特征在于,所述画路线模式的执行过程为:
遍历所有的节点,得到当前节点的值,如果非全0,得到变量后面的连线,然后得到连线上的所有的点,按顺序一次连接所有的点。
6.如权利要求2所述的基于SAT的对称密码自动化分析平台可视化方法,其特征在于,在画路线模式下,同一个变量出来的连线的颜色相同。
7.如权利要求2所述的基于SAT的对称密码自动化分析平台可视化方法,其特征在于,所述Debug模式的执行过程为:
在绘图窗口显示出所有的变量和操作,执行点击变量命令来显示变量后面的非零连线和前面的非零连线,再次执行点击当前变量命令来取消连线,如果在执行点击当前变量命令之前,某个变量和当前变量有公共的连线,那么取消当前变量之后,还需恢复相关变量的连线。
8.一种基于SAT的对称密码自动化分析平台可视化系统,其特征在于,包括:
中间文件处理模块,其用于处理基于SAT的对称密码自动化分析平台的中间文件,提取变量及变量值;
画状态执行模块,其用于逐层逐行按照设定规则处理变量,基于变量的位数与连续规则框勾画数量相同的原则,执行画状态;
画操作设置模块,其用于遍历所有的变量,根据连续规则框的连线顺序,为每个变量画上预设操作;
可视化模式展示模块,其用于接收绘图模式命令,执行与当前绘图模式命令相匹配的变量操作,展示当前绘图模式对应的可视化模式。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的基于SAT的对称密码自动化分析平台可视化方法中的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一项所述的基于SAT的对称密码自动化分析平台可视化方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111086891.3A CN114117416B (zh) | 2021-09-16 | 2021-09-16 | 基于sat的对称密码自动化分析平台可视化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111086891.3A CN114117416B (zh) | 2021-09-16 | 2021-09-16 | 基于sat的对称密码自动化分析平台可视化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114117416A CN114117416A (zh) | 2022-03-01 |
CN114117416B true CN114117416B (zh) | 2024-04-12 |
Family
ID=80441389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111086891.3A Active CN114117416B (zh) | 2021-09-16 | 2021-09-16 | 基于sat的对称密码自动化分析平台可视化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114117416B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012172687A1 (ja) * | 2011-06-17 | 2012-12-20 | 株式会社日立製作所 | プログラム可視化装置 |
CN107895105A (zh) * | 2017-11-03 | 2018-04-10 | 广东欧珀移动通信有限公司 | 一种密码处理方法、终端设备及计算机可读存储介质 |
CN109669992A (zh) * | 2018-12-20 | 2019-04-23 | 云南电网有限责任公司玉溪供电局 | 一种数据可视化转换的实现方法 |
CN111694547A (zh) * | 2019-03-12 | 2020-09-22 | 湛江市霞山区新软佳科技有限公司 | 一种基于数据状态变化的自动编码数据处理应用设计工具 |
CN112667994A (zh) * | 2020-12-10 | 2021-04-16 | 山东大学 | 一种面向计算机的对称密码形式化描述方法及系统 |
WO2021174946A1 (zh) * | 2020-10-12 | 2021-09-10 | 平安科技(深圳)有限公司 | 可视化方法、系统、计算机设备和存储介质 |
-
2021
- 2021-09-16 CN CN202111086891.3A patent/CN114117416B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012172687A1 (ja) * | 2011-06-17 | 2012-12-20 | 株式会社日立製作所 | プログラム可視化装置 |
CN107895105A (zh) * | 2017-11-03 | 2018-04-10 | 广东欧珀移动通信有限公司 | 一种密码处理方法、终端设备及计算机可读存储介质 |
CN109669992A (zh) * | 2018-12-20 | 2019-04-23 | 云南电网有限责任公司玉溪供电局 | 一种数据可视化转换的实现方法 |
CN111694547A (zh) * | 2019-03-12 | 2020-09-22 | 湛江市霞山区新软佳科技有限公司 | 一种基于数据状态变化的自动编码数据处理应用设计工具 |
WO2021174946A1 (zh) * | 2020-10-12 | 2021-09-10 | 平安科技(深圳)有限公司 | 可视化方法、系统、计算机设备和存储介质 |
CN112667994A (zh) * | 2020-12-10 | 2021-04-16 | 山东大学 | 一种面向计算机的对称密码形式化描述方法及系统 |
Non-Patent Citations (1)
Title |
---|
轻量级分组密码算法ESF的安全性分析;尹军;马楚焱;宋健;曾光;马传贵;计算机研究与发展;20171231(010);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114117416A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101561678B (zh) | 工厂信息显示装置 | |
CN101908958B (zh) | 密码处理装置、方法、算法构建方法和信息处理装置 | |
US8933937B2 (en) | Visualizing a layered graph using edge bundling | |
Todinov | Flow Networks: Analysis and optimization of repairable flow networks, networks with disturbed flows, static flow networks and reliability networks | |
JP2009526311A (ja) | 文書概観用スクロールバー | |
CN104881415B (zh) | 树图生成的方法及设备 | |
CN103064992A (zh) | 一种基于有向网格点的布线存储结构及其布线方法 | |
CN103403721A (zh) | 设计辅助系统 | |
Nevliudov et al. | Development of an ArchitecturalLogical Model to Automate the Management of the Process of Creating Complex Cyberphysical Industrial Systems | |
CN114117416B (zh) | 基于sat的对称密码自动化分析平台可视化方法及系统 | |
CN109726066A (zh) | 用于标识存储系统中的问题部件的方法和设备 | |
JP4705060B2 (ja) | 試験仕様生成装置及び試験システム及び試験仕様生成方法及びプログラム | |
Schindler et al. | Multiverse data-flow control | |
CN102609554B (zh) | 一种led大屏幕计算机辅助设计的方法和装置 | |
CN104899908A (zh) | 生成事件组演化图的方法和装置 | |
CN105446284A (zh) | Can总线的数据分析方法和装置 | |
KR100651754B1 (ko) | 트래픽 패턴-맵을 이용한 네트워크 상태 표시 장치 및 그방법 | |
CN108319991A (zh) | 一种节点工程布线图确定方法及装置 | |
Raddum et al. | Algebraic attacks using binary decision diagrams | |
Cofer et al. | A generalized max-algebra model for performance analysis of timed and untimed discrete event systems | |
CN106683030A (zh) | 基于量子多图像模型与三维变换的量子多图加密算法 | |
JP5253684B1 (ja) | Plcシステム設計装置 | |
Hsu | On-line recognition of interval graphs in o (m+ nlog n) time | |
JP6390346B2 (ja) | ネットワーク検証装置、ネットワーク検証方法、および、ネットワーク検証プログラム | |
US20130188790A1 (en) | Cryptographic key |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |