CN109598134B - 一种分组加密算法的高速运行方法和高速运行装置 - Google Patents

一种分组加密算法的高速运行方法和高速运行装置 Download PDF

Info

Publication number
CN109598134B
CN109598134B CN201811494935.4A CN201811494935A CN109598134B CN 109598134 B CN109598134 B CN 109598134B CN 201811494935 A CN201811494935 A CN 201811494935A CN 109598134 B CN109598134 B CN 109598134B
Authority
CN
China
Prior art keywords
operation result
input data
preset
data
result
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
Application number
CN201811494935.4A
Other languages
English (en)
Other versions
CN109598134A (zh
Inventor
王亚伟
张文婧
张贺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Hongsi Electronic Technology Co ltd
Original Assignee
Beijing Hongsi Electronic Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Hongsi Electronic Technology Co ltd filed Critical Beijing Hongsi Electronic Technology Co ltd
Priority to CN201811494935.4A priority Critical patent/CN109598134B/zh
Publication of CN109598134A publication Critical patent/CN109598134A/zh
Application granted granted Critical
Publication of CN109598134B publication Critical patent/CN109598134B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Calculators And Similar Devices (AREA)

Abstract

本发明公开了一种分组加密算法的高速运行方法和高速运行装置,涉及信息安全领域,所述装置,包括:第一拆分模块、第一运算模块和第一组合模块;分别用于将第一段输入数据进行拆分;用于将拆分得到的每个输入数据分别与预设数据进行与运算得到多个与运算结果;对多个与运算结果中的全部或者部分进行预设移位运算得到多个移位运算结果;按照预设组合将多个移位运算结果与部分与运算结果进行或运算得到多个或运算结果;用于将得到的多个或运算结果组合成第一段输出数据;本发明使分组加密算法在安全芯片中的运行速度倍速增长,从而提升了安全芯片在使用分组加密算法对数据进行安全操作时的效率,提升了安全芯片的性能。

Description

一种分组加密算法的高速运行方法和高速运行装置
技术领域
本发明涉及信息安全领域,特别涉及一种分组加密算法的高速运行方法和高速运行装置。
背景技术
分组加密算法是对一定大小的明文或者密文做加密或者解密动作。随着互联网技术的不断发展,分组加密算法作为一种安全算法,已被广泛应用于信息安全领域。现有技术中,分组加密算法中包括很多数据置换或数据变换过程,每个过程中涉及到大量的数据运算,因此导致分组加密算法在安全芯片中的运行速度低下,进而导致安全芯片在使用分组加密算法对数据进行安全操作时效率低下,影响安全芯片性能。
发明内容
本发明提供了一种分组加密算法的高速运行方法和高速运行装置,解决了上述技术问题。
本发明提供了一种分组加密算法的高速运行方法,包括:
步骤s1:所述安全芯片将第一段输入数据进行拆分得到m个输入数据
步骤s2:所述安全芯片将每个输入数据分别与各自相匹配的预设数据进行与运算得到多个与运算结果;对所述多个与运算结果中的全部或者部分进行预设移位运算得到多个移位运算结果;
所述安全芯片按照预设组合将所述多个移位运算结果与部分与运算结果分成n组,将每组中的所有运算结果进行或运算得到1个或运算结果,共计得到n个或运算结果;
步骤s3:所述安全芯片将得到的n个或运算结果组合成第一段输出数据;
所述m为正整数,所述n为正整数。
本发明还提供了一种分组加密算法的高速运行装置,包括:包括:第一拆分模块、第一运算模块和第一组合模块;
所述第一拆分模块,用于将第一段输入数据进行拆分得到m个输入数据;
所述第一运算模块,用于将所述第一拆分模块得到的每个输入数据分别与各自相匹配的预设数据进行与运算得到多个与运算结果;对所述多个与运算结果中的全部或者部分进行预设移位运算得到多个移位运算结果;按照预设组合将所述多个移位运算结果与部分与运算结果分成n组,将每组中的所有运算结果进行或运算得到1个或运算结果,共计得到n个或运算结果;
所述第一组合模块,用于将所述第一运算模块得到的n个或运算结果组合成第一段输出数据;
所述m为正整数,所述n为正整数。
本发明的有益效果:本发明提供了一种分组加密算法的高速运行方法和高速运行装置;本发明使分组加密算法在安全芯片中的运行速度可以达到现有技术中的8倍以上,从而提升了安全芯片在使用分组加密算法对数据进行安全操作时的效率,提升了安全芯片的性能。
附图说明
图1-图6为本发明实施例2提供的一种分组加密算法的高速运行方法中的压缩置换过程的实现流程图;
图7为本发明实施例3提供的一种分组加密算法的高速运行装置的结构方框图。
具体实施方法
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例提供了一种分组加密算法的高速运行方法,包括:
步骤s1:安全芯片将第一段输入数据进行拆分得到m个输入数据;
步骤s2:安全芯片将每个输入数据分别与各自相匹配的预设数据进行与运算得到多个与运算结果;对多个与运算结果中的全部或者部分进行预设移位运算得到多个移位运算结果;
安全芯片按照预设组合将多个移位运算结果与部分与运算结果分成n组,将每组中的所有运算结果进行或运算得到1个或运算结果,共计得到n个或运算结果;
步骤s3:安全芯片将得到的n个或运算结果组合成第一段输出数据。
本实施例中,m、n均为正整数,优选地,m等于7,n等于6。
本实施例中,步骤s2具体为:
步骤s2-1:安全芯片按照预设规则将m个输入数据分成n组输入数据;安全芯片以每组输入数据为单位执行步骤s2-2;
步骤s2-2:安全芯片将每组输入数据中的各个输入数据分别与各自相匹配的预设数据进行与运算得到多个与运算结果;对多个与运算结果中的全部或者部分进行预设移位运算得到多个移位运算结果;
若对多个与运算结果中的全部进行预设移位运算得到多个移位运算结果,则将多个移位运算结果进行或运算得到1个或运算结果;若对多个与运算结果中的部分进行预设移位运算得到多个移位运算结果,则将多个移位运算结果与未进行移位运算的与运算结果进行或运算得到1个或运算结果;
步骤s2-3:当安全芯片将各组输入数据均执行完步骤s2-2的操作后,得到n个或运算结果。
进一步地,安全芯片以每组输入数据为单位执行步骤s2-2,具体为:安全芯片以每组输入数据为单位并行或串行执行步骤s2-2。
更进一步地:当m=7;n=6时;
步骤s1具体为:安全芯片将第一段输入数据进行拆分得到第一输入数据、第二输入数据、第三输入数据、第四输入数据、第五输入数据、第六输入数据和第七输入数据;
6组输入数据包括:第一组输入数据、第二组输入数据、第三组输入数据、第四组输入数据、第五组输入数据和第六组输入数据;
第一组输入数据包括:第二输入数据、第一输入数据、第三输入数据和第四输入数据;
第二组输入数据包括:第二输入数据、第一输入数据和第三输入数据;
第三组输入数据包括:第二输入数据、第一输入数据、第三输入数据和第四输入数据;
第四组输入数据包括:第四输入数据、第五输入数据、第六输入数据和第七输入数据;
第五组输入数据包括:第五输入数据、第六输入数据和第七输入数据;
第六输入数据包括:第四输入数据、第五输入数据、第六输入数据和第七输入数据。
再进一步地,步骤s2-2具体包括:
步骤c1:安全芯片将第二输入数据分别与第八预设数据和第三输入数据进行与运算得到第一运算结果和第五运算结果;将第三输入数据与第二预设数据和第四预设数据分别进行与运算得到第三运算结果和第六运算结果;将第一输入数据分别与第二预设数据、第五预设数据和第三预设数据进行与运算得到第八运算结果、第十运算结果和第十二运算结果;将第四输入数据与第六预设数据进行与运算得到第十四运算结果;安全芯片将第一运算结果进行左移第五预设位运算,得到第二运算结果;第三运算结果进行右移第一预设位运算,得到第四运算结果;将第六运算结果进行左移第四预设位运算,得到第七运算结果;第八运算结果进行右移第四预设位运算,得到第九运算结果;将第十运算结果进行右移第一预设位运算,得到第十一运算结果;将第十二运算结果进行右移第四预设位运算,得到第十三运算结果;将第十四运算结果进行右移第四预设位运算,得到第十五运算结果;安全芯片将第二运算结果、第四运算结果、第五运算结果、第七运算结果、第九运算结果、第十一运算结果、第十三运算结果和第十五运算结果进行或运算得到第一输出结果;
步骤d1:安全芯片将第二输入数据分别与第七预设数据、第一预设数据和第六预设数据分别进行与运算得到第十六运算结果、第二十二运算结果、第二十八运算结果;将第一输入数据分别与第八预设数据和第六预设数据进行与运算得到第十八运算结果和第三十运算结果;将第三输入数据分别与第五预设数据、第七预设数据、第三预设数据进行与运算得到第二十运算结果、第二十四运算结果和第二十六运算结果;将第十六运算结果进行左移第六预设为运算得到第十七运算结果;将第二十二运算结果进行右移第二预设为运算得到第二十三运算结果;将第二十八运算结果进行右移第三预设位运算得到第二十九运算结果;将第十八运算结果进行左移第四预设位运算得到第十九运算结果;将第三十运算结果进行右移第四预设位运算得到第三十一运算结果;将第二十运算结果进行左移第二预设位运算得到第二十一运算结果、将第二十四运算结果进行左移第二预设位运算得到第二十五运算结果;将第二十六运算结果进行右移第三预设位运算得到第二十七运算结果;将第十七运算结果、第十九运算结果、第二十一运算结果、第二十五运算结果、第二十七运算结果、第二十九运算结果和第三十一运算结果进行或运算得到第二输出结果;
步骤f1:安全芯片将第四输入数据分别与第一预设数据、第三输入数据分别进行与运算得到第三十二运算结果、第四十运算结果;将第一输入数据分别与第四预设数据、第七预设数据和第一预设数据分别进行与运算得到第三十四运算结果、第三十八运算结果、第四十六运算结果;将第二输入数据分别与第四预设数据和第五预设数据进行与运算得到第三十六运算结果、第四十四运算结果;将第三输入数据和第六预设数据进行与运算得到第四十二运算结果;将第三十二运算结果、第三十四运算结果、第三十六运算结果、第三十八运算结果、第四十运算结果、第四十二运算结果、第四十四运算结果和第四十六运算结果分别进行左移第一预设位、左移第六预设位、左移第五预设位、左移第三预设位、右移第二预设位、右移第二预设位、右移第二预设位、右移第六预设位运算得到三十三运算结果、第三十五运算结果、第三十七运算结果、第三十九运算结果、第四十一运算结果、第四十三运算结果、第四十五运算结果和第四十七运算结果;将三十三运算结果、第三十五运算结果、第三十七运算结果、第三十九运算结果、第四十一运算结果、第四十三运算结果、第四十五运算结果和第四十七运算结果进行或运算得到第三输出结果;
步骤g1:安全芯片将第六输入数据分别与第二预设数据、第七预设数据进行与运算第四十八运算结果和第五十五运算结果;将第七输入数据分别与第六预设数据、第七预设数据进行与运算得到第四十九运算结果和第五十七运算结果;将第四输入数据分别与第七预设数据和第八预设数据进行与运算得到第五十一运算结果、第五十九运算结果;将第五输入数据分别与第五预设数据和第四预设数据进行与运算得到第五十三运算结果和第六十一运算结果;将第四十九运算结果、第五十一运算结果、第五十三运算结果、第五十五运算结果、第五十七运算结果、第五十九运算结果分别进行左移第二预设位、左移第四预设位、左移第一预设位、左移第二预设位、左移第一预设位、右移第一预设位运算得到第五十运算结果、第五十二运算结果、第五十四运算结果、第五十六运算结果、第五十八运算结果和第六十运算结果;将第四十八运算结果、第五十运算结果、第五十二运算结果、第五十四运算结果、第五十六运算结果、第五十八运算结果、第六十运算结果和第六十一运算结果进行或运算得到第四输出结果;
步骤h1:安全芯片将第七输入数据分别与第三预设数据、第二预设数据、第四预设数据进行与运算得到第六十二运算结果、第七十二运算结果和第七十五运算结果;将第六输入数据分别与第五预设数据、第四预设数据、第六预设数据进行与运算得到第六十四运算结果、第六十八运算结果、第七十运算结果;将第五输入数据分别与第二预设数据、第七预设数据进行与运算得到第六十六运算结果和第七十四运算结果;将第六十二运算结果、第六十四运算结果、第六十六运算结果、第六十八运算结果、第七十运算结果和第七十二运算结果分别进行左移第二预设位、左移第三预设位、右移第二预设位、左移第四预设位、右移第一预设位、右移第五预设位得到第六十三运算结果、第六十五运算结果、第六十七运算结果、第六十九运算结果、第七十一运算结果和第七十三运算结果;将第六十三运算结果、第六十五运算结果、第六十七运算结果、第六十九运算结果、第七十一运算结果、第七十三运算结果、第七十四运算结果和第七十五运算结果进行或运算得到第五输出结果;
步骤j1:安全芯片将第五输入数据分别与第一预设数据、第六预设数据进行与运算得到第七十六运算结果、第八十六运算结果;将第七输入数据分别与第五预设数据、第一预设数据进行与运算得到第七十八运算结果、第八十四运算结果;将第六输入数据分别与第八预设数据、第一预设数据进行与运算得到第八十运算结果、第八十二运算结果;将第四输入数据分别与第五预设数据、第四预设数据进行与运算得到第八十八运算结果、第九十运算结果;将第七十六运算结果、第七十八运算结果、第八十运算结果、第八十二运算结果、第八十四运算结果、第八十六运算结果、第八十八运算结果分别进行左移第一预设位、左移第三预设位、左移第三预设位、右移第二预设位、右移第三预设位、右移第二预设位、右移第二预设位运算得到第七十七运算结果、第七十九运算结果、第八十一运算结果、第八十三运算结果、第八十五运算结果、第八十七运算结果、第八十九运算结果;将第七十七运算结果、第七十九运算结果、第八十一运算结果、第八十三运算结果、第八十五运算结果、第八十七运算结果、第八十九运算结果和第九十运算结果进行或运算得到第六输出结果。
本实施例中,第一段输入数据的数据长度为m个字节;第一段输出数据的数据长度为n个字节;第一段输入数据的每个输入数据的数据长度为1个字节;第一段输出数据的中的每个或运算结果的数据长度为1个字节。
本实施例中,步骤s1具体为:安全芯片将第一段输入数据按照预设顺序进行拆分得到m个输入数据;
步骤s3具体为:安全芯片将得到的n个或运算结果按照预设顺序组合成第一段输出数据。
本实施例中提供的一种分组加密算法的高速实现方法中,可以但不限于包括:压缩置换过程、初始化置换过程、密钥置换过程、扩展置换过程和P盒设计过程中的至少一个过程。优选地,至少包括压缩置换过程。
本实施例中,分组加密算法可以但不限于为SM4算法、DES算法。
本实施例中,分组加密算法中的至少一个置换过程(如:压缩置换过程)或至少一个设计过程(如P盒设计过程)采用本实施例中提供的分组加密算法的高速实现方法中的技术方案来实现,和现有技术中相比均会提升的分组加密算法的运行速度。
实施例2
本实施例提供了一种分组加密算法的高速运行方法,本实施例中以安全芯片运行DES算法中的压缩置换过程为例;
压缩置换过程包括:
安全芯片将第一段输入数据顺序拆分得到7个输入数据,将分别与对应的预设数据进行与运算得到与运算结果,再对与运算结果进行相应的预设移位运算得到移位运算结果,按照预设组合将移位运算结果与部分与运算结果分成六组,将每组中的运算结果进行或运算,共计得到6个计算结果,分别为6个输出数据,将6个输入数据组合为第一段输入数据。
如图1-图6所示,压缩置换过程可以具体包括:
步骤101:将第二输入数据与第八预设数据进行与运算得到第一运算结果;
步骤101之前,还包括:安全芯片将第一段输入数据顺序拆分得到7个输入数据:第一输入数据、第二输入数据、第三输入数据、第四输入数据、第五输入数据、第六输入数据和第七输入数据。
本实施例中,第一输入数据、第二输入数据、第三输入数据、第四输入数据、第五输入数据、第六输入数据和第七输入数据的数据长度均为1个字节。
本实施例中,第一输入数据、第一输入数据、第二输入、第三输入数据、第四输入数据、第五输入数据和第六输入数据分别为0x52,0x33,0x56,0xad,0xa5,0x68,0x2f。
本实施例中,第一预设数据为0x40;第二预设数据为0x80;第三预设数据为0x20;第四预设数据为0x01;第五预设数据为0x08;第六预设数据为0x10;第七预设数据为0x02;第八预设数据为0x04;第九预设数据为0x0F;第十预设数据为0xE0;第十一预设数据为0x07;第十二预设数据为0x1E。
例如:将第二输入数据0x33与第一预设数据0x04进行与运算得到第一运算结果0x00;
步骤102:对第一运算结果进行左移第五预设位运算,得到第二运算结果;
具体地,对第一运算结果进行左移五位运算,得到第二运算结果;
例如:对第一运算结果0x00进行左移五位运算,得到第二运算结果0x00。
步骤103:将第三输入数据与第二预设数据进行与运算得到第三运算结果;
例如:将第三输入数据0x56与第二预设数据0x80进行运算得到第三运算结果0x00。
步骤104:将第三运算结果进行右移第一预设位运算,得到第四运算结果;
具体地,将第三运算结果进行右移一位运算,得到第四运算结果;
例如:将第三运算结果进行右移一位运算,得到第四运算结果0x00;
步骤105:将第二输入数据与第三预设数据进行与运算得到第五运算结果;
例如:将第二输入数据0x33与第三预设数据0x20进行与运算得到第五运算结果0x20;
步骤106:将第三输入数据与第四预设数据进行与运算得到第六运算结果;
例如:将第三输入数据0x56与第四预设数据0x01进行与运算得到第六运算结果0x00;
步骤107:将第六运算结果进行左移第四预设位运算,得到第七运算结果;
具体地,将第六运算结果进行左移四位运算,得到第七运算结果;
例如:将第六运算结果0x00进行左移四位运算,得到第七运算结果0x00;
步骤108:将第一输入数据与第二预设数据进行与运算得到第八运算结果;
例如:将第一输入数据0x52与第二预设数据0x80进行与运算得到第八运算结果0x00;
步骤109:将第八运算结果进行右移第四预设位运算,得到第九运算结果;
具体地,将第八运算结果进行右移四位运算,得到第九运算结果;
例如:将第八运算结果0x00进行右移四位运算,得到第九运算结果0x00;
步骤110:将第一输入数据与第五预设数据进行与运算得到第十运算结果;
例如:将第一输入数据0x52与第五预设数据0x08进行与运算得到第十运算结果0x00;
步骤111:将第十运算结果进行右移第一预设位运算,得到十一运算结果;
具体地,将第十运算结果0x00进行右移第一预设位运算,得到十一运算结果0x00;
步骤112:将第一输入数据与第三预设数据进行与运算得到第十二运算结果;
例如:将第一输入数据0x52与第三预设数据0x20进行与运算得到第十二运算结果0x00;
步骤113:将第十二运算结果进行右移第四预设位运算,得到第十三运算结果;
具体地,将第十二运算结果进行右移四位运算,得到第十三运算结果;
例如:将第十二运算结果0x00进行右移四位运算,得到第十三运算结果0x00;
步骤114:将第四输入数据与第六预设数据进行与运算得到第十四运算结果;
例如:将第四输入数据0xad与第六预设数据0x10进行与运算得到第十四运算结果0x00;
步骤115:将第十四运算结果进行右移第四预设位运算,得到第十五运算结果;
具体地,将第十四运算结果进行右移四位运算,得到第十五运算结果;
例如:将第十四运算结果0x00进行右移四位运算,得到第十五运算结果0x00;
步骤116:将第二运算结果、第四运算结果、第五运算结果、第七运算结果、第九运算结果、第十一运算结果、第十三运算结果和第十五运算结果进行或运算得到第一输出结果。
例如:将第二运算结果0x00、第四运算结果0x00、第五运算结果0x20、第七运算结果0x00、第九运算结果0x00、第十一运算结果0x00、第十三运算结果0x00和第十五运算结果0x00进行或运算得到第一输出结果0x20。
步骤117:将第二输入数据与第七预设数据进行与运算得到第十六运算结果;
例如:将第二输入数据0x33与第七预设数据0x02进行与运算得到第十六运算结果0x02;
步骤118:对第十六运算结果进行左移第六预设位运算,得到第十七运算结果;
具体地,对第十六运算结果进行左移六位运算,得到第十七运算结果;
例如:对第十六运算结果0x02进行左移六位运算,得到第十七运算结果0x80;
步骤119:将第一输入数据与第八预设数据进行与运算得到第十八运算结果;
例如:将第一输入数据0x52与第八预设数据0x04进行与运算得到第十八运算结果0x00;
步骤120:将第十八运算结果进行左移第四预设位运算,得到第十九运算结果;
具体地,将第十八运算进行左移四位运算,得到第十九运算结果;
例如:将第十八运算0x00进行左移四位运算,得到第十九运算结果0x00。
步骤121:将第三输入数据与第五预设数据进行与运算得到第二十运算结果;
例如:将第三输入数据0x56与第五预设数据0x08进行与运算得到第二十运算结果0x00;
步骤122:将第二十运算结果进行左移第二预设位运算,得到第二十一运算结果;
具体地,将第二十运算结果进行左移二位运算,得到第二十一运算结果;
例如:将第二十运算结果0x00进行左移二位运算,得到第二十一运算结果0x00;
步骤123:将第二输入数据与第一预设数据进行与运算得到第二十二运算结果;
例如:将第二输入数据0x33与第一预设数据0x40进行与运算得到第二十二运算结果0x00;
步骤124:将第二十二运算结果进行右移第二预设位运算,得到第二十三运算结果;
具体地,将第二十二运算结果进行右移二位运算,得到第二十三运算结果;
例如:将第二十二运算结果0x00进行右移二位运算,得到第二十三运算结果0x00;
步骤125:将第三输入数据与第七预设数据进行与运算得到第二十四运算结果;
例如:将第三输入数据0x56与第七预设数据0x 02进行与运算得到第二十四运算结果0x 02;
步骤126:将第二十四运算结果进行左移第二预设位运算,得到第二十五运算结果;
具体地,将第二十四运算结果进行左移二位运算,得到第二十五运算结果;
具体地,将第二十四运算结果0x02进行左移二位运算,得到第二十五运算结果0x08;
步骤127:将第三输入数据与第三预设数据进行与运算得到第二十六运算结果;
例如:将第三输入数据0x56与第三预设数据0x20进行与运算得到第二十六运算结果0x00;
步骤128:将第二十六运算结果进行右移第三预设位运算,得到第二十七运算结果;
具体地,将第二十六运算进行右移三位运算,得到第二十七运算结果;
例如:将第二十六运算结果0x00进行右移三位运算,得到第二十七运算结果0x00;
步骤129:将第二输入数据与第六预设数据进行与运算得到第二十八运算结果;
例如:将第二输入数据0x33与第六预设数据0x10进行与运算得到第二十八运算结果0x10;
步骤130:将第二十八运算结果进行右移第三预设位运算,得到第二十九运算结果;
具体地,将第二十八运算结果进行右移三位运算,得到第二十九运算结果;
例如:将第二十八运算结果0x10进行右移三位运算,得到第二十九运算结果0x02;
步骤131:将第一输入数据与第六预设数据进行与运算得到第三十运算结果;
例如:将第一输入数据0x52与第六预设数据0x10进行与运算得到第三十运算结果0x10;
步骤132:将第三十运算结果进行右移第四预设位运算,得到第三十一运算结果;
具体地,将第三十运算结果进行右移四位运算,得到第三十一运算结果;
例如:将第三十运算结果0x10进行右移四位运算,得到第三十一运算结果0x01;
步骤133:将第十七运算结果、第十九运算结果、第二十一运算结果、第二十三运算结果、第二十五运算结果、第二十七运算结果、第二十九运算结果和第三十一运算结果进行或运算得到第二输出结果。
例如:将第十七运算结果0x80、第十九运算结果0x00、第二十一运算结果0x00、第二十三运算结果0x00、第二十五运算结果0x08、第二十七运算结果0x00、第二十九运算结果0x02和第三十一运算结果0x01进行或运算得到第二输出结果0x8B。
步骤134:将第四输入数据与第一预设数据进行与运算得到第三十二运算结果;
例如:将第四输入数据0xad与第一预设数据0x40进行与运算得到第三十二运算结果0x00;
步骤135:对第三十二运算结果进行左移第一预设位运算,得到第三十三运算结果;
具体地,对第三十二运算结果进行左移一位运算,得到第三十三运算结果;
例如:对第三十二运算结果0x00进行左移一位运算,得到第三十三运算结果0x00;
步骤136:将第一输入数据与第四预设数据进行与运算得到第三十四运算结果;
例如:将第一输入数据0x52与第四预设数据0x01进行与运算得到第三十四运算结果0x00;
步骤137:将第三十四运算结果进行左移第六预设位运算,得到第三十五运算结果;
具体地,将第三十四运算结果进行左移六位运算,得到第三十五运算结果;
例如:将第三十四运算结果0x00进行左移六位运算,得到第三十五运算结果0x00;
步骤138:将第二输入数据与第四预设数据进行与运算得到第三十六运算结果;
例如:将第二输入数据0x33,与第四预设数据0x01进行与运算得到第三十六运算结果0x01;
步骤139:将第三十六运算结果进行左移第五预设位运算,得到第三十七运算结果;
具体地,将第三十六运算结果进行左移五位运算,得到第三十七运算结果;
例如:将第三十六运算结果0x01进行左移五位运算,得到第三十七运算结果0x20;
步骤140:将第一输入数据与第七预设数据进行与运算得到第三十八运算结果;
例如:将第一输入数据0x52与第七预设数据0x02进行与运算得到第三十八运算结果0x02;
步骤141:将第三十八运算结果进行左移第三预设位运算,得到第三十九运算结果;
具体地,将第三十八运算结果进行左移三位运算,得到第三十九运算结果;
具体地,将第三十八运算结果0x02进行左移三位运算,得到第三十九运算结果0x10;
步骤142:将第四输入数据与第三预设数据进行与运算得到第四十运算结果;
例如:将第四输入数据0xad与第三预设数据0x20进行与运算得到第四十运算结果0x20;
步骤143:将第四十运算结果进行右移第二预设位运算,得到第四十一运算结果;
具体地,将第四十运算结果进行右移二位运算,得到第四十一运算结果;
例如:将第四十运算结果0x20进行右移二位运算,得到第四十一运算结果0x08;
步骤144:将第三输入数据与第六预设数据进行与运算得到第四十二运算结果;
例如:将第三输入数据0x56与第六预设数据0x10进行与运算得到第四十二运算结果0x10;
步骤145:将第四十二运算结果进行右移第二预设位运算,得到第四十三运算结果;
具体地,将第四十二运算进行右移二位运算,得到第四十三运算结果;
例如:将第四十二运算结果0x10进行右移二位运算,得到第四十三运算结果0x04;
步骤146:将第二输入数据与第五预设数据进行与运算得到第四十四运算结果;
例如:将第二输入数据0x33与第五预设数据0x08进行与运算得到第第四十四运算结果0x00;
步骤147:将第四十四运算结果进行右移第二预设位运算,得到第四十五运算结果;
具体地,将第四十四运算结果进行右移二位运算,得到第四十五运算结果;
例如:将第四十四运算0x00结果进行右移二位运算,得到第四十五运算结果0x00;
步骤148:将第一输入数据与第一预设数据进行与运算得到第四十六运算结果;
例如:将第一输入数据0x52与第一预设数据0x40进行与运算得到第四十六运算结果0x40;
步骤149:将第四十六运算结果进行右移第六预设位运算,得到第四十七运算结果;
具体地,将第四十六运算结果进行右移六位运算,得到第四十七运算结果;
例如:将第四十六运算结果0x40进行右移六位运算,得到第四十七运算结果0x01;
步骤150:将三十三运算结果0x00、第三十五运算结果0x00、第三十七运算结果0x20、第三十九运算结果0x10、第四十一运算结果0x08、第四十三运算结果0x04、第四十五运算结果0x00和第四十七运算结果0x01进行或运算得到第三输出结果0x3D。
步骤151:将第六输入数据与第二预设数据进行与运算得到第四十八运算结果;
例如:将第六输入数据0x68与第二预设数据0x80进行与运算得到第四十八运算结果0x00;
步骤152:将第七输入数据与第六预设数据进行与运算得到第四十九运算结果;
例如:将第七输入数据0x2f与第六预设数据0x10进行与运算得到第四十九运算结果0x00;
步骤153:将第四十九运算结果进行左移第二预设位运算,得到第五十运算结果;
具体地,将第四十九运算结果进行左移二位运算,得到第五十运算结果;
例如:将第四十九运算结果0x00进行左移二位运算,得到第五十运算结果0x00;
步骤154:将第四输入数据与第七预设数据进行与运算得到第五十一运算结果;
例如:将第四输入数据0xad与第七预设数据0x02进行与运算得到第五十一运算结果0x00;
步骤155:将第五十一运算结果进行左移第四预设位运算,得到第五十二运算结果;
具体地,将第五十一运算结果进行左移四位运算,得到第五十二运算结果0x00;
步骤156:将第五输入数据与第五预设数据进行与运算得到第五十三运算结果;
例如:将第五输入数据0xa5与第五预设数据0x08进行与运算得到第五十三运算结果0x00;
步骤157:将第五十三运算结果进行左移第一预设位运算,得到第五十四运算结果;
具体地,将第五十三运算结果进行左移一位运算,得到第五十四运算结果;
例如:将第五十三运算结果0x00进行左移一位运算,得到第五十四运算结果0x00;
步骤158:将第六输入数据与第七预设数据进行与运算得到第五十五运算结果;
例如:将第六输入数据0x68与第七预设数据0x02进行与运算得到第五十五运算结果0x00;
步骤159:将第五十五运算结果进行左移第二预设位运算,得到第五十六运算结果;
具体地,将第五十五运算结果进行左移二位运算,得到第五十六运算结果;
例如,将第五十五运算结果0x00进行左移第二预设位运算,得到第五十六运算结果0x00;
步骤160:将第七输入数据与第七预设数据进行与运算得到第五十七运算结果;
例如:将第七输入数据0x2f与第七预设数据0x02进行与运算得到第五十七运算结果0x02;
步骤161:将第五十七运算结果进行左移第一预设位运算,得到第五十八运算结果;
具体地,将第五十七运算结果进行左移第一预设位运算,得到第五十八运算结果;
具体地,将第五十七运算结果0x02进行左移第一预设位运算,得到第五十八运算结果0x04;
步骤162:将第四输入数据与第八预设数据进行与运算得到第五十九运算结果;
例如:将第四输入数据0xad与第八预设数据0x04进行与运算得到第五十九运算结果0x04;
步骤163:将第五十九运算结果进行右移第一预设位运算,得到第六十运算结果;
具体地,将第五十九运算结果进行右移一位运算,得到第六十运算结果;
例如:将第五十九运算结果0x04进行右移一位运算,得到第六十运算结果0x02;
步骤164:将第五输入数据与第四预设数据进行与运算得到第六十一运算结果;
例如:将第五输入数据0xa5,与第四预设数据0x01进行与运算得到第六十一运算结果0x01;
步骤165:将四十八运算结果、第五十运算结果、第五十二运算结果、第五十四运算结果、第五十六运算结果、第五十八运算结果、第六十运算结果和第六十一运算结果进行或运算得到第四输出结果。
例如:将四十八运算结果0x00、第五十运算结果0x00、第五十二运算结果0x00、第五十四运算结果0x00、第五十六运算结果0x00、第五十八运算结果0x04、第六十运算结果0x02和第六十一运算结果0x01进行或运算得到第四输出结果0x07。
步骤166:将第七输入数据与第三预设数据进行与运算得到第六十二运算结果;
例如:将第七输入数据0x2f与第三预设数据0x20进行与运算得到第六十二运算结果0x20;
步骤167:将第六十二运算结果进行左移第二预设位运算,得到第六十三运算结果;
具体地,将第六十二运算结果进行左移二位运算,得到第六十三运算结果;
例如:将第六十二运算结果0x20进行左移二位运算,得到第六十三运算结果0x80;
步骤168:将第六输入数据与第五预设数据进行与运算得到第六十四运算结果;
例如:将第六输入数据0x68,与第五预设数据0x08进行与运算得到第六十四运算结果0x08;
步骤169:将第六十四运算结果进行左移第三预设位运算,得到第六十五运算结果;
具体地,将第六十四运算结果进行左三位运算,得到第六十五运算结果;
具体地,将第六十四运算结果0x08进行左三位运算,得到第六十五运算结果0x40;
步骤170:将第五输入数据与第二预设数据进行与运算得到第六十六运算结果;
例如:将第五输入数据0xa5,与第二预设数据0x80进行与运算得到第六十六运算结果0x80;
步骤171:将第六十六运算结果进行右移第二预设位运算,得到第六十七运算结果;
具体地,将第六十六运算结果进行右移二位运算,得到第六十七运算结果;
例如:将第六十六运算结果0x80进行右移二位运算,得到第六十七运算结果0x20;
步骤172:将第六输入数据与第四预设数据进行与运算得到第六十八运算结果;
例如:将第六输入数据0x68与第四预设数据0x01进行与运算得到第六十八运算结果0x00;
步骤173:将第六十八运算结果进行左移第四预设位运算,得到第六十九运算结果;
具体地,将第六十八运算结果进行左移四位运算,得到第六十九运算结果;
例如:将第六十八运算结果0x00进行左移四位运算,得到第六十九运算结果0x00;
步骤174:将第六输入数据与第六预设数据进行与运算得到第七十运算结果;
例如:将第六输入数据0x68与第六预设数据0x10进行与运算得到第七十运算结果0x00;
步骤175:将第七十运算结果进行右移第一预设位运算,得到第七十一运算结果;
具体的,将第七十运算结果进行右移一位运算,得到第七十一运算结果;
例如:将第七十运算结果0x00进行右移一位运算,得到第七十一运算结果0x00;
步骤176:将第七输入数据与第二预设数据进行与运算得到第七十二运算结果;
例如:将第七输入数据0x2f与第二预设数据0x80进行与运算得到第七十二运算结果0x00;
步骤177:将第七十二运算结果进行右移第五预设位运算,得到第七十三运算结果;
具体地,将第七十二运算结果进行右移五位运算,得到第七十三运算结果;
例如:将第七十二运算结果0x00进行右移五位运算,得到第七十三运算结果0x00;
步骤178:将第五输入数据与第七预设数据进行与运算得到第七十四运算结果;
例如:将第五输入数据0x a5与第七预设数据0x02进行与运算得到第七十四运算结果0x00;
步骤179:将第七输入数据与第四预设数据进行与运算得到第七十五运算结果;
例如:将第七输入数据0x2f与第四预设数据0x01进行与运算得到第七十五运算结果0x01;
步骤180:将六十三运算结果、第六十五运算结果、第六十七运算结果0x20、第六十九运算结果、第七十一运算结果、第七十三运算结果、第七十四运算结果和第七十五运算结果进行或运算得到第五输出结果。
例如:将六十三运算结果0x80、第六十五运算结果0x40、第六十七运算结果0x20、第六十九运算结果0x00、第七十一运算结果0x00、第七十三运算结果0x00、第七十四运算结果0x00和第七十五运算结果0x01进行或运算得到第五输出结果0xE1。
步骤181:将第五输入数据与第一预设数据进行与运算得到第七十六运算结果;
例如:将第五输入数据0xa5与第一预设数据0x40进行与运算得到第七十六运算结果0x00;
步骤182:将第七十六运算结果进行左移第一预设位运算,得到第七十七运算结果;
具体地,将第七十六运算结果进行左移一位运算,得到第七十七运算结果;
将第七十六运算结果进行左移一位运算,得到第七十七运算结果;
例如:将第七十六运算结果0x00进行左移一位运算,得到第七十七运算结果0x00;
步骤183:将第七输入数据与第五预设数据进行与运算得到第七十八运算结果;
例如:将第七输入数据0x2f与第五预设数据0x08进行与运算得到第七十八运算结果0x08;
步骤184:将第七十八运算进行左移第三预设位运算,得到第七十九运算结果;
具体地,将第七十八运算结果进行左移三位运算,得到第七十九运算结果;
例如:将第七十八运算结果0x08进行左移三位运算,得到第七十九运算结果0x40;
步骤185:将第六输入数据与第八预设数据进行与运算得到第八十运算结果;
例如:将第六输入数据0x68与第八预设数据0x04进行与运算得到第八十运算结果0x00;
步骤186:将第八十运算结果进行左移第三预设位运算,得到第八十一运算结果;
具体地,将第八十运算结果进行左移三位运算,得到第八十一运算结果;
例如:将第八十运算结果0x00进行左移三位运算,得到第八十一运算结果0x00;
步骤187:将第六输入数据与第一预设数据进行与运算得到第八十二运算结果;
例如:将第六输入数据0x68与第一预设数据0x40进行与运算得到第八十二运算结果0x40;
步骤188:将第八十二运算结果进行右移第二预设位运算,得到第八十三运算结果;
具体地,将第八十二运算结果进行右移二位运算,得到第八十三运算结果;
例如:将第八十二运算结果0x40进行右移二位运算,得到第八十三运算结果0x10;
步骤189:将第七输入数据与第一预设数据进行与运算得到第八十四运算结果;
例如:将第七输入数据0x2f与第一预设数据0x40进行与运算得到第八十四运算结果0x00;
步骤190:将第八十四运算结果进行右移第三预设位运算,得到第八十五运算结果;
具体地,将第八十四运算结果进行右移三位运算,得到第八十五运算结果;
例如:将第八十四运算结果0x00进行右移三位运算,得到第八十五运算结果0x00;
步骤191:将第五输入数据与第六预设数据进行与运算得到第八十六运算结果;
例如:将第五输入数据0xa5与第六预设数据0x10进行与运算得到第八十六运算结果0x00;
步骤192:将第八十六运算结果进行右移第二预设位运算,得到第八十七运算结果;
具体地,将第八十六运算结果进行右移二位运算,得到第八十七运算结果;
例如:将第八十六运算结果0x00进行右移二位运算,得到第八十七运算结果0x00;
步骤193:将第四输入数据与第五预设数据进行与运算得到第八十八运算结果;
例如:将第四输入数据0xad与第五预设数据0x08进行与运算得到第八十八运算结果0x08;
步骤194:将第八十八运算结果进行右移第二预设位运算,得到第八十九运算结果;
具体地,将第八十八运算结果进行右移二位运算,得到第八十九运算结果;
例如:将第八十八运算结果0x08进行右移二位运算,得到第八十九运算结果0x02;
步骤195:将第四输入数据与第四预设数据进行与运算得到第九十运算结果;
例如:将第四输入数据0xad与第四预设数据0x01进行与运算得到第九十运算结果0x01;
步骤196:将七十七运算结果、第七十九运算结果、第八十一运算结果、第八十三运算结果、第八十五运算结果、第八十七运算结果、第八十九运算结果和第九十运算结果进行或运算得到第六输出结果。
例如:将七十七运算结果0x00、第七十九运算结果0x40、第八十一运算结果0x00、第八十三运算结果0x10、第八十五运算结果0x00、第八十七运算结果0x00、第八十九运算结果0x02和第九十运算结果0x01进行或运算得到第六输出结果0x53。
步骤196之后还包括:安全芯片将第一输出结果、第二输出结果、第三输出结果、第四输出结果、第五输出结果和第六输出结果顺序拼接得到第一输出数据。
实施例3
一种分组加密算法的高速运行装置,如图7所示,包括:第一拆分模块11、第一运算模块12和第一组合模块13;
第一拆分模块11,用于将第一段输入数据进行拆分得到m个输入数据;
第一运算模块12,用于将第一拆分模块11得到的每个输入数据分别与各自相匹配的预设数据进行与运算得到多个与运算结果;对多个与运算结果中的全部或者部分进行预设移位运算得到多个移位运算结果;按照预设组合将多个移位运算结果与部分与运算结果分成n组,将每组中的所有运算结果进行或运算得到1个或运算结果,共计得到n个或运算结果;
第一组合模块13,用于将第一运算模块12得到的n个或运算结果组合成第一段输出数据;
m为正整数,n为正整数。
本实施例中,第一运算模块12包括:
第一分组子模块,用于将按照预设规则将第一拆分模块11得到的m个输入数据分成n组输入数据;
第一运算子模块,用于以每组输入数据为单位将每组输入数据中的各个输入数据分别与各自相匹配的预设数据进行与运算得到多个与运算结果;对多个与运算结果中的全部或者部分进行预设移位运算得到多个移位运算结果;若对多个与运算结果中的全部进行预设移位运算得到多个移位运算结果,则将多个移位运算结果进行或运算得到1个或运算结果;若对多个与运算结果中的部分进行预设移位运算得到多个移位运算结果,则将多个移位运算结果与未进行移位运算的与运算结果进行或运算得到1个或运算结果;共计得到n个或运算结果。
进一步地,第一运算子模块,具体用于以每组输入数据为单位并行或串行将每组输入数据中的各个输入数据分别与各自相匹配的预设数据进行与运算得到多个与运算结果;对多个与运算结果中的全部或者部分进行预设移位运算得到多个移位运算结果;若对多个与运算结果中的全部进行预设移位运算得到多个移位运算结果,则将多个移位运算结果进行或运算得到1个或运算结果;若对多个与运算结果中的部分进行预设移位运算得到多个移位运算结果,则将多个移位运算结果与未进行移位运算的与运算结果进行或运算得到1个或运算结果;共计得到n个或运算结果。
更进一步地,m等于7;n等于6;
第一拆分模块11,具体用于将第一段输入数据进行拆分得到第一输入数据、第二输入数据、第三输入数据、第四输入数据、第五输入数据、第六输入数据和第七输入数据;
第一分组子模块,具体用于将按照预设规则将第一拆分模块11得到的7个输入数据分成6组输入数据;
6组输入数据包括:第一组输入数据、第二组输入数据、第三组输入数据、第四组输入数据、第五组输入数据和第六组输入数据;
第一组输入数据包括:第二输入数据、第一输入数据、第三输入数据和第四输入数据;
第二组输入数据包括:第二输入数据、第一输入数据和第三输入数据;
第三组输入数据包括:第二输入数据、第一输入数据、第三输入数据和第四输入数据;
第四组输入数据包括:第四输入数据、第五输入数据、第六输入数据和第七输入数据;
第五组输入数据包括:第五输入数据、第六输入数据和第七输入数据;
第六输入数据包括:第四输入数据、第五输入数据、第六输入数据和第七输入数据。
再进一步地,第一运算子模块包括:第一运算单元、第二运算单元、第三运算单元、第四运算单元、第五运算单元和第六运算单元;
第一运算单元,用于将第二输入数据分别与第八预设数据和第三输入数据进行与运算得到第一运算结果和第五运算结果;将第三输入数据与第二预设数据和第四预设数据分别进行与运算得到第三运算结果和第六运算结果;将第一输入数据分别与第二预设数据、第五预设数据和第三预设数据进行与运算得到第八运算结果、第十运算结果和第十二运算结果;将第四输入数据与第六预设数据进行与运算得到第十四运算结果;安全芯片将第一运算结果进行左移第五预设位运算,得到第二运算结果;第三运算结果进行右移第一预设位运算,得到第四运算结果;将第六运算结果进行左移第四预设位运算,得到第七运算结果;第八运算结果进行右移第四预设位运算,得到第九运算结果;将第十运算结果进行右移第一预设位运算,得到第十一运算结果;将第十二运算结果进行右移第四预设位运算,得到第十三运算结果;将第十四运算结果进行右移第四预设位运算,得到第十五运算结果;安全芯片将第二运算结果、第四运算结果、第五运算结果、第七运算结果、第九运算结果、第十一运算结果、第十三运算结果和第十五运算结果进行或运算得到第一输出结果;
第二运算单元,用于第二输入数据分别与第七预设数据、第一预设数据和第六预设数据分别进行与运算得到第十六运算结果、第二十二运算结果、第二十八运算结果;将第一输入数据分别与第八预设数据和第六预设数据进行与运算得到第十八运算结果和第三十运算结果;将第三输入数据分别与第五预设数据、第七预设数据、第三预设数据进行与运算得到第二十运算结果、第二十四运算结果和第二十六运算结果;将第十六运算结果进行左移第六预设为运算得到第十七运算结果;将第二十二运算结果进行右移第二预设为运算得到第二十三运算结果;将第二十八运算结果进行右移第三预设位运算得到第二十九运算结果;将第十八运算结果进行左移第四预设位运算得到第十九运算结果;将第三十运算结果进行右移第四预设位运算得到第三十一运算结果;将第二十运算结果进行左移第二预设位运算得到第二十一运算结果、将第二十四运算结果进行左移第二预设位运算得到第二十五运算结果;将第二十六运算结果进行右移第三预设位运算得到第二十七运算结果;将第十七运算结果、第十九运算结果、第二十一运算结果、第二十五运算结果、第二十七运算结果、第二十九运算结果和第三十一运算结果进行或运算得到第二输出结果;
第三运算单元,用于将第四输入数据分别与第一预设数据、第三输入数据分别进行与运算得到第三十二运算结果、第四十运算结果;将第一输入数据分别与第四预设数据、第七预设数据和第一预设数据分别进行与运算得到第三十四运算结果、第三十八运算结果、第四十六运算结果;将第二输入数据分别与第四预设数据和第五预设数据进行与运算得到第三十六运算结果、第四十四运算结果;将第三输入数据和第六预设数据进行与运算得到第四十二运算结果;将第三十二运算结果、第三十四运算结果、第三十六运算结果、第三十八运算结果、第四十运算结果、第四十二运算结果、第四十四运算结果和第四十六运算结果分别进行左移第一预设位、左移第六预设位、左移第五预设位、左移第三预设位、右移第二预设位、右移第二预设位、右移第二预设位、右移第六预设位运算得到三十三运算结果、第三十五运算结果、第三十七运算结果、第三十九运算结果、第四十一运算结果、第四十三运算结果、第四十五运算结果和第四十七运算结果;将三十三运算结果、第三十五运算结果、第三十七运算结果、第三十九运算结果、第四十一运算结果、第四十三运算结果、第四十五运算结果和第四十七运算结果进行或运算得到第三输出结果;
第四运算单元,用于将第六输入数据分别与第二预设数据、第七预设数据进行与运算第四十八运算结果和第五十五运算结果;将第七输入数据分别与第六预设数据、第七预设数据进行与运算得到第四十九运算结果和第五十七运算结果;将第四输入数据分别与第七预设数据和第八预设数据进行与运算得到第五十一运算结果、第五十九运算结果;将第五输入数据分别与第五预设数据和第四预设数据进行与运算得到第五十三运算结果和第六十一运算结果;将第四十九运算结果、第五十一运算结果、第五十三运算结果、第五十五运算结果、第五十七运算结果、第五十九运算结果分别进行左移第二预设位、左移第四预设位、左移第一预设位、左移第二预设位、左移第一预设位、右移第一预设位运算得到第五十运算结果、第五十二运算结果、第五十四运算结果、第五十六运算结果、第五十八运算结果和第六十运算结果;将第四十八运算结果、第五十运算结果、第五十二运算结果、第五十四运算结果、第五十六运算结果、第五十八运算结果、第六十运算结果和第六十一运算结果进行或运算得到第四输出结果;
第五运算单元,用于将第七输入数据分别与第三预设数据、第二预设数据、第四预设数据进行与运算得到第六十二运算结果、第七十二运算结果和第七十五运算结果;将第六输入数据分别与第五预设数据、第四预设数据、第六预设数据进行与运算得到第六十四运算结果、第六十八运算结果、第七十运算结果;将第五输入数据分别与第二预设数据、第七预设数据进行与运算得到第六十六运算结果和第七十四运算结果;将第六十二运算结果、第六十四运算结果、第六十六运算结果、第六十八运算结果、第七十运算结果和第七十二运算结果分别进行左移第二预设位、左移第三预设位、右移第二预设位、左移第四预设位、右移第一预设位、右移第五预设位得到第六十三运算结果、第六十五运算结果、第六十七运算结果、第六十九运算结果、第七十一运算结果和第七十三运算结果;将第六十三运算结果、第六十五运算结果、第六十七运算结果、第六十九运算结果、第七十一运算结果、第七十三运算结果、第七十四运算结果和第七十五运算结果进行或运算得到第五输出结果;
第六运算单元,用于将第五输入数据分别与第一预设数据、第六预设数据进行与运算得到第七十六运算结果、第八十六运算结果;将第七输入数据分别与第五预设数据、第一预设数据进行与运算得到第七十八运算结果、第八十四运算结果;将第六输入数据分别与第八预设数据、第一预设数据进行与运算得到第八十运算结果、第八十二运算结果;将第四输入数据分别与第五预设数据、第四预设数据进行与运算得到第八十八运算结果、第九十运算结果;将第七十六运算结果、第七十八运算结果、第八十运算结果、第八十二运算结果、第八十四运算结果、第八十六运算结果、第八十八运算结果分别进行左移第一预设位、左移第三预设位、左移第三预设位、右移第二预设位、右移第三预设位、右移第二预设位、右移第二预设位运算得到第七十七运算结果、第七十九运算结果、第八十一运算结果、第八十三运算结果、第八十五运算结果、第八十七运算结果、第八十九运算结果;将第七十七运算结果、第七十九运算结果、第八十一运算结果、第八十三运算结果、第八十五运算结果、第八十七运算结果、第八十九运算结果和第九十运算结果进行或运算得到第六输出结果。
本实施例中,第一段输入数据的数据长度为m个字节;第一段输出数据的数据长度为n个字节;每个输入数据的数据长度为1个字节;每个或运算结果的数据长度为1个字节。
本实施例中,第一拆分模块11,具体用于将第一段输入数据按照预设顺序进行拆分得到m个输入数据;
第一组合模块13,具体用于将第一运算模块12得到的n个或运算结果按照预设顺序组合成第一段输出数据。
本实施例中提供的高速运行装置,用于运行置换过程、初始化置换过程、密钥置换过程、扩展置换过程和P盒设计过程中的至少一个过程。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (14)

1.一种分组加密算法的高速运行方法,其特征在于,包括:
步骤s1:安全芯片将第一段输入数据进行拆分得到m个输入数据
步骤s2:所述安全芯片将每个输入数据分别与各自相匹配的预设数据进行与运算得到多个与运算结果;对所述多个与运算结果中的全部或者部分进行预设移位运算得到多个移位运算结果;
所述安全芯片按照预设组合将所述多个移位运算结果与部分与运算结果分成n组,将每组中的所有运算结果进行或运算得到1个或运算结果,共计得到n个或运算结果;
步骤s3:所述安全芯片将得到的n个或运算结果组合成第一段输出数据;
所述m为正整数,所述n为正整数;
所述步骤s2具体为:
步骤s2-1:所述安全芯片按照预设规则将所述m个输入数据分成n组输入数据; 所述安全芯片以每组输入数据为单位执行步骤s2-2;
步骤s2-2:所述安全芯片将每组输入数据中的各个输入数据分别与各自相匹配的预设数据进行与运算得到多个与运算结果;对所述多个与运算结果中的全部或者部分进行预设移位运算得到多个移位运算结果;
若对所述多个与运算结果中的全部进行预设移位运算得到多个移位运算结果,则将多个移位运算结果进行或运算得到1个或运算结果;若对所述多个与运算结果中的部分进行预设移位运算得到多个移位运算结果,则将多个移位运算结果与未进行移位运算的与运算结果进行或运算得到1个或运算结果;
步骤s2-3:当所述安全芯片将各组输入数据均执行完步骤s2-2的操作后,得到n个或运算结果。
2.根据权利要求1所述的方法,其特征在于,所述安全芯片以每组输入数据为单位执行步骤s2-2,具体为:所述安全芯片以每组输入数据为单位并行或串行执行步骤s2-2。
3.根据权利要求2所述的方法,其特征在于,
所述m等于7;所述n等于6;
所述步骤s1具体为:所述安全芯片将第一段输入数据进行拆分得到第一输入数据、第二输入数据、第三输入数据、第四输入数据、第五输入数据、第六输入数据和第七输入数据;
所述安全芯片按照预设规则将所述m个输入数据分成n组输入数据,具体为:所述安全芯片按照预设规则将所述7个输入数据分成6组输入数据;所述6组输入数据包括:第一组输入数据、第二组输入数据、第三组输入数据、第四组输入数据、第五组输入数据和第六组输入数据;
所述第一组输入数据包括:第二输入数据、第一输入数据、第三输入数据和第四输入数据;
所述第二组输入数据包括:第二输入数据、第一输入数据和第三输入数据;
所述第三组输入数据包括:第二输入数据、第一输入数据、第三输入数据和第四输入数据;
所述第四组输入数据包括:第四输入数据、第五输入数据、第六输入数据和第七输入数据;
所述第五组输入数据包括:第五输入数据、第六输入数据和第七输入数据;
所述第六输入数据包括:第四输入数据、第五输入数据、第六输入数据和第七输入数据。
4.根据权利要求3所述的方法,其特征在于,所述步骤s2-2具体包括:
步骤c1:所述安全芯片将第二输入数据分别与第八预设数据和第三输入数据进行与运算得到第一运算结果和第五运算结果;将第三输入数据与第二预设数据和第四预设数据分别进行与运算得到第三运算结果和第六运算结果;将第一输入数据分别与第二预设数据、第五预设数据和第三预设数据进行与运算得到第八运算结果、第十运算结果和第十二运算结果;将第四输入数据与第六预设数据进行与运算得到第十四运算结果;所述安全芯片将第一运算结果进行左移第五预设位运算,得到第二运算结果;第三运算结果进行右移第一预设位运算,得到第四运算结果;将第六运算结果进行左移第四预设位运算,得到第七运算结果;第八运算结果进行右移第四预设位运算,得到第九运算结果;将第十运算结果进行右移第一预设位运算,得到第十一运算结果;将第十二运算结果进行右移第四预设位运算,得到第十三运算结果;将第十四运算结果进行右移第四预设位运算,得到第十五运算结果;所述安全芯片将所述第二运算结果、所述第四运算结果、所述第五运算结果、所述第七运算结果、所述第九运算结果、所述第十一运算结果、所述第十三运算结果和所述第十五运算结果进行或运算得到第一输出结果;
步骤d1:所述安全芯片将第二输入数据分别与第七预设数据、第一预设数据和第六预设数据分别进行与运算得到第十六运算结果、第二十二运算结果、第二十八运算结果;将第一输入数据分别与第八预设数据和第六预设数据进行与运算得到第十八运算结果和第三十运算结果;将第三输入数据分别与第五预设数据、第七预设数据、第三预设数据进行与运算得到第二十运算结果、第二十四运算结果和第二十六运算结果;将第十六运算结果进行左移第六预设为运算得到第十七运算结果;将所述第二十二运算结果进行右移第二预设为运算得到第二十三运算结果;将所述第二十八运算结果进行右移第三预设位运算得到第二十九运算结果;将所述第十八运算结果进行左移第四预设位运算得到第十九运算结果;将第三十运算结果进行右移第四预设位运算得到第三十一运算结果;将第二十运算结果进行左移第二预设位运算得到第二十一运算结果、将第二十四运算结果进行左移第二预设位运算得到第二十五运算结果;将第二十六运算结果进行右移第三预设位运算得到第二十七运算结果;将所述第十七运算结果、所述第十九运算结果、所述第二十一运算结果、所述第二十五运算结果、所述第二十七运算结果、所述第二十九运算结果和所述第三十一运算结果进行或运算得到第二输出结果;
步骤f1:所述安全芯片将第四输入数据分别与第一预设数据、第三输入数据分别进行与运算得到第三十二运算结果、第四十运算结果;将第一输入数据分别与第四预设数据、第七预设数据和第一预设数据分别进行与运算得到第三十四运算结果、第三十八运算结果、第四十六运算结果;将第二输入数据分别与第四预设数据和第五预设数据进行与运算得到第三十六运算结果、第四十四运算结果;将第三输入数据和第六预设数据进行与运算得到第四十二运算结果;将第三十二运算结果、第三十四运算结果、第三十六运算结果、第三十八运算结果、第四十运算结果、第四十二运算结果、第四十四运算结果和第四十六运算结果分别进行左移第一预设位、左移第六预设位、左移第五预设位、左移第三预设位、右移第二预设位、右移第二预设位、右移第二预设位、右移第六预设位运算得到三十三运算结果、第三十五运算结果、第三十七运算结果、第三十九运算结果、第四十一运算结果、第四十三运算结果、第四十五运算结果和第四十七运算结果;将三十三运算结果、第三十五运算结果、第三十七运算结果、第三十九运算结果、第四十一运算结果、第四十三运算结果、第四十五运算结果和第四十七运算结果进行或运算得到第三输出结果;
步骤g1:所述安全芯片将第六输入数据分别与第二预设数据、第七预设数据进行与运算第四十八运算结果和第五十五运算结果;将第七输入数据分别与第六预设数据、第七预设数据进行与运算得到第四十九运算结果和第五十七运算结果;将第四输入数据分别与第七预设数据和第八预设数据进行与运算得到第五十一运算结果、第五十九运算结果;将第五输入数据分别与第五预设数据和第四预设数据进行与运算得到第五十三运算结果和第六十一运算结果;将第四十九运算结果、第五十一运算结果、第五十三运算结果、第五十五运算结果、第五十七运算结果、第五十九运算结果分别进行左移第二预设位、左移第四预设位、左移第一预设位、左移第二预设位、左移第一预设位、右移第一预设位运算得到第五十运算结果、第五十二运算结果、第五十四运算结果、第五十六运算结果、第五十八运算结果和第六十运算结果;将第四十八运算结果、第五十运算结果、第五十二运算结果、第五十四运算结果、第五十六运算结果、第五十八运算结果、第六十运算结果和第六十一运算结果进行或运算得到第四输出结果;
步骤h1:所述安全芯片将第七输入数据分别与第三预设数据、第二预设数据、第四预设数据进行与运算得到第六十二运算结果、第七十二运算结果和第七十五运算结果;将第六输入数据分别与第五预设数据、第四预设数据、第六预设数据进行与运算得到第六十四运算结果、第六十八运算结果、第七十运算结果;将第五输入数据分别与第二预设数据、第七预设数据进行与运算得到第六十六运算结果和第七十四运算结果;将第六十二运算结果、第六十四运算结果、第六十六运算结果、第六十八运算结果、第七十运算结果和第七十二运算结果分别进行左移第二预设位、左移第三预设位、右移第二预设位、左移第四预设位、右移第一预设位、右移第五预设位得到第六十三运算结果、第六十五运算结果、第六十七运算结果、第六十九运算结果、第七十一运算结果和第七十三运算结果;将第六十三运算结果、第六十五运算结果、第六十七运算结果、第六十九运算结果、第七十一运算结果、第七十三运算结果、第七十四运算结果和第七十五运算结果进行或运算得到第五输出结果;
步骤j1:所述安全芯片将第五输入数据分别与第一预设数据、第六预设数据进行与运算得到第七十六运算结果、第八十六运算结果;将第七输入数据分别与第五预设数据、第一预设数据进行与运算得到第七十八运算结果、第八十四运算结果;将第六输入数据分别与第八预设数据、第一预设数据进行与运算得到第八十运算结果、第八十二运算结果;将第四输入数据分别与第五预设数据、第四预设数据进行与运算得到第八十八运算结果、第九十运算结果;将第七十六运算结果、第七十八运算结果、第八十运算结果、第八十二运算结果、第八十四运算结果、第八十六运算结果、第八十八运算结果分别进行左移第一预设位、左移第三预设位、左移第三预设位、右移第二预设位、右移第三预设位、右移第二预设位、右移第二预设位运算得到第七十七运算结果、第七十九运算结果、第八十一运算结果、第八十三运算结果、第八十五运算结果、第八十七运算结果、第八十九运算结果;将第七十七运算结果、第七十九运算结果、第八十一运算结果、第八十三运算结果、第八十五运算结果、第八十七运算结果、第八十九运算结果和第九十运算结果进行或运算得到第六输出结果。
5.根据权利要求1所述的方法,其特征在于,所述第一段输入数据的数据长度为m个字节;所述第一段输出数据的数据长度为n个字节;每个输入数据的数据长度为1个字节;每个或运算结果的数据长度为1个字节。
6.根据权利要求1所述的方法,其特征在于,所述步骤s1具体为:所述安全芯片将第一段输入数据按照预设顺序进行拆分得到m个输入数据;
所述步骤s3具体为:所述安全芯片将得到的n个或运算结果按照预设顺序组合成第一段输出数据。
7.根据权利要求1所述的方法,其特征在于,所述方法包括:置换过程、初始化置换过程、密钥置换过程、扩展置换过程和P盒设计过程中的至少一个过程。
8.一种分组加密算法的高速运行装置,其特征在于,包括:第一拆分模块、第一运算模块和第一组合模块;
所述第一拆分模块,用于将第一段输入数据进行拆分得到m个输入数据;
所述第一运算模块,用于将所述第一拆分模块得到的每个输入数据分别与各自相匹配的预设数据进行与运算得到多个与运算结果;对所述多个与运算结果中的全部或者部分进行预设移位运算得到多个移位运算结果;按照预设组合将所述多个移位运算结果与部分与运算结果分成n组,将每组中的所有运算结果进行或运算得到1个或运算结果,共计得到n个或运算结果;
所述第一组合模块,用于将所述第一运算模块得到的n个或运算结果组合成第一段输出数据;
所述m为正整数,所述n为正整数;
所述第一运算模块包括:
第一分组子模块,用于将按照预设规则将所述第一拆分模块得到的m个输入数据分成n组输入数据;
第一运算子模块,用于以每组输入数据为单位将每组输入数据中的各个输入数据分别与各自相匹配的预设数据进行与运算得到多个与运算结果;对所述多个与运算结果中的全部或者部分进行预设移位运算得到多个移位运算结果;若对所述多个与运算结果中的全部进行预设移位运算得到多个移位运算结果,则将多个移位运算结果进行或运算得到1个或运算结果;若对所述多个与运算结果中的部分进行预设移位运算得到多个移位运算结果,则将多个移位运算结果与未进行移位运算的与运算结果进行或运算得到1个或运算结果;共计得到n个或运算结果。
9.根据权利要求8所述的高速运行装置,其特征在于,第一运算子模块,具体用于以每组输入数据为单位并行或串行将每组输入数据中的各个输入数据分别与各自相匹配的预设数据进行与运算得到多个与运算结果;对所述多个与运算结果中的全部或者部分进行预设移位运算得到多个移位运算结果;若对所述多个与运算结果中的全部进行预设移位运算得到多个移位运算结果,则将多个移位运算结果进行或运算得到1个或运算结果。
10.根据权利要求9所述的高速运行装置,其特征在于,所述m等于7;所述n等于6;
所述第一拆分模块,具体用于将第一段输入数据进行拆分得到第一输入数据、第二输入数据、第三输入数据、第四输入数据、第五输入数据、第六输入数据和第七输入数据;
所述第一分组子模块,具体用于将按照预设规则将所述第一拆分模块得到的7个输入数据分成6组输入数据;
所述6组输入数据包括:第一组输入数据、第二组输入数据、第三组输入数据、第四组输入数据、第五组输入数据和第六组输入数据;
所述第一组输入数据包括:第二输入数据、第一输入数据、第三输入数据和第四输入数据;
所述第二组输入数据包括:第二输入数据、第一输入数据和第三输入数据;
所述第三组输入数据包括:第二输入数据、第一输入数据、第三输入数据和第四输入数据;
所述第四组输入数据包括:第四输入数据、第五输入数据、第六输入数据和第七输入数据;
所述第五组输入数据包括:第五输入数据、第六输入数据和第七输入数据;
所述第六输入数据包括:第四输入数据、第五输入数据、第六输入数据和第七输入数据。
11.根据权利要求10所述的高速运行装置,其特征在于,所述第一运算子模块包括:第一运算单元、第二运算单元、第三运算单元、第四运算单元、第五运算单元和第六运算单元;
所述第一运算单元,用于将第二输入数据分别与第八预设数据和第三输入数据进行与运算得到第一运算结果和第五运算结果;将第三输入数据与第二预设数据和第四预设数据分别进行与运算得到第三运算结果和第六运算结果;将第一输入数据分别与第二预设数据、第五预设数据和第三预设数据进行与运算得到第八运算结果、第十运算结果和第十二运算结果;将第四输入数据与第六预设数据进行与运算得到第十四运算结果;将第一运算结果进行左移第五预设位运算,得到第二运算结果;第三运算结果进行右移第一预设位运算,得到第四运算结果;将第六运算结果进行左移第四预设位运算,得到第七运算结果;第八运算结果进行右移第四预设位运算,得到第九运算结果;将第十运算结果进行右移第一预设位运算,得到第十一运算结果;将第十二运算结果进行右移第四预设位运算,得到第十三运算结果;将第十四运算结果进行右移第四预设位运算,得到第十五运算结果;将所述第二运算结果、所述第四运算结果、所述第五运算结果、所述第七运算结果、所述第九运算结果、所述第十一运算结果、所述第十三运算结果和所述第十五运算结果进行或运算得到第一输出结果;
所述第二运算单元,用于第二输入数据分别与第七预设数据、第一预设数据和第六预设数据分别进行与运算得到第十六运算结果、第二十二运算结果、第二十八运算结果;将第一输入数据分别与第八预设数据和第六预设数据进行与运算得到第十八运算结果和第三十运算结果;将第三输入数据分别与第五预设数据、第七预设数据、第三预设数据进行与运算得到第二十运算结果、第二十四运算结果和第二十六运算结果;将第十六运算结果进行左移第六预设为运算得到第十七运算结果;将所述第二十二运算结果进行右移第二预设为运算得到第二十三运算结果;将所述第二十八运算结果进行右移第三预设位运算得到第二十九运算结果;将所述第十八运算结果进行左移第四预设位运算得到第十九运算结果;将第三十运算结果进行右移第四预设位运算得到第三十一运算结果;将第二十运算结果进行左移第二预设位运算得到第二十一运算结果、将第二十四运算结果进行左移第二预设位运算得到第二十五运算结果;将第二十六运算结果进行右移第三预设位运算得到第二十七运算结果;将所述第十七运算结果、所述第十九运算结果、所述第二十一运算结果、所述第二十五运算结果、所述第二十七运算结果、所述第二十九运算结果和所述第三十一运算结果进行或运算得到第二输出结果;
所述第三运算单元,用于将第四输入数据分别与第一预设数据、第三输入数据分别进行与运算得到第三十二运算结果、第四十运算结果;将第一输入数据分别与第四预设数据、第七预设数据和第一预设数据分别进行与运算得到第三十四运算结果、第三十八运算结果、第四十六运算结果;将第二输入数据分别与第四预设数据和第五预设数据进行与运算得到第三十六运算结果、第四十四运算结果;将第三输入数据和第六预设数据进行与运算得到第四十二运算结果;将第三十二运算结果、第三十四运算结果、第三十六运算结果、第三十八运算结果、第四十运算结果、第四十二运算结果、第四十四运算结果和第四十六运算结果分别进行左移第一预设位、左移第六预设位、左移第五预设位、左移第三预设位、右移第二预设位、右移第二预设位、右移第二预设位、右移第六预设位运算得到三十三运算结果、第三十五运算结果、第三十七运算结果、第三十九运算结果、第四十一运算结果、第四十三运算结果、第四十五运算结果和第四十七运算结果;将三十三运算结果、第三十五运算结果、第三十七运算结果、第三十九运算结果、第四十一运算结果、第四十三运算结果、第四十五运算结果和第四十七运算结果进行或运算得到第三输出结果;
所述第四运算单元,用于将第六输入数据分别与第二预设数据、第七预设数据进行与运算第四十八运算结果和第五十五运算结果;将第七输入数据分别与第六预设数据、第七预设数据进行与运算得到第四十九运算结果和第五十七运算结果;将第四输入数据分别与第七预设数据和第八预设数据进行与运算得到第五十一运算结果、第五十九运算结果;将第五输入数据分别与第五预设数据和第四预设数据进行与运算得到第五十三运算结果和第六十一运算结果;将第四十九运算结果、第五十一运算结果、第五十三运算结果、第五十五运算结果、第五十七运算结果、第五十九运算结果分别进行左移第二预设位、左移第四预设位、左移第一预设位、左移第二预设位、左移第一预设位、右移第一预设位运算得到第五十运算结果、第五十二运算结果、第五十四运算结果、第五十六运算结果、第五十八运算结果和第六十运算结果;将第四十八运算结果、第五十运算结果、第五十二运算结果、第五十四运算结果、第五十六运算结果、第五十八运算结果、第六十运算结果和第六十一运算结果进行或运算得到第四输出结果;
所述第五运算单元,用于将第七输入数据分别与第三预设数据、第二预设数据、第四预设数据进行与运算得到第六十二运算结果、第七十二运算结果和第七十五运算结果;将第六输入数据分别与第五预设数据、第四预设数据、第六预设数据进行与运算得到第六十四运算结果、第六十八运算结果、第七十运算结果;将第五输入数据分别与第二预设数据、第七预设数据进行与运算得到第六十六运算结果和第七十四运算结果;将第六十二运算结果、第六十四运算结果、第六十六运算结果、第六十八运算结果、第七十运算结果和第七十二运算结果分别进行左移第二预设位、左移第三预设位、右移第二预设位、左移第四预设位、右移第一预设位、右移第五预设位得到第六十三运算结果、第六十五运算结果、第六十七运算结果、第六十九运算结果、第七十一运算结果和第七十三运算结果;将第六十三运算结果、第六十五运算结果、第六十七运算结果、第六十九运算结果、第七十一运算结果、第七十三运算结果、第七十四运算结果和第七十五运算结果进行或运算得到第五输出结果;
所述第六运算单元,用于将第五输入数据分别与第一预设数据、第六预设数据进行与运算得到第七十六运算结果、第八十六运算结果;将第七输入数据分别与第五预设数据、第一预设数据进行与运算得到第七十八运算结果、第八十四运算结果;将第六输入数据分别与第八预设数据、第一预设数据进行与运算得到第八十运算结果、第八十二运算结果;将第四输入数据分别与第五预设数据、第四预设数据进行与运算得到第八十八运算结果、第九十运算结果;将第七十六运算结果、第七十八运算结果、第八十运算结果、第八十二运算结果、第八十四运算结果、第八十六运算结果、第八十八运算结果分别进行左移第一预设位、左移第三预设位、左移第三预设位、右移第二预设位、右移第三预设位、右移第二预设位、右移第二预设位运算得到第七十七运算结果、第七十九运算结果、第八十一运算结果、第八十三运算结果、第八十五运算结果、第八十七运算结果、第八十九运算结果;将第七十七运算结果、第七十九运算结果、第八十一运算结果、第八十三运算结果、第八十五运算结果、第八十七运算结果、第八十九运算结果和第九十运算结果进行或运算得到第六输出结果。
12.根据权利要求8所述的高速运行装置,其特征在于,所述第一段输入数据的数据长度为m个字节;所述第一段输出数据的数据长度为n个字节;每个输入数据的数据长度为1个字节;每个或运算结果的数据长度为1个字节。
13.根据权利要求8所述的高速运行装置,其特征在于,所述第一拆分模块,具体用于将第一段输入数据按照预设顺序进行拆分得到m个输入数据;
所述第一组合模块,具体用于将所述第一运算模块得到的n个或运算结果按照预设顺序组合成第一段输出数据。
14.根据权利要求8所述的高速运行装置,其特征在于,所述装置用于运行置换过程、初始化置换过程、密钥置换过程、扩展置换过程和P盒设计过程中的至少一个过程。
CN201811494935.4A 2018-12-07 2018-12-07 一种分组加密算法的高速运行方法和高速运行装置 Active CN109598134B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811494935.4A CN109598134B (zh) 2018-12-07 2018-12-07 一种分组加密算法的高速运行方法和高速运行装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811494935.4A CN109598134B (zh) 2018-12-07 2018-12-07 一种分组加密算法的高速运行方法和高速运行装置

Publications (2)

Publication Number Publication Date
CN109598134A CN109598134A (zh) 2019-04-09
CN109598134B true CN109598134B (zh) 2023-05-30

Family

ID=65962317

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811494935.4A Active CN109598134B (zh) 2018-12-07 2018-12-07 一种分组加密算法的高速运行方法和高速运行装置

Country Status (1)

Country Link
CN (1) CN109598134B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999014889A1 (en) * 1997-09-17 1999-03-25 Luyster Frank C Improved block cipher method
CN102222204A (zh) * 2011-06-28 2011-10-19 中国人民解放军国防科学技术大学 基于容错的md5全流水硬件加密方法
CN107437990A (zh) * 2017-09-14 2017-12-05 山东浪潮通软信息科技有限公司 加密方法、解密方法、加密装置和解密装置
CN107947916A (zh) * 2017-12-22 2018-04-20 四川大学 一种基于des算法的一体式加解密模块

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999014889A1 (en) * 1997-09-17 1999-03-25 Luyster Frank C Improved block cipher method
CN102222204A (zh) * 2011-06-28 2011-10-19 中国人民解放军国防科学技术大学 基于容错的md5全流水硬件加密方法
CN107437990A (zh) * 2017-09-14 2017-12-05 山东浪潮通软信息科技有限公司 加密方法、解密方法、加密装置和解密装置
CN107947916A (zh) * 2017-12-22 2018-04-20 四川大学 一种基于des算法的一体式加解密模块

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种以移位为基础的分组密码算法;王勇等;《信息网络安全》;20041208(第12期);全文 *
基于可重构S盒的常用分组密码算法的高速实现;高娜娜等;《计算机工程》;20060505(第09期);全文 *

Also Published As

Publication number Publication date
CN109598134A (zh) 2019-04-09

Similar Documents

Publication Publication Date Title
USD892855S1 (en) Display screen or portion thereof with animated graphical user interface
US5619576A (en) Variable-key cryptography system
US5455577A (en) Method and system for data compression
CN109598134B (zh) 一种分组加密算法的高速运行方法和高速运行装置
WO2008061143A3 (en) Memory efficient adaptive block coding
CN101771879B (zh) 基于cabac的并行归一化编码实现电路及编码方法
US5703581A (en) Method and apparatus for data compression and decompression
JP2010519806A (ja) データストリームを生成し、データストリーム内の位置を識別する方法
KR970056486A (ko) 고정된 속도 통신에 대한 가변 속도 데이터의 재포맷 방법 및 장치
DE602007011811D1 (de) Speichereffiziente codierung von codes variabler länge
CA2430923A1 (en) Encoding device, decoding device, and system thereof
ES2379321T3 (es) Método y aparato para generar o cortar o cambiar un archivo de formato de flujo de bits basado en tramas que incluye al menos una sección de cabecera, y una estructura de datos correspondiente
EP1997109A1 (en) Converting a still image in a slide show to a plurality of video frame images
JP2018534811A (ja) ロスレスデータ圧縮
Nandi et al. A compression technique based on optimality of LZW code (OLZW)
TWI378652B (en) Data encoder
KR100413935B1 (ko) 화상 부호화 장치 및 화상 복호화 장치
CN111061722A (zh) 一种数据压缩、数据解压缩方法、装置及设备
JP2005182965A5 (zh)
JP2013126160A (ja) 復号化装置および符号化方法
TWI404420B (zh) 可變長度解碼器、視訊解碼器、具有此解碼器的影像顯示系統以及可變長度解碼方法
JP3389391B2 (ja) 可変長コードの符号化及び分割装置
CN102651795B (zh) 游长缩减的二元序列压缩编码方法
TWI730428B (zh) 資料映射器與資料映射方法
TWI544789B (zh) 壓縮影像、音訊及/或視訊檔案的數位值之方法

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