CN106712930A - 一种sm4加密方法及装置 - Google Patents

一种sm4加密方法及装置 Download PDF

Info

Publication number
CN106712930A
CN106712930A CN201710059240.2A CN201710059240A CN106712930A CN 106712930 A CN106712930 A CN 106712930A CN 201710059240 A CN201710059240 A CN 201710059240A CN 106712930 A CN106712930 A CN 106712930A
Authority
CN
China
Prior art keywords
encryption
bits
note
transformation
expressed
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.)
Withdrawn
Application number
CN201710059240.2A
Other languages
English (en)
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 Refine Stone Network Technology Co Ltd
Original Assignee
Beijing Refine Stone Network 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 Refine Stone Network Technology Co Ltd filed Critical Beijing Refine Stone Network Technology Co Ltd
Priority to CN201710059240.2A priority Critical patent/CN106712930A/zh
Publication of CN106712930A publication Critical patent/CN106712930A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Electrochromic Elements, Electrophoresis, Or Variable Reflection Or Absorption Elements (AREA)
  • Mechanical Treatment Of Semiconductor (AREA)
  • Materials For Photolithography (AREA)

Abstract

本发明提供了一种SM4加密方法及装置,该方法包括:迭代计算步骤,将128比特的数据表示为X=(X0,X1,X2,X3),32轮的加密密钥记为RKi,i=0,1,...,31,进行32次迭代运算:Xi+4=Xi⊕T(Xi+1⊕Xi+2⊕Xi+3⊕RKi),i=0,1,...,31,其中⊕表示异或运算;反序计算步骤,令(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32),则输出的128比特的加密数据表示为Y=(Y0,Y1,Y2,Y3);其中,合成置换T的输入和输出都是32比特,由非线性变换τ和线性变换L复合而成T(·)=L(τ(·))。本发明使用分组查表技术,将SM4中的合成置换T计算进行分解,并将T中的非线性变换和线性变换进行压缩合并,使得SM4加密算法中的合成置换T的计算由原先的4次查表、4次循环左移以及4次异或运算简化为4次查表和3次异或运算,提高了执行效率。

Description

一种SM4加密方法及装置
技术领域
本发明涉及计算机安全技术领域,特别是一种SM4加密方法及装置。
背景技术
数据加密是密码系统的基本任务。按加密密钥与解密密钥的关系,目前的各种数据加密体制可以分为两大类:对称密码加密体制和公钥密码加密体制。常用的对称密码方法有DES、AES、IDEA、RC6等。
SM4是一个分组密码算法,明文、密钥、密文都是128比特,加密和解密密钥相同。通过32次循环的非线性迭代轮函数来实现加密和解密。其中包括非线性变换S盒,以及由循环移位异或构成的线性变换。除了256字节的S盒之外,还定义了另外两组参数FK以及CK(具体数据参考密码局网站)。基本过程是首先把128比特密钥按照32比特一组分成4组,然后根据密钥扩展算法,生成32组32比特轮密钥;再把输入的128比特数据也按照32比特一组分成4组然后进行循环运算。
发明内容
本发明针对上述现有技术中的缺陷,提出了如下改进的技术方案。
一种SM4加密方法,包括:
迭代计算步骤,将128比特的数据表示为X=(X0,X1,X2,X3),32轮的加密密钥记为RKi,i=0,1,...,31,进行32次迭代运算: 其中表示异或运算;
反序计算步骤,令(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32),则输出的128比特的加密数据表示为Y=(Y0,Y1,Y2,Y3);
其中,合成置换T的输入和输出都是32比特,由非线性变换τ和线性变换L复合而成T(·)=L(τ(·))。
更进一步地,将32比特输入数据表示为:A=(a0,a1,a2,a3),其中,a0,a1,a2,a3均为8比特字节,则τ(A)=(S(a0),S(a1),S(a2),S(a3))。
更进一步地,T(A)=L(τ(A))=L(S(a0),S(a1),S(a2),S(a3))。
更进一步地,定义<<<表示循环左移操作;记I32为32×32的单位矩阵,则B=I32·B;记为将I32的各行向上循环移动2行得到的矩阵,则有同理也有 其中通过将矩阵I32各行向上循环移动10、18、24行得到,记则有:
记I8为8×8的单位矩阵而08为8×8零矩阵,32比特字B为Sbox的输出,B=[S(a0),S(a1),S(a2),S(a3)]T,可如下表示:
其中
的值由8比特的输入a0决定,通过预计算含有256个元素的表格,记为并通过查表的方式来计算 的计算可以通过预计算4张含有256个元素的表格,并通过4次查表以及3次异或运算来完成。
更进一步地,
的代换表格为:
0xd55b5b8e,0x924242d0,0xeaa7a74d,0xfdfbfb06,0xcf3333fc,0xe2878765,0x3df4f4c9,0xb5dede6b,0x1658584e,0xb4dada6e,0x14505044,0xc10b0bca,0x28a0a088,0xf8efef17,0x2cb0b09c,0x05141411,0x2bacac87,0x669d9dfb,0x986a6af2,0x77d9d9ae,0x2aa8a882,0xbcfafa46,0x04101014,0xc00f0fcf,0xa8aaaa02,0x45111154,0x134c4c5f,0x269898be,0x4825256d,0x841a1a9e,0x0618181e,0x9b6666fd,0x9e7272ec,0x4309094a,0x51414110,0xf7d3d324,0x934646d5,0xecbfbf53,0x9a6262f8,0x7be9e992,0x33ccccff,0x55515104,0x0b2c2c27,0x420d0d4f,0xeeb7b759,0xcc3f3ff3,0xaeb2b21c,0x638989ea,0xe7939374,0xb1cece7f,0x1c70706c,0xaba6a60d,0xca2727ed,0x08202028,0xeba3a348,0x975656c1,0x82020280,0xdc7f7fa3,0x965252c4,0xf9ebeb12,0x74d5d5a1,0x8d3e3eb3,0x3ffcfcc3,0xa49a9a3e,0x461d1d5b,0x071c1c1b,0xa59e9e3b,0xfff3f30c,0xf0cfcf3f,0x72cdcdbf,0x175c5c4b,0xb8eaea52,0x810e0e8f,0x5865653d,0x3cf0f0cc,0x1964647d,0xe59b9b7e,0x87161691,0x4e3d3d73,0xaaa2a208,0x69a1a1c8,0x6aadadc7,0x83060685,0xb0caca7a,0x70c5c5b5,0x659191f4,0xd96b6bb2,0x892e2ea7,0xfbe3e318,0xe8afaf47,0x0f3c3c33,0x4a2d2d67,0x71c1c1b0,0x5759590e,0x9f7676e9,0x35d4d4e1,0x1e787866,0x249090b4,0x0e383836,0x5f797926,0x628d8def,0x59616138,0xd2474795,0xa08a8a2a,0x259494b1,0x228888aa,0x7df1f18c,0x3bececd7,0x01040405,0x218484a5,0x79e1e198,0x851e1e9b,0xd7535384,0x00000000,0x4719195e,0x565d5d0b,0x9d7e7ee3,0xd04f4f9f,0x279c9cbb,0x5349491a,0x4d31317c,0x36d8d8ee,0x0208080a,0xe49f9f7b,0xa2828220,0xc71313d4,0xcb2323e8,0x9c7a7ae6,0xe9abab42,0xbdfefe43,0x882a2aa2,0xd14b4b9a,0x41010140,0xc41f1fdb,0x38e0e0d8,0xb7d6d661,0xa18e8e2f,0xf4dfdf2b,0xf1cbcb3a,0xcd3b3bf6,0xfae7e71d,0x608585e5,0x15545441,0xa3868625,0xe3838360,0xacbaba16,0x5c757529,0xa6929234,0x996e6ef7,0x34d0d0e4,0x1a686872,0x54555501,0xafb6b619,0x914e4edf,0x32c8c8fa,0x30c0c0f0,0xf6d7d721,0x8e3232bc,0xb3c6c675,0xe08f8f6f,0x1d747469,0xf5dbdb2e,0xe18b8b6a,0x2eb8b896,0x800a0a8a,0x679999fe,0xc92b2be2,0x618181e0,0xc30303c0,0x29a4a48d,0x238c8caf,0xa9aeae07,0x0d343439,0x524d4d1f,0x4f393976,0x6ebdbdd3,0xd6575781,0xd86f6fb7,0x37dcdceb,0x44151551,0xdd7b7ba6,0xfef7f709,0x8c3a3ab6,0x2fbcbc93,0x030c0c0f,0xfcffff03,0x6ba9a9c2,0x73c9c9ba,0x6cb5b5d9,0x6db1b1dc,0x5a6d6d37,0x50454515,0x8f3636b9,0x1b6c6c77,0xadbebe13,0x904a4ada,0xb9eeee57,0xde7777a9,0xbef2f24c,0x7efdfd83,0x11444455,0xda6767bd,0x5d71712c,0x40050545,0x1f7c7c63,0x10404050,0x5b696932,0xdb6363b8,0x0a282822,0xc20707c5,0x31c4c4f5,0x8a2222a8,0xa7969631,0xce3737f9,0x7aeded97,0xbff6f649,0x2db4b499,0x75d1d1a4,0xd3434390,0x1248485a,0xbae2e258,0xe6979771,0xb6d2d264,0xb2c2c270,0x8b2626ad,0x68a5a5cd,0x955e5ecb,0x4b292962,0x0c30303c,0x945a5ace,0x76ddddab,0x7ff9f986,0x649595f1,0xbbe6e65d,0xf2c7c735,0x0924242d,0xc61717d1,0x6fb9b9d6,0xc51b1bde,0x86121294,0x18606078,0xf3c3c330,0x7cf5f589,0xefb3b35c,0x3ae8e8d2,0xdf7373ac,0x4c353579,0x208080a0,0x78e5e59d,0xedbbbb56,0x5e7d7d23,0x3ef8f8c6,0xd45f5f8b,0xc82f2fe7,0x39e4e4dd,0x49212168,
的代换表格为:
0x5b5b8ed5,0x4242d092,0xa7a74dea,0xfbfb06fd,0x3333fccf,0x878765e2,0xf4f4c93d,0xdede6bb5,0x58584e16,0xdada6eb4,0x50504414,0x0b0bcac1,0xa0a08828,0xefef17f8,0xb0b09c2c,0x14141105,0xacac872b,0x9d9dfb66,0x6a6af298,0xd9d9ae77,0xa8a8822a,0xfafa46bc,0x10101404,0x0f0fcfc0,0xaaaa02a8,0x11115445,0x4c4c5f13,0x9898be26,0x25256d48,0x1a1a9e84,0x18181e06,0x6666fd9b,0x7272ec9e,0x09094a43,0x41411051,0xd3d324f7,0x4646d593,0xbfbf53ec,0x6262f89a,0xe9e9927b,0xccccff33,0x51510455,0x2c2c270b,0x0d0d4f42,0xb7b759ee,0x3f3ff3cc,0xb2b21cae,0x8989ea63,0x939374e7,0xcece7fb1,0x70706c1c,0xa6a60dab,0x2727edca,0x20202808,0xa3a348eb,0x5656c197,0x02028082,0x7f7fa3dc,0x5252c496,0xebeb12f9,0xd5d5a174,0x3e3eb38d,0xfcfcc33f,0x9a9a3ea4,0x1d1d5b46,0x1c1c1b07,0x9e9e3ba5,0xf3f30cff,0xcfcf3ff0,0xcdcdbf72,0x5c5c4b17,0xeaea52b8,0x0e0e8f81,0x65653d58,0xf0f0cc3c,0x64647d19,0x9b9b7ee5,0x16169187,0x3d3d734e,0xa2a208aa,0xa1a1c869,0xadadc76a,0x06068583,0xcaca7ab0,0xc5c5b570,0x9191f465,0x6b6bb2d9,0x2e2ea789,0xe3e318fb,0xafaf47e8,0x3c3c330f,0x2d2d674a,0xc1c1b071,0x59590e57,0x7676e99f,0xd4d4e135,0x7878661e,0x9090b424,0x3838360e,0x7979265f,0x8d8def62,0x61613859,0x474795d2,0x8a8a2aa0,0x9494b125,0x8888aa22,0xf1f18c7d,0xececd73b,0x04040501,0x8484a521,0xe1e19879,0x1e1e9b85,0x535384d7,0x00000000,0x19195e47,0x5d5d0b56,0x7e7ee39d,0x4f4f9fd0,0x9c9cbb27,0x49491a53,0x31317c4d,0xd8d8ee36,0x08080a02,0x9f9f7be4,0x828220a2,0x1313d4c7,0x2323e8cb,0x7a7ae69c,0xabab42e9,0xfefe43bd,0x2a2aa288,0x4b4b9ad1,0x01014041,0x1f1fdbc4,0xe0e0d838,0xd6d661b7,0x8e8e2fa1,0xdfdf2bf4,0xcbcb3af1,0x3b3bf6cd,0xe7e71dfa,0x8585e560,0x54544115,0x868625a3,0x838360e3,0xbaba16ac,0x7575295c,0x929234a6,0x6e6ef799,0xd0d0e434,0x6868721a,0x55550154,0xb6b619af,0x4e4edf91,0xc8c8fa32,0xc0c0f030,0xd7d721f6,0x3232bc8e,0xc6c675b3,0x8f8f6fe0,0x7474691d,0xdbdb2ef5,0x8b8b6ae1,0xb8b8962e,0x0a0a8a80,0x9999fe67,0x2b2be2c9,0x8181e061,0x0303c0c3,0xa4a48d29,0x8c8caf23,0xaeae07a9,0x3434390d,0x4d4d1f52,0x3939764f,0xbdbdd36e,0x575781d6,0x6f6fb7d8,0xdcdceb37,0x15155144,0x7b7ba6dd,0xf7f709fe,0x3a3ab68c,0xbcbc932f,0x0c0c0f03,0xffff03fc,0xa9a9c26b,0xc9c9ba73,0xb5b5d96c,0xb1b1dc6d,0x6d6d375a,0x45451550,0x3636b98f,0x6c6c771b,0xbebe13ad,0x4a4ada90,0xeeee57b9,0x7777a9de,0xf2f24cbe,0xfdfd837e,0x44445511,0x6767bdda,0x71712c5d,0x05054540,0x7c7c631f,0x40405010,0x6969325b,0x6363b8db,0x2828220a,0x0707c5c2,0xc4c4f531,0x2222a88a,0x969631a7,0x3737f9ce,0xeded977a,0xf6f649bf,0xb4b4992d,0xd1d1a475,0x434390d3,0x48485a12,0xe2e258ba,0x979771e6,0xd2d264b6,0xc2c270b2,0x2626ad8b,0xa5a5cd68,0x5e5ecb95,0x2929624b,0x30303c0c,0x5a5ace94,0xddddab76,0xf9f9867f,0x9595f164,0xe6e65dbb,0xc7c735f2,0x24242d09,0x1717d1c6,0xb9b9d66f,0x1b1bdec5,0x12129486,0x60607818,0xc3c330f3,0xf5f5897c,0xb3b35cef,0xe8e8d23a,0x7373acdf,0x3535794c,0x8080a020,0xe5e59d78,0xbbbb56ed,0x7d7d235e,0xf8f8c63e,0x5f5f8bd4,0x2f2fe7c8,0xe4e4dd39,0x21216849,
的代换表格为:
0x5b8ed55b,0x42d09242,0xa74deaa7,0xfb06fdfb,0x33fccf33,0x8765e287,0xf4c93df4,0xde6bb5de,0x584e1658,0xda6eb4da,0x50441450,0x0bcac10b,0xa08828a0,0xef17f8ef,0xb09c2cb0,0x14110514,0xac872bac,0x9dfb669d,0x6af2986a,0xd9ae77d9,0xa8822aa8,0xfa46bcfa,0x10140410,0x0fcfc00f,0xaa02a8aa,0x11544511,0x4c5f134c,0x98be2698,0x256d4825,0x1a9e841a,0x181e0618,0x66fd9b66,0x72ec9e72,0x094a4309,0x41105141,0xd324f7d3,0x46d59346,0xbf53ecbf,0x62f89a62,0xe9927be9,0xccff33cc,0x51045551,0x2c270b2c,0x0d4f420d,0xb759eeb7,0x3ff3cc3f,0xb21caeb2,0x89ea6389,0x9374e793,0xce7fb1ce,0x706c1c70,0xa60daba6,0x27edca27,0x20280820,0xa348eba3,0x56c19756,0x02808202,0x7fa3dc7f,0x52c49652,0xeb12f9eb,0xd5a174d5,0x3eb38d3e,0xfcc33ffc,0x9a3ea49a,0x1d5b461d,0x1c1b071c,0x9e3ba59e,0xf30cfff3,0xcf3ff0cf,0xcdbf72cd,0x5c4b175c,0xea52b8ea,0x0e8f810e,0x653d5865,0xf0cc3cf0,0x647d1964,0x9b7ee59b,0x16918716,0x3d734e3d,0xa208aaa2,0xa1c869a1,0xadc76aad,0x06858306,0xca7ab0ca,0xc5b570c5,0x91f46591,0x6bb2d96b,0x2ea7892e,0xe318fbe3,0xaf47e8af,0x3c330f3c,0x2d674a2d,0xc1b071c1,0x590e5759,0x76e99f76,0xd4e135d4,0x78661e78,0x90b42490,0x38360e38,0x79265f79,0x8def628d,0x61385961,0x4795d247,0x8a2aa08a,0x94b12594,0x88aa2288,0xf18c7df1,0xecd73bec,0x04050104,0x84a52184,0xe19879e1,0x1e9b851e,0x5384d753,0x00000000,0x195e4719,0x5d0b565d,0x7ee39d7e,0x4f9fd04f,0x9cbb279c,0x491a5349,0x317c4d31,0xd8ee36d8,0x080a0208,0x9f7be49f,0x8220a282,0x13d4c713,0x23e8cb23,0x7ae69c7a,0xab42e9ab,0xfe43bdfe,0x2aa2882a,0x4b9ad14b,0x01404101,0x1fdbc41f,0xe0d838e0,0xd661b7d6,0x8e2fa18e,0xdf2bf4df,0xcb3af1cb,0x3bf6cd3b,0xe71dfae7,0x85e56085,0x54411554,0x8625a386,0x8360e383,0xba16acba,0x75295c75,0x9234a692,0x6ef7996e,0xd0e434d0,0x68721a68,0x55015455,0xb619afb6,0x4edf914e,0xc8fa32c8,0xc0f030c0,0xd721f6d7,0x32bc8e32,0xc675b3c6,0x8f6fe08f,0x74691d74,0xdb2ef5db,0x8b6ae18b,0xb8962eb8,0x0a8a800a,0x99fe6799,0x2be2c92b,0x81e06181,0x03c0c303,0xa48d29a4,0x8caf238c,0xae07a9ae,0x34390d34,0x4d1f524d,0x39764f39,0xbdd36ebd,0x5781d657,0x6fb7d86f,0xdceb37dc,0x15514415,0x7ba6dd7b,0xf709fef7,0x3ab68c3a,0xbc932fbc,0x0c0f030c,0xff03fcff,0xa9c26ba9,0xc9ba73c9,0xb5d96cb5,0xb1dc6db1,0x6d375a6d,0x45155045,0x36b98f36,0x6c771b6c,0xbe13adbe,0x4ada904a,0xee57b9ee,0x77a9de77,0xf24cbef2,0xfd837efd,0x44551144,0x67bdda67,0x712c5d71,0x05454005,0x7c631f7c,0x40501040,0x69325b69,0x63b8db63,0x28220a28,0x07c5c207,0xc4f531c4,0x22a88a22,0x9631a796,0x37f9ce37,0xed977aed,0xf649bff6,0xb4992db4,0xd1a475d1,0x4390d343,0x485a1248,0xe258bae2,0x9771e697,0xd264b6d2,0xc270b2c2,0x26ad8b26,0xa5cd68a5,0x5ecb955e,0x29624b29,0x303c0c30,0x5ace945a,0xddab76dd,0xf9867ff9,0x95f16495,0xe65dbbe6,0xc735f2c7,0x242d0924,0x17d1c617,0xb9d66fb9,0x1bdec51b,0x12948612,0x60781860,0xc330f3c3,0xf5897cf5,0xb35cefb3,0xe8d23ae8,0x73acdf73,0x35794c35,0x80a02080,0xe59d78e5,0xbb56edbb,0x7d235e7d,0xf8c63ef8,0x5f8bd45f,0x2fe7c82f,0xe4dd39e4,0x21684921,
的代换表格为:
0x8ed55b5b,0xd0924242,0x4deaa7a7,0x06fdfbfb,0xfccf3333,0x65e28787,0xc93df4f4,0x6bb5dede,0x4e165858,0x6eb4dada,0x44145050,0xcac10b0b,0x8828a0a0,0x17f8efef,0x9c2cb0b0,0x11051414,0x872bacac,0xfb669d9d,0xf2986a6a,0xae77d9d9,0x822aa8a8,0x46bcfafa,0x14041010,0xcfc00f0f,0x02a8aaaa,0x54451111,0x5f134c4c,0xbe269898,0x6d482525,0x9e841a1a,0x1e061818,0xfd9b6666,0xec9e7272,0x4a430909,0x10514141,0x24f7d3d3,0xd5934646,0x53ecbfbf,0xf89a6262,0x927be9e9,0xff33cccc,0x04555151,0x270b2c2c,0x4f420d0d,0x59eeb7b7,0xf3cc3f3f,0x1caeb2b2,0xea638989,0x74e79393,0x7fb1cece,0x6c1c7070,0x0daba6a6,0xedca2727,0x28082020,0x48eba3a3,0xc1975656,0x80820202,0xa3dc7f7f,0xc4965252,0x12f9ebeb,0xa174d5d5,0xb38d3e3e,0xc33ffcfc,0x3ea49a9a,0x5b461d1d,0x1b071c1c,0x3ba59e9e,0x0cfff3f3,0x3ff0cfcf,0xbf72cdcd,0x4b175c5c,0x52b8eaea,0x8f810e0e,0x3d586565,0xcc3cf0f0,0x7d196464,0x7ee59b9b,0x91871616,0x734e3d3d,0x08aaa2a2,0xc869a1a1,0xc76aadad,0x85830606,0x7ab0caca,0xb570c5c5,0xf4659191,0xb2d96b6b,0xa7892e2e,0x18fbe3e3,0x47e8afaf,0x330f3c3c,0x674a2d2d,0xb071c1c1,0x0e575959,0xe99f7676,0xe135d4d4,0x661e7878,0xb4249090,0x360e3838,0x265f7979,0xef628d8d,0x38596161,0x95d24747,0x2aa08a8a,0xb1259494,0xaa228888,0x8c7df1f1,0xd73becec,0x05010404,0xa5218484,0x9879e1e1,0x9b851e1e,0x84d75353,0x00000000,0x5e471919,0x0b565d5d,0xe39d7e7e,0x9fd04f4f,0xbb279c9c,0x1a534949,0x7c4d3131,0xee36d8d8,0x0a020808,0x7be49f9f,0x20a28282,0xd4c71313,0xe8cb2323,0xe69c7a7a,0x42e9abab,0x43bdfefe,0xa2882a2a,0x9ad14b4b,0x40410101,0xdbc41f1f,0xd838e0e0,0x61b7d6d6,0x2fa18e8e,0x2bf4dfdf,0x3af1cbcb,0xf6cd3b3b,0x1dfae7e7,0xe5608585,0x41155454,0x25a38686,0x60e38383,0x16acbaba,0x295c7575,0x34a69292,0xf7996e6e,0xe434d0d0,0x721a6868,0x01545555,0x19afb6b6,0xdf914e4e,0xfa32c8c8,0xf030c0c0,0x21f6d7d7,0xbc8e3232,0x75b3c6c6,0x6fe08f8f,0x691d7474,0x2ef5dbdb,0x6ae18b8b,0x962eb8b8,0x8a800a0a,0xfe679999,0xe2c92b2b,0xe0618181,0xc0c30303,0x8d29a4a4,0xaf238c8c,0x07a9aeae,0x390d3434,0x1f524d4d,0x764f3939,0xd36ebdbd,0x81d65757,0xb7d86f6f,0xeb37dcdc,0x51441515,0xa6dd7b7b,0x09fef7f7,0xb68c3a3a,0x932fbcbc,0x0f030c0c,0x03fcffff,0xc26ba9a9,0xba73c9c9,0xd96cb5b5,0xdc6db1b1,0x375a6d6d,0x15504545,0xb98f3636,0x771b6c6c,0x13adbebe,0xda904a4a,0x57b9eeee,0xa9de7777,0x4cbef2f2,0x837efdfd,0x55114444,0xbdda6767,0x2c5d7171,0x45400505,0x631f7c7c,0x50104040,0x325b6969,0xb8db6363,0x220a2828,0xc5c20707,0xf531c4c4,0xa88a2222,0x31a79696,0xf9ce3737,0x977aeded,0x49bff6f6,0x992db4b4,0xa475d1d1,0x90d34343,0x5a124848,0x58bae2e2,0x71e69797,0x64b6d2d2,0x70b2c2c2,0xad8b2626,0xcd68a5a5,0xcb955e5e,0x624b2929,0x3c0c3030,0xce945a5a,0xab76dddd,0x867ff9f9,0xf1649595,0x5dbbe6e6,0x35f2c7c7,0x2d092424,0xd1c61717,0xd66fb9b9,0xdec51b1b,0x94861212,0x78186060,0x30f3c3c3,0x897cf5f5,0x5cefb3b3,0xd23ae8e8,0xacdf7373,0x794c3535,0xa0208080,0x9d78e5e5,0x56edbbbb,0x235e7d7d,0xc63ef8f8,0x8bd45f5f,0xe7c82f2f,0xdd39e4e4,0x68492121。
本发明还提出了一种SM4加密装置,包括:
迭代计算单元,将128比特的数据表示为X=(X0,X1,X2,X3),32轮的加密密钥记为RKi,i=0,1,…,31,进行32次迭代运算: 其中表示异或运算;
反序计算单元,令(Y0,Y1,Y2,T3)=(X35,X34,X33,X32),则输出的128比特的加密数据表示为Y=(Y0,Y1,Y2,Y3);
其中,合成置换T的输入和输出都是32比特,由非线性变换τ和线性变换L复合而成T(·)=L(τ(·))。
更进一步地,将32比特输入数据表示为:A=(a0,a1,a2,a3),其中,a0,a1,a2,a3均为8比特字节,则τ(A)=(S(a0),S(a1),S(a2),S(a3))。
更进一步地,T(A)=L(τ(A))=L(S(a0),S(a1),S(a2),S(a3))。
更进一步地,定义<<<表示循环左移操作;记I32为32×32的单位矩阵,则B=I32·B;记为将I32的各行向上循环移动2行得到的矩阵,则有同理也有 其中通过将矩阵I32各行向上循环移动10、18、24行得到,记则有:
记I8为8×8的单位矩阵而08为8×8零矩阵,32比特字B为Sbox的输出,B=[S(a0),S(a1),S(a2),S(a3)]T,可如下表示:
其中
的值由8比特的输入a0决定,通过预计算含有256个元素的表格,记为并通过查表的方式来计算 的计算可以通过预计算4张含有256个元素的表格,并通过4次查表以及3次异或运算来完成。
更进一步地,
的代换表格为:
0xd55b5b8e,0x924242d0,0xeaa7a74d,0xfdfbfb06,0xcf3333fc,0xe2878765,0x3df4f4c9,0xb5dede6b,0x1658584e,0xb4dada6e,0x14505044,0xc10b0bca,0x28a0a088,0xf8efef17,0x2cb0b09c,0x05141411,0x2bacac87,0x669d9dfb,0x986a6af2,0x77d9d9ae,0x2aa8a882,0xbcfafa46,0x04101014,0xc00f0fcf,0xa8aaaa02,0x45111154,0x134c4c5f,0x269898be,0x4825256d,0x841a1a9e,0x0618181e,0x9b6666fd,0x9e7272ec,0x4309094a,0x51414110,0xf7d3d324,0x934646d5,0xecbfbf53,0x9a6262f8,0x7be9e992,0x33ccccff,0x55515104,0x0b2c2c27,0x420d0d4f,0xeeb7b759,0xcc3f3ff3,0xaeb2b21c,0x638989ea,0xe7939374,0xb1cece7f,0x1c70706c,0xaba6a60d,0xca2727ed,0x08202028,0xeba3a348,0x975656c1,0x82020280,0xdc7f7fa3,0x965252c4,0xf9ebeb12,0x74d5d5a1,0x8d3e3eb3,0x3ffcfcc3,0xa49a9a3e,0x461d1d5b,0x071c1c1b,0xa59e9e3b,0xfff3f30c,0xf0cfcf3f,0x72cdcdbf,0x175c5c4b,0xb8eaea52,0x810e0e8f,0x5865653d,0x3cf0f0cc,0x1964647d,0xe59b9b7e,0x87161691,0x4e3d3d73,0xaaa2a208,0x69a1a1c8,0x6aadadc7,0x83060685,0xb0caca7a,0x70c5c5b5,0x659191f4,0xd96b6bb2,0x892e2ea7,0xfbe3e318,0xe8afaf47,0x0f3c3c33,0x4a2d2d67,0x71c1c1b0,0x5759590e,0x9f7676e9,0x35d4d4e1,0x1e787866,0x249090b4,0x0e383836,0x5f797926,0x628d8def,0x59616138,0xd2474795,0xa08a8a2a,0x259494b1,0x228888aa,0x7df1f18c,0x3bececd7,0x01040405,0x218484a5,0x79e1e198,0x851e1e9b,0xd7535384,0x00000000,0x4719195e,0x565d5d0b,0x9d7e7ee3,0xd04f4f9f,0x279c9cbb,0x5349491a,0x4d31317c,0x36d8d8ee,0x0208080a,0xe49f9f7b,0xa2828220,0xc71313d4,0xcb2323e8,0x9c7a7ae6,0xe9abab42,0xbdfefe43,0x882a2aa2,0xd14b4b9a,0x41010140,0xc41f1fdb,0x38e0e0d8,0xb7d6d661,0xa18e8e2f,0xf4dfdf2b,0xf1cbcb3a,0xcd3b3bf6,0xfae7e71d,0x608585e5,0x15545441,0xa3868625,0xe3838360,0xacbaba16,0x5c757529,0xa6929234,0x996e6ef7,0x34d0d0e4,0x1a686872,0x54555501,0xafb6b619,0x914e4edf,0x32c8c8fa,0x30c0c0f0,0xf6d7d721,0x8e3232bc,0xb3c6c675,0xe08f8f6f,0x1d747469,0xf5dbdb2e,0xe18b8b6a,0x2eb8b896,0x800a0a8a,0x679999fe,0xc92b2be2,0x618181e0,0xc30303c0,0x29a4a48d,0x238c8caf,0xa9aeae07,0x0d343439,0x524d4d1f,0x4f393976,0x6ebdbdd3,0xd6575781,0xd86f6fb7,0x37dcdceb,0x44151551,0xdd7b7ba6,0xfef7f709,0x8c3a3ab6,0x2fbcbc93,0x030c0c0f,0xfcffff03,0x6ba9a9c2,0x73c9c9ba,0x6cb5b5d9,0x6db1b1dc,0x5a6d6d37,0x50454515,0x8f3636b9,0x1b6c6c77,0xadbebe13,0x904a4ada,0xb9eeee57,0xde7777a9,0xbef2f24c,0x7efdfd83,0x11444455,0xda6767bd,0x5d71712c,0x40050545,0x1f7c7c63,0x10404050,0x5b696932,0xdb6363b8,0x0a282822,0xc20707c5,0x31c4c4f5,0x8a2222a8,0xa7969631,0xce3737f9,0x7aeded97,0xbff6f649,0x2db4b499,0x75d1d1a4,0xd3434390,0x1248485a,0xbae2e258,0xe6979771,0xb6d2d264,0xb2c2c270,0x8b2626ad,0x68a5a5cd,0x955e5ecb,0x4b292962,0x0c30303c,0x945a5ace,0x76ddddab,0x7ff9f986,0x649595f1,0xbbe6e65d,0xf2c7c735,0x0924242d,0xc61717d1,0x6fb9b9d6,0xc51b1bde,0x86121294,0x18606078,0xf3c3c330,0x7cf5f589,0xefb3b35c,0x3ae8e8d2,0xdf7373ac,0x4c353579,0x208080a0,0x78e5e59d,0xedbbbb56,0x5e7d7d23,0x3ef8f8c6,0xd45f5f8b,0xc82f2fe7,0x39e4e4dd,0x49212168,
的代换表格为:0x5b5b8ed5,0x4242d092,0xa7a74dea,0xfbfb06fd,0x3333fccf,0x878765e2,0xf4f4c93d,0xdede6bb5,0x58584e16,0xdada6eb4,0x50504414,0x0b0bcac1,0xa0a08828,0xefef17f8,0xb0b09c2c,0x14141105,0xacac872b,0x9d9dfb66,0x6a6af298,0xd9d9ae77,0xa8a8822a,0xfafa46bc,0x10101404,0x0f0fcfc0,0xaaaa02a8,0x11115445,0x4c4c5f13,0x9898be26,0x25256d48,0x1a1a9e84,0x18181e06,0x6666fd9b,0x7272ec9e,0x09094a43,0x41411051,0xd3d324f7,0x4646d593,0xbfbf53ec,0x6262f89a,0xe9e9927b,0xccccff33,0x51510455,0x2c2c270b,0x0d0d4f42,0xb7b759ee,0x3f3ff3cc,0xb2b21cae,0x8989ea63,0x939374e7,0xcece7fb1,0x70706c1c,0xa6a60dab,0x2727edca,0x20202808,0xa3a348eb,0x5656c197,0x02028082,0x7f7fa3dc,0x5252c496,0xebeb12f9,0xd5d5a174,0x3e3eb38d,0xfcfcc33f,0x9a9a3ea4,0x1d1d5b46,0x1c1c1b07,0x9e9e3ba5,0xf3f30cff,0xcfcf3ff0,0xcdcdbf72,0x5c5c4b17,0xeaea52b8,0x0e0e8f81,0x65653d58,0xf0f0cc3c,0x64647d19,0x9b9b7ee5,0x16169187,0x3d3d734e,0xa2a208aa,0xa1a1c869,0xadadc76a,0x06068583,0xcaca7ab0,0xc5c5b570,0x9191f465,0x6b6bb2d9,0x2e2ea789,0xe3e318fb,0xafaf47e8,0x3c3c330f,0x2d2d674a,0xc1c1b071,0x59590e57,0x7676e99f,0xd4d4e135,0x7878661e,0x9090b424,0x3838360e,0x7979265f,0x8d8def62,0x61613859,0x474795d2,0x8a8a2aa0,0x9494b125,0x8888aa22,0xf1f18c7d,0xececd73b,0x04040501,0x8484a521,0xe1e19879,0x1e1e9b85,0x535384d7,0x00000000,0x19195e47,0x5d5d0b56,0x7e7ee39d,0x4f4f9fd0,0x9c9cbb27,0x49491a53,0x31317c4d,0xd8d8ee36,0x08080a02,0x9f9f7be4,0x828220a2,0x1313d4c7,0x2323e8cb,0x7a7ae69c,0xabab42e9,0xfefe43bd,0x2a2aa288,0x4b4b9ad1,0x01014041,0x1f1fdbc4,0xe0e0d838,0xd6d661b7,0x8e8e2fa1,0xdfdf2bf4,0xcbcb3af1,0x3b3bf6cd,0xe7e71dfa,0x8585e560,0x54544115,0x868625a3,0x838360e3,0xbaba16ac,0x7575295c,0x929234a6,0x6e6ef799,0xd0d0e434,0x6868721a,0x55550154,0xb6b619af,0x4e4edf91,0xc8c8fa32,0xc0c0f030,0xd7d721f6,0x3232bc8e,0xc6c675b3,0x8f8f6fe0,0x7474691d,0xdbdb2ef5,0x8b8b6ae1,0xb8b8962e,0x0a0a8a80,0x9999fe67,0x2b2be2c9,0x8181e061,0x0303c0c3,0xa4a48d29,0x8c8caf23,0xaeae07a9,0x3434390d,0x4d4d1f52,0x3939764f,0xbdbdd36e,0x575781d6,0x6f6fb7d8,0xdcdceb37,0x15155144,0x7b7ba6dd,0xf7f709fe,0x3a3ab68c,0xbcbc932f,0x0c0c0f03,0xffff03fc,0xa9a9c26b,0xc9c9ba73,0xb5b5d96c,0xb1b1dc6d,0x6d6d375a,0x45451550,0x3636b98f,0x6c6c771b,0xbebe13ad,0x4a4ada90,0xeeee57b9,0x7777a9de,0xf2f24cbe,0xfdfd837e,0x44445511,0x6767bdda,0x71712c5d,0x05054540,0x7c7c631f,0x40405010,0x6969325b,0x6363b8db,0x2828220a,0x0707c5c2,0xc4c4f531,0x2222a88a,0x969631a7,0x3737f9ce,0xeded977a,0xf6f649bf,0xb4b4992d,0xd1d1a475,0x434390d3,0x48485a12,0xe2e258ba,0x979771e6,0xd2d264b6,0xc2c270b2,0x2626ad8b,0xa5a5cd68,0x5e5ecb95,0x2929624b,0x30303c0c,0x5a5ace94,0xddddab76,0xf9f9867f,0x9595f164,0xe6e65dbb,0xc7c735f2,0x24242d09,0x1717d1c6,0xb9b9d66f,0x1b1bdec5,0x12129486,0x60607818,0xc3c330f3,0xf5f5897c,0xb3b35cef,0xe8e8d23a,0x7373acdf,0x3535794c,0x8080a020,0xe5e59d78,0xbbbb56ed,0x7d7d235e,0xf8f8c63e,0x5f5f8bd4,0x2f2fe7c8,0xe4e4dd39,0x21216849,
的代换表格为:
0x5b8ed55b,0x42d09242,0xa74deaa7,0xfb06fdfb,0x33fccf33,0x8765e287,0xf4c93df4,0xde6bb5de,0x584e1658,0xda6eb4da,0x50441450,0x0bcac10b,0xa08828a0,0xef17f8ef,0xb09c2cb0,0x14110514,0xac872bac,0x9dfb669d,0x6af2986a,0xd9ae77d9,0xa8822aa8,0xfa46bcfa,0x10140410,0x0fcfc00f,0xaa02a8aa,0x11544511,0x4c5f134c,0x98be2698,0x256d4825,0x1a9e841a,0x181e0618,0x66fd9b66,0x72ec9e72,0x094a4309,0x41105141,0xd324f7d3,0x46d59346,0xbf53ecbf,0x62f89a62,0xe9927be9,0xccff33cc,0x51045551,0x2c270b2c,0x0d4f420d,0xb759eeb7,0x3ff3cc3f,0xb21caeb2,0x89ea6389,0x9374e793,0xce7fb1ce,0x706c1c70,0xa60daba6,0x27edca27,0x20280820,0xa348eba3,0x56c19756,0x02808202,0x7fa3dc7f,0x52c49652,0xeb12f9eb,0xd5a174d5,0x3eb38d3e,0xfcc33ffc,0x9a3ea49a,0x1d5b461d,0x1c1b071c,0x9e3ba59e,0xf30cfff3,0xcf3ff0cf,0xcdbf72cd,0x5c4b175c,0xea52b8ea,0x0e8f810e,0x653d5865,0xf0cc3cf0,0x647d1964,0x9b7ee59b,0x16918716,0x3d734e3d,0xa208aaa2,0xa1c869a1,0xadc76aad,0x06858306,0xca7ab0ca,0xc5b570c5,0x91f46591,0x6bb2d96b,0x2ea7892e,0xe318fbe3,0xaf47e8af,0x3c330f3c,0x2d674a2d,0xc1b071c1,0x590e5759,0x76e99f76,0xd4e135d4,0x78661e78,0x90b42490,0x38360e38,0x79265f79,0x8def628d,0x61385961,0x4795d247,0x8a2aa08a,0x94b12594,0x88aa2288,0xf18c7df1,0xecd73bec,0x04050104,0x84a52184,0xe19879e1,0x1e9b851e,0x5384d753,0x00000000,0x195e4719,0x5d0b565d,0x7ee39d7e,0x4f9fd04f,0x9cbb279c,0x491a5349,0x317c4d31,0xd8ee36d8,0x080a0208,0x9f7be49f,0x8220a282,0x13d4c713,0x23e8cb23,0x7ae69c7a,0xab42e9ab,0xfe43bdfe,0x2aa2882a,0x4b9ad14b,0x01404101,0x1fdbc41f,0xe0d838e0,0xd661b7d6,0x8e2fa18e,0xdf2bf4df,0xcb3af1cb,0x3bf6cd3b,0xe71dfae7,0x85e56085,0x54411554,0x8625a386,0x8360e383,0xba16acba,0x75295c75,0x9234a692,0x6ef7996e,0xd0e434d0,0x68721a68,0x55015455,0xb619afb6,0x4edf914e,0xc8fa32c8,0xc0f030c0,0xd721f6d7,0x32bc8e32,0xc675b3c6,0x8f6fe08f,0x74691d74,0xdb2ef5db,0x8b6ae18b,0xb8962eb8,0x0a8a800a,0x99fe6799,0x2be2c92b,0x81e06181,0x03c0c303,0xa48d29a4,0x8caf238c,0xae07a9ae,0x34390d34,0x4d1f524d,0x39764f39,0xbdd36ebd,0x5781d657,0x6fb7d86f,0xdceb37dc,0x15514415,0x7ba6dd7b,0xf709fef7,0x3ab68c3a,0xbc932fbc,0x0c0f030c,0xff03fcff,0xa9c26ba9,0xc9ba73c9,0xb5d96cb5,0xb1dc6db1,0x6d375a6d,0x45155045,0x36b98f36,0x6c771b6c,0xbe13adbe,0x4ada904a,0xee57b9ee,0x77a9de77,0xf24cbef2,0xfd837efd,0x44551144,0x67bdda67,0x712c5d71,0x05454005,0x7c631f7c,0x40501040,0x69325b69,0x63b8db63,0x28220a28,0x07c5c207,0xc4f531c4,0x22a88a22,0x9631a796,0x37f9ce37,0xed977aed,0xf649bff6,0xb4992db4,0xd1a475d1,0x4390d343,0x485a1248,0xe258bae2,0x9771e697,0xd264b6d2,0xc270b2c2,0x26ad8b26,0xa5cd68a5,0x5ecb955e,0x29624b29,0x303c0c30,0x5ace945a,0xddab76dd,0xf9867ff9,0x95f16495,0xe65dbbe6,0xc735f2c7,0x242d0924,0x17d1c617,0xb9d66fb9,0x1bdec51b,0x12948612,0x60781860,0xc330f3c3,0xf5897cf5,0xb35cefb3,0xe8d23ae8,0x73acdf73,0x35794c35,0x80a02080,0xe59d78e5,0xbb56edbb,0x7d235e7d,0xf8c63ef8,0x5f8bd45f,0x2fe7c82f,0xe4dd39e4,0x21684921,
的代换表格为:
0x8ed55b5b,0xd0924242,0x4deaa7a7,0x06fdfbfb,0xfccf3333,0x65e28787,0xc93df4f4,0x6bb5dede,0x4e165858,0x6eb4dada,0x44145050,0xcac10b0b,0x8828a0a0,0x17f8efef,0x9c2cb0b0,0x11051414,0x872bacac,0xfb669d9d,0xf2986a6a,0xae77d9d9,0x822aa8a8,0x46bcfafa,0x14041010,0xcfc00f0f,0x02a8aaaa,0x54451111,0x5f134c4c,0xbe269898,0x6d482525,0x9e841a1a,0x1e061818,0xfd9b6666,0xec9e7272,0x4a430909,0x10514141,0x24f7d3d3,0xd5934646,0x53ecbfbf,0xf89a6262,0x927be9e9,0xff33cccc,0x04555151,0x270b2c2c,0x4f420d0d,0x59eeb7b7,0xf3cc3f3f,0x1caeb2b2,0xea638989,0x74e79393,0x7fb1cece,0x6c1c7070,0x0daba6a6,0xedca2727,0x28082020,0x48eba3a3,0xc1975656,0x80820202,0xa3dc7f7f,0xc4965252,0x12f9ebeb,0xa174d5d5,0xb38d3e3e,0xc33ffcfc,0x3ea49a9a,0x5b461d1d,0x1b071c1c,0x3ba59e9e,0x0cfff3f3,0x3ff0cfcf,0xbf72cdcd,0x4b175c5c,0x52b8eaea,0x8f810e0e,0x3d586565,0xcc3cf0f0,0x7d196464,0x7ee59b9b,0x91871616,0x734e3d3d,0x08aaa2a2,0xc869a1a1,0xc76aadad,0x85830606,0x7ab0caca,0xb570c5c5,0xf4659191,0xb2d96b6b,0xa7892e2e,0x18fbe3e3,0x47e8afaf,0x330f3c3c,0x674a2d2d,0xb071c1c1,0x0e575959,0xe99f7676,0xe135d4d4,0x661e7878,0xb4249090,0x360e3838,0x265f7979,0xef628d8d,0x38596161,0x95d24747,0x2aa08a8a,0xb1259494,0xaa228888,0x8c7df1f1,0xd73becec,0x05010404,0xa5218484,0x9879e1e1,0x9b851e1e,0x84d75353,0x00000000,0x5e471919,0x0b565d5d,0xe39d7e7e,0x9fd04f4f,0xbb279c9c,0x1a534949,0x7c4d3131,0xee36d8d8,0x0a020808,0x7be49f9f,0x20a28282,0xd4c71313,0xe8cb2323,0xe69c7a7a,0x42e9abab,0x43bdfefe,0xa2882a2a,0x9ad14b4b,0x40410101,0xdbc41f1f,0xd838e0e0,0x61b7d6d6,0x2fa18e8e,0x2bf4dfdf,0x3af1cbcb,0xf6cd3b3b,0x1dfae7e7,0xe5608585,0x41155454,0x25a38686,0x60e38383,0x16acbaba,0x295c7575,0x34a69292,0xf7996e6e,0xe434d0d0,0x721a6868,0x01545555,0x19afb6b6,0xdf914e4e,0xfa32c8c8,0xf030c0c0,0x21f6d7d7,0xbc8e3232,0x75b3c6c6,0x6fe08f8f,0x691d7474,0x2ef5dbdb,0x6ae18b8b,0x962eb8b8,0x8a800a0a,0xfe679999,0xe2c92b2b,0xe0618181,0xc0c30303,0x8d29a4a4,0xaf238c8c,0x07a9aeae,0x390d3434,0x1f524d4d,0x764f3939,0xd36ebdbd,0x81d65757,0xb7d86f6f,0xeb37dcdc,0x51441515,0xa6dd7b7b,0x09fef7f7,0xb68c3a3a,0x932fbcbc,0x0f030c0c,0x03fcffff,0xc26ba9a9,0xba73c9c9,0xd96cb5b5,0xdc6db1b1,0x375a6d6d,0x15504545,0xb98f3636,0x771b6c6c,0x13adbebe,0xda904a4a,0x57b9eeee,0xa9de7777,0x4cbef2f2,0x837efdfd,0x55114444,0xbdda6767,0x2c5d7171,0x45400505,0x631f7c7c,0x50104040,0x325b6969,0xb8db6363,0x220a2828,0xc5c20707,0xf531c4c4,0xa88a2222,0x31a79696,0xf9ce3737,0x977aeded,0x49bff6f6,0x992db4b4,0xa475d1d1,0x90d34343,0x5a124848,0x58bae2e2,0x71e69797,0x64b6d2d2,0x70b2c2c2,0xad8b2626,0xcd68a5a5,0xcb955e5e,0x624b2929,0x3c0c3030,0xce945a5a,0xab76dddd,0x867ff9f9,0xf1649595,0x5dbbe6e6,0x35f2c7c7,0x2d092424,0xd1c61717,0xd66fb9b9,0xdec51b1b,0x94861212,0x78186060,0x30f3c3c3,0x897cf5f5,0x5cefb3b3,0xd23ae8e8,0xacdf7373,0x794c3535,0xa0208080,0x9d78e5e5,0x56edbbbb,0x235e7d7d,0xc63ef8f8,0x8bd45f5f,0xe7c82f2f,0xdd39e4e4,0x68492121。
本发明的技术效果为:使用分组查表技术,将SM4中合成置换T的计算进行分解,使得SM4加密算法中的线性变换计算由原先的4次查表、4次循环左移以及4次异或运算简化为4次查表和3次异或运算,提高了执行效率。
附图说明
图1是本发明涉及的SM4加密方法的流程图。
图2是本发明涉及的SM4加密装置的示意图。
具体实施方式
下面结合附图1-2进行具体说明。
图1示出了本发明涉及的SM4加密方法,该方法包括:
S11、迭代计算步骤,将128比特的数据表示为X=(X0,X1,X2,X3),32轮的加密密钥记为RKi,i=0,1,…,31,进行32次迭代运算: 其中表示异或运算;
S12、反序计算步骤,令(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32),则输出的128比特的加密数据表示为Y=(Y0,Y1,Y2,Y3);
其中,合成置换T的输入和输出都是32比特,由非线性变换τ和线性变换L复合而成T(·)=L(τ(·))。
在实际加密计算中,将32比特输入数据表示为:A=(a0,a1,a2,a3),其中,a0,a1,a2,a3均为8比特字节,则τ(A)=(S(a0),S(a1),S(a2),S(a3))。
根据上面的计算可得出,T(A)=L(τ(A))=L(S(a0),S(a1),S(a2),S(a3))。
下面是本发明的重点:定义L(B): <<<表示循环左移操作;记I32为32×32的单位矩阵,则B=I32·B;记为将I32的各行向上循环移动2行得到的矩阵,则有同理也有 其中通过将矩阵I32各行向上循环移动10、18、24行得到。记则有:
记I8为8×8的单位矩阵而08为8×8零矩阵,32比特字B为Sbox的输出,B=[S(a0),S(a1),S(a2),S(a3)]T,可如下表示:
其中
的值由8比特的输入a0决定,通过预计算含有256个元素的表格,记为并通过查表的方式来计算 的计算可以通过预计算4张含有256个元素的表格,并通过4次查表以及3次异或运算来完成。
其中,
的代换表格为:
0xd55b5b8e,0x924242d0,0xeaa7a74d,0xfdfbfb06,0xcf3333fc,0xe2878765,0x3df4f4c9,0xb5dede6b,0x1658584e,0xb4dada6e,0x14505044,0xc10b0bca,0x28a0a088,0xf8efef17,0x2cb0b09c,0x05141411,0x2bacac87,0x669d9dfb,0x986a6af2,0x77d9d9ae,0x2aa8a882,0xbcfafa46,0x04101014,0xc00f0fcf,0xa8aaaa02,0x45111154,0x134c4c5f,0x269898be,0x4825256d,0x841a1a9e,0x0618181e,0x9b6666fd,0x9e7272ec,0x4309094a,0x51414110,0xf7d3d324,0x934646d5,0xecbfbf53,0x9a6262f8,0x7be9e992,0x33ccccff,0x55515104,0x0b2c2c27,0x420d0d4f,0xeeb7b759,0xcc3f3ff3,0xaeb2b21c,0x638989ea,0xe7939374,0xb1cece7f,0x1c70706c,0xaba6a60d,0xca2727ed,0x08202028,0xeba3a348,0x975656c1,0x82020280,0xdc7f7fa3,0x965252c4,0xf9ebeb12,0x74d5d5a1,0x8d3e3eb3,0x3ffcfcc3,0xa49a9a3e,0x461d1d5b,0x071c1c1b,0xa59e9e3b,0xfff3f30c,0xf0cfcf3f,0x72cdcdbf,0x175c5c4b,0xb8eaea52,0x810e0e8f,0x5865653d,0x3cf0f0cc,0x1964647d,0xe59b9b7e,0x87161691,0x4e3d3d73,0xaaa2a208,0x69a1a1c8,0x6aadadc7,0x83060685,0xb0caca7a,0x70c5c5b5,0x659191f4,0xd96b6bb2,0x892e2ea7,0xfbe3e318,0xe8afaf47,0x0f3c3c33,0x4a2d2d67,0x71c1c1b0,0x5759590e,0x9f7676e9,0x35d4d4e1,0x1e787866,0x249090b4,0x0e383836,0x5f797926,0x628d8def,0x59616138,0xd2474795,0xa08a8a2a,0x259494b1,0x228888aa,0x7df1f18c,0x3bececd7,0x01040405,0x218484a5,0x79e1e198,0x851e1e9b,0xd7535384,0x00000000,0x4719195e,0x565d5d0b,0x9d7e7ee3,0xd04f4f9f,0x279c9cbb,0x5349491a,0x4d31317c,0x36d8d8ee,0x0208080a,0xe49f9f7b,0xa2828220,0xc71313d4,0xcb2323e8,0x9c7a7ae6,0xe9abab42,0xbdfefe43,0x882a2aa2,0xd14b4b9a,0x41010140,0xc41f1fdb,0x38e0e0d8,0xb7d6d661,0xa18e8e2f,0xf4dfdf2b,0xf1cbcb3a,0xcd3b3bf6,0xfae7e71d,0x608585e5,0x15545441,0xa3868625,0xe3838360,0xacbaba16,0x5c757529,0xa6929234,0x996e6ef7,0x34d0d0e4,0x1a686872,0x54555501,0xafb6b619,0x914e4edf,0x32c8c8fa,0x30c0c0f0,0xf6d7d721,0x8e3232bc,0xb3c6c675,0xe08f8f6f,0x1d747469,0xf5dbdb2e,0xe18b8b6a,0x2eb8b896,0x800a0a8a,0x679999fe,0xc92b2be2,0x618181e0,0xc30303c0,0x29a4a48d,0x238c8caf,0xa9aeae07,0x0d343439,0x524d4d1f,0x4f393976,0x6ebdbdd3,0xd6575781,0xd86f6fb7,0x37dcdceb,0x44151551,0xdd7b7ba6,0xfef7f709,0x8c3a3ab6,0x2fbcbc93,0x030c0c0f,0xfcffff03,0x6ba9a9c2,0x73c9c9ba,0x6cb5b5d9,0x6db1b1dc,0x5a6d6d37,0x50454515,0x8f3636b9,0x1b6c6c77,0xadbebe13,0x904a4ada,0xb9eeee57,0xde7777a9,0xbef2f24c,0x7efdfd83,0x11444455,0xda6767bd,0x5d71712c,0x40050545,0x1f7c7c63,0x10404050,0x5b696932,0xdb6363b8,0x0a282822,0xc20707c5,0x31c4c4f5,0x8a2222a8,0xa7969631,0xce3737f9,0x7aeded97,0xbff6f649,0x2db4b499,0x75d1d1a4,0xd3434390,0x1248485a,0xbae2e258,0xe6979771,0xb6d2d264,0xb2c2c270,0x8b2626ad,0x68a5a5cd,0x955e5ecb,0x4b292962,0x0c30303c,0x945a5ace,0x76ddddab,0x7ff9f986,0x649595f1,0xbbe6e65d,0xf2c7c735,0x0924242d,0xc61717d1,0x6fb9b9d6,0xc51b1bde,0x86121294,0x18606078,0xf3c3c330,0x7cf5f589,0xefb3b35c,0x3ae8e8d2,0xdf7373ac,0x4c353579,0x208080a0,0x78e5e59d,0xedbbbb56,0x5e7d7d23,0x3ef8f8c6,0xd45f5f8b,0xc82f2fe7,0x39e4e4dd,0x49212168,
的代换表格为:
0x5b5b8ed5,0x4242d092,0xa7a74dea,0xfbfb06fd,0x3333fccf,0x878765e2,0xf4f4c93d,0xdede6bb5,0x58584e16,0xdada6eb4,0x50504414,0x0b0bcac1,0xa0a08828,0xefef17f8,0xb0b09c2c,0x14141105,0xacac872b,0x9d9dfb66,0x6a6af298,0xd9d9ae77,0xa8a8822a,0xfafa46bc,0x10101404,0x0f0fcfc0,0xaaaa02a8,0x11115445,0x4c4c5f13,0x9898be26,0x25256d48,0x1a1a9e84,0x18181e06,0x6666fd9b,0x7272ec9e,0x09094a43,0x41411051,0xd3d324f7,0x4646d593,0xbfbf53ec,0x6262f89a,0xe9e9927b,0xccccff33,0x51510455,0x2c2c270b,0x0d0d4f42,0xb7b759ee,0x3f3ff3cc,0xb2b21cae,0x8989ea63,0x939374e7,0xcece7fb1,0x70706c1c,0xa6a60dab,0x2727edca,0x20202808,0xa3a348eb,0x5656c197,0x02028082,0x7f7fa3dc,0x5252c496,0xebeb12f9,0xd5d5a174,0x3e3eb38d,0xfcfcc33f,0x9a9a3ea4,0x1d1d5b46,0x1c1c1b07,0x9e9e3ba5,0xf3f30cff,0xcfcf3ff0,0xcdcdbf72,0x5c5c4b17,0xeaea52b8,0x0e0e8f81,0x65653d58,0xf0f0cc3c,0x64647d19,0x9b9b7ee5,0x16169187,0x3d3d734e,0xa2a208aa,0xa1a1c869,0xadadc76a,0x06068583,0xcaca7ab0,0xc5c5b570,0x9191f465,0x6b6bb2d9,0x2e2ea789,0xe3e318fb,0xafaf47e8,0x3c3c330f,0x2d2d674a,0xc1c1b071,0x59590e57,0x7676e99f,0xd4d4e135,0x7878661e,0x9090b424,0x3838360e,0x7979265f,0x8d8def62,0x61613859,0x474795d2,0x8a8a2aa0,0x9494b125,0x8888aa22,0xf1f18c7d,0xececd73b,0x04040501,0x8484a521,0xe1e19879,0x1e1e9b85,0x535384d7,0x00000000,0x19195e47,0x5d5d0b56,0x7e7ee39d,0x4f4f9fd0,0x9c9cbb27,0x49491a53,0x31317c4d,0xd8d8ee36,0x08080a02,0x9f9f7be4,0x828220a2,0x1313d4c7,0x2323e8cb,0x7a7ae69c,0xabab42e9,0xfefe43bd,0x2a2aa288,0x4b4b9ad1,0x01014041,0x1f1fdbc4,0xe0e0d838,0xd6d661b7,0x8e8e2fa1,0xdfdf2bf4,0xcbcb3af1,0x3b3bf6cd,0xe7e71dfa,0x8585e560,0x54544115,0x868625a3,0x838360e3,0xbaba16ac,0x7575295c,0x929234a6,0x6e6ef799,0xd0d0e434,0x6868721a,0x55550154,0xb6b619af,0x4e4edf91,0xc8c8fa32,0xc0c0f030,0xd7d721f6,0x3232bc8e,0xc6c675b3,0x8f8f6fe0,0x7474691d,0xdbdb2ef5,0x8b8b6ae1,0xb8b8962e,0x0a0a8a80,0x9999fe67,0x2b2be2c9,0x8181e061,0x0303c0c3,0xa4a48d29,0x8c8caf23,0xaeae07a9,0x3434390d,0x4d4d1f52,0x3939764f,0xbdbdd36e,0x575781d6,0x6f6fb7d8,0xdcdceb37,0x15155144,0x7b7ba6dd,0xf7f709fe,0x3a3ab68c,0xbcbc932f,0x0c0c0f03,0xffff03fc,0xa9a9c26b,0xc9c9ba73,0xb5b5d96c,0xb1b1dc6d,0x6d6d375a,0x45451550,0x3636b98f,0x6c6c771b,0xbebe13ad,0x4a4ada90,0xeeee57b9,0x7777a9de,0xf2f24cbe,0xfdfd837e,0x44445511,0x6767bdda,0x71712c5d,0x05054540,0x7c7c631f,0x40405010,0x6969325b,0x6363b8db,0x2828220a,0x0707c5c2,0xc4c4f531,0x2222a88a,0x969631a7,0x3737f9ce,0xeded977a,0xf6f649bf,0xb4b4992d,0xd1d1a475,0x434390d3,0x48485a12,0xe2e258ba,0x979771e6,0xd2d264b6,0xc2c270b2,0x2626ad8b,0xa5a5cd68,0x5e5ecb95,0x2929624b,0x30303c0c,0x5a5ace94,0xddddab76,0xf9f9867f,0x9595f164,0xe6e65dbb,0xc7c735f2,0x24242d09,0x1717d1c6,0xb9b9d66f,0x1b1bdec5,0x12129486,0x60607818,0xc3c330f3,0xf5f5897c,0xb3b35cef,0xe8e8d23a,0x7373acdf,0x3535794c,0x8080a020,0xe5e59d78,0xbbbb56ed,0x7d7d235e,0xf8f8c63e,0x5f5f8bd4,0x2f2fe7c8,0xe4e4dd39,0x21216849,
的代换表格为:
0x5b8ed55b,0x42d09242,0xa74deaa7,0xfb06fdfb,0x33fccf33,0x8765e287,0xf4c93df4,0xde6bb5de,0x584e1658,0xda6eb4da,0x50441450,0x0bcac10b,0xa08828a0,0xef17f8ef,0xb09c2cb0,0x14110514,0xac872bac,0x9dfb669d,0x6af2986a,0xd9ae77d9,0xa8822aa8,0xfa46bcfa,0x10140410,0x0fcfc00f,0xaa02a8aa,0x11544511,0x4c5f134c,0x98be2698,0x256d4825,0x1a9e841a,0x181e0618,0x66fd9b66,0x72ec9e72,0x094a4309,0x41105141,0xd324f7d3,0x46d59346,0xbf53ecbf,0x62f89a62,0xe9927be9,0xccff33cc,0x51045551,0x2c270b2c,0x0d4f420d,0xb759eeb7,0x3ff3cc3f,0xb21caeb2,0x89ea6389,0x9374e793,0xce7fb1ce,0x706c1c70,0xa60daba6,0x27edca27,0x20280820,0xa348eba3,0x56c19756,0x02808202,0x7fa3dc7f,0x52c49652,0xeb12f9eb,0xd5a174d5,0x3eb38d3e,0xfcc33ffc,0x9a3ea49a,0x1d5b461d,0x1c1b071c,0x9e3ba59e,0xf30cfff3,0xcf3ff0cf,0xcdbf72cd,0x5c4b175c,0xea52b8ea,0x0e8f810e,0x653d5865,0xf0cc3cf0,0x647d1964,0x9b7ee59b,0x16918716,0x3d734e3d,0xa208aaa2,0xa1c869a1,0xadc76aad,0x06858306,0xca7ab0ca,0xc5b570c5,0x91f46591,0x6bb2d96b,0x2ea7892e,0xe318fbe3,0xaf47e8af,0x3c330f3c,0x2d674a2d,0xc1b071c1,0x590e5759,0x76e99f76,0xd4e135d4,0x78661e78,0x90b42490,0x38360e38,0x79265f79,0x8def628d,0x61385961,0x4795d247,0x8a2aa08a,0x94b12594,0x88aa2288,0xf18c7df1,0xecd73bec,0x04050104,0x84a52184,0xe19879e1,0x1e9b851e,0x5384d753,0x00000000,0x195e4719,0x5d0b565d,0x7ee39d7e,0x4f9fd04f,0x9cbb279c,0x491a5349,0x317c4d31,0xd8ee36d8,0x080a0208,0x9f7be49f,0x8220a282,0x13d4c713,0x23e8cb23,0x7ae69c7a,0xab42e9ab,0xfe43bdfe,0x2aa2882a,0x4b9ad14b,0x01404101,0x1fdbc41f,0xe0d838e0,0xd661b7d6,0x8e2fa18e,0xdf2bf4df,0xcb3af1cb,0x3bf6cd3b,0xe71dfae7,0x85e56085,0x54411554,0x8625a386,0x8360e383,0xba16acba,0x75295c75,0x9234a692,0x6ef7996e,0xd0e434d0,0x68721a68,0x55015455,0xb619afb6,0x4edf914e,0xc8fa32c8,0xc0f030c0,0xd721f6d7,0x32bc8e32,0xc675b3c6,0x8f6fe08f,0x74691d74,0xdb2ef5db,0x8b6ae18b,0xb8962eb8,0x0a8a800a,0x99fe6799,0x2be2c92b,0x81e06181,0x03c0c303,0xa48d29a4,0x8caf238c,0xae07a9ae,0x34390d34,0x4d1f524d,0x39764f39,0xbdd36ebd,0x5781d657,0x6fb7d86f,0xdceb37dc,0x15514415,0x7ba6dd7b,0xf709fef7,0x3ab68c3a,0xbc932fbc,0x0c0f030c,0xff03fcff,0xa9c26ba9,0xc9ba73c9,0xb5d96cb5,0xb1dc6db1,0x6d375a6d,0x45155045,0x36b98f36,0x6c771b6c,0xbe13adbe,0x4ada904a,0xee57b9ee,0x77a9de77,0xf24cbef2,0xfd837efd,0x44551144,0x67bdda67,0x712c5d71,0x05454005,0x7c631f7c,0x40501040,0x69325b69,0x63b8db63,0x28220a28,0x07c5c207,0xc4f531c4,0x22a88a22,0x9631a796,0x37f9ce37,0xed977aed,0xf649bff6,0xb4992db4,0xd1a475d1,0x4390d343,0x485a1248,0xe258bae2,0x9771e697,0xd264b6d2,0xc270b2c2,0x26ad8b26,0xa5cd68a5,0x5ecb955e,0x29624b29,0x303c0c30,0x5ace945a,0xddab76dd,0xf9867ff9,0x95f16495,0xe65dbbe6,0xc735f2c7,0x242d0924,0x17d1c617,0xb9d66fb9,0x1bdec51b,0x12948612,0x60781860,0xc330f3c3,0xf5897cf5,0xb35cefb3,0xe8d23ae8,0x73acdf73,0x35794c35,0x80a02080,0xe59d78e5,0xbb56edbb,0x7d235e7d,0xf8c63ef8,0x5f8bd45f,0x2fe7c82f,0xe4dd39e4,0x21684921,
的代换表格为:
0x8ed55b5b,0xd0924242,0x4deaa7a7,0x06fdfbfb,0xfccf3333,0x65e28787,0xc93df4f4,0x6bb5dede,0x4e165858,0x6eb4dada,0x44145050,0xcac10b0b,0x8828a0a0,0x17f8efef,0x9c2cb0b0,0x11051414,0x872bacac,0xfb669d9d,0xf2986a6a,0xae77d9d9,0x822aa8a8,0x46bcfafa,0x14041010,0xcfc00f0f,0x02a8aaaa,0x54451111,0x5f134c4c,0xbe269898,0x6d482525,0x9e841a1a,0x1e061818,0xfd9b6666,0xec9e7272,0x4a430909,0x10514141,0x24f7d3d3,0xd5934646,0x53ecbfbf,0xf89a6262,0x927be9e9,0xff33cccc,0x04555151,0x270b2c2c,0x4f420d0d,0x59eeb7b7,0xf3cc3f3f,0x1caeb2b2,0xea638989,0x74e79393,0x7fb1cece,0x6c1c7070,0x0daba6a6,0xedca2727,0x28082020,0x48eba3a3,0xc1975656,0x80820202,0xa3dc7f7f,0xc4965252,0x12f9ebeb,0xa174d5d5,0xb38d3e3e,0xc33ffcfc,0x3ea49a9a,0x5b461d1d,0x1b071c1c,0x3ba59e9e,0x0cfff3f3,0x3ff0cfcf,0xbf72cdcd,0x4b175c5c,0x52b8eaea,0x8f810e0e,0x3d586565,0xcc3cf0f0,0x7d196464,0x7ee59b9b,0x91871616,0x734e3d3d,0x08aaa2a2,0xc869a1a1,0xc76aadad,0x85830606,0x7ab0caca,0xb570c5c5,0xf4659191,0xb2d96b6b,0xa7892e2e,0x18fbe3e3,0x47e8afaf,0x330f3c3c,0x674a2d2d,0xb071c1c1,0x0e575959,0xe99f7676,0xe135d4d4,0x661e7878,0xb4249090,0x360e3838,0x265f7979,0xef628d8d,0x38596161,0x95d24747,0x2aa08a8a,0xb1259494,0xaa228888,0x8c7df1f1,0xd73becec,0x05010404,0xa5218484,0x9879e1e1,0x9b851e1e,0x84d75353,0x00000000,0x5e471919,0x0b565d5d,0xe39d7e7e,0x9fd04f4f,0xbb279c9c,0x1a534949,0x7c4d3131,0xee36d8d8,0x0a020808,0x7be49f9f,0x20a28282,0xd4c71313,0xe8cb2323,0xe69c7a7a,0x42e9abab,0x43bdfefe,0xa2882a2a,0x9ad14b4b,0x40410101,0xdbc41f1f,0xd838e0e0,0x61b7d6d6,0x2fa18e8e,0x2bf4dfdf,0x3af1cbcb,0xf6cd3b3b,0x1dfae7e7,0xe5608585,0x41155454,0x25a38686,0x60e38383,0x16acbaba,0x295c7575,0x34a69292,0xf7996e6e,0xe434d0d0,0x721a6868,0x01545555,0x19afb6b6,0xdf914e4e,0xfa32c8c8,0xf030c0c0,0x21f6d7d7,0xbc8e3232,0x75b3c6c6,0x6fe08f8f,0x691d7474,0x2ef5dbdb,0x6ae18b8b,0x962eb8b8,0x8a800a0a,0xfe679999,0xe2c92b2b,0xe0618181,0xc0c30303,0x8d29a4a4,0xaf238c8c,0x07a9aeae,0x390d3434,0x1f524d4d,0x764f3939,0xd36ebdbd,0x81d65757,0xb7d86f6f,0xeb37dcdc,0x51441515,0xa6dd7b7b,0x09fef7f7,0xb68c3a3a,0x932fbcbc,0x0f030c0c,0x03fcffff,0xc26ba9a9,0xba73c9c9,0xd96cb5b5,0xdc6db1b1,0x375a6d6d,0x15504545,0xb98f3636,0x771b6c6c,0x13adbebe,0xda904a4a,0x57b9eeee,0xa9de7777,0x4cbef2f2,0x837efdfd,0x55114444,0xbdda6767,0x2c5d7171,0x45400505,0x631f7c7c,0x50104040,0x325b6969,0xb8db6363,0x220a2828,0xc5c20707,0xf531c4c4,0xa88a2222,0x31a79696,0xf9ce3737,0x977aeded,0x49bff6f6,0x992db4b4,0xa475d1d1,0x90d34343,0x5a124848,0x58bae2e2,0x71e69797,0x64b6d2d2,0x70b2c2c2,0xad8b2626,0xcd68a5a5,0xcb955e5e,0x624b2929,0x3c0c3030,0xce945a5a,0xab76dddd,0x867ff9f9,0xf1649595,0x5dbbe6e6,0x35f2c7c7,0x2d092424,0xd1c61717,0xd66fb9b9,0xdec51b1b,0x94861212,0x78186060,0x30f3c3c3,0x897cf5f5,0x5cefb3b3,0xd23ae8e8,0xacdf7373,0x794c3535,0xa0208080,0x9d78e5e5,0x56edbbbb,0x235e7d7d,0xc63ef8f8,0x8bd45f5f,0xe7c82f2f,0xdd39e4e4,0x68492121。
软件实现分块密码算法的一种快捷技术是查表法:将S盒的复杂有限域运算事先计算好置入一个表格,加解密运算时仅需查表得到结果从而避免了实时进行复杂运算。事实上SM4算法官方公布的说明书的S盒部分也仅仅给出了一张表格。S盒查表算法的输入数据是8比特,输出数据也是8比特,SM4算法的软件查表算法实现需要在内存中占据256 x 8比特=2048比特大小的空间。本发明将1个大小为65536比特的S盒表转变为4个不同的表,每个表的大小为256 x 32=8192比特,所以SM4算法的软件实现用本发明算法需要在内存中占据4 x 8192=32,768比特大小的空间。,并且32,768比特的表格能够完全置入L1高速缓存中,并降低了计算复杂度,提高了执行效率。
图2示出了本发明涉及的SM4加密装置,包括:
迭代计算单元21,将128比特的数据表示为X=(X0,X1,X2,X3),32轮的加密密钥记为RKi,i=0,1,…,31,进行32次迭代运算: 其中表示异或运算;
反序计算单元22,令(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32),则输出的128比特的加密数据表示为Y=(Y0,Y1,Y2,Y3);
其中,合成置换T的输入和输出都是32比特,由非线性变换τ和线性变换L复合而成T(·)=L(τ(·))。
该装置可以通过软件模块实现,可以执行与上述方法对应的功能。上述装置也可以用硬件实现,通常硬件实现方法有:Field Programmable Gate Arrays(FPGAs),application specific integrated circuits(ASIC)s电路等。
本发明所述的方法,可以通过计算机程序实现,也可以将计算机程序存储在存储介质上,处理器从存储介质上读取计算机程序,并执行相应的方法,完成串联补偿装置的工作状态的监测,确保其工作安全。本发明所述的装置可以实现为计算机程序模块,可以被记录在存储介质上,用于使处理器执行相应的操作。
最后所应说明的是:以上实施例仅以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种SM4加密方法,其特征在于,包括:
迭代计算步骤,将128比特的数据表示为X=(X0,X1,X2,X3),32轮的加密密钥记为RKi,i=0,1,...,31,进行32次迭代运算: 其中表示异或运算;
反序计算步骤,令(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32),则输出的128比特的加密数据表示为Y=(Y0,Y1,Y2,Y3);
其中,合成置换T的输入和输出都是32比特,由非线性变换τ和线性变换L复合而成T(·)=L(τ(·))。
2.根据权利要求1所述的SM4加密方法,其特征在于,将32比特输入数据表示为:A=(a0,a1,a2,a3),其中,a0,a1,a2,a3均为8比特字节,则τ(A)=(S(a0),S(a1),S(a2),S(a3))。
3.根据权利要求2所述的SM4加密方法,其特征在于,T(A)=L(τ(A))=L(S(a0),S(a1),S(a2),S(a3))。
4.根据权利要求3所述的SM4加密方法,其特征在于,定义L(B): <<<表示循环左移操作;记I32为32×32的单位矩阵,则B=I32·B;记为将I32的各行向上循环移动2行得到的矩阵,则有同理也有其中通过将矩阵I32各行向上循环移动10、18、24行得到;记则有:记I8为8×8的单位矩阵而08为8×8零矩阵,32比特字B为Sbox的输出,B=[S(a0),S(a1),S(a2),S(a3)]T,如下表示:
B = I 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 S ( a 0 ) 0 0 0 &CirclePlus; 0 8 0 8 0 8 0 8 0 8 I 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 S ( a 1 ) 0 0 &CirclePlus; 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 I 8 0 8 0 8 0 8 0 8 0 8 0 0 S ( a 2 ) 0 &CirclePlus; 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 I 8 0 0 0 S ( a 3 )
其中
的值由8比特的输入a0决定,通过预计算含有256个元素的表格,记为并通过查表的方式来计算的计算可以通过预计算4张含有256个元素的表格,并通过4次查表以及3次异或运算来完成。
5.根据权利要求4所述的SM4加密方法,其特征在于,
的代换表格为:
0xd55b5b8e,0x924242d0,0xeaa7a74d,0xfdfbfb06,0xcf3333fc,0xe2878765,0x3df4f4c9,0xb5dede6b,0x1658584e,0xb4dada6e,0x14505044,0xc10b0bca,0x28a0a088,0xf8efef17,0x2cb0b09c,0x05141411,0x2bacac87,0x669d9dfb,0x986a6af2,0x77d9d9ae,0x2aa8a882,0xbcfafa46,0x04101014,0xc00f0fcf,0xa8aaaa02,0x45111154,0x134c4c5f,0x269898be,0x4825256d,0x841a1a9e,0x0618181e,0x9b6666fd,0x9e7272ec,0x4309094a,0x51414110,0xf7d3d324,0x934646d5,0xecbfbf53,0x9a6262f8,0x7be9e992,0x33ccccff,0x55515104,0x0b2c2c27,0x420d0d4f,0xeeb7b759,0xcc3f3ff3,0xaeb2b21c,0x638989ea,0xe7939374,0xb1cece7f,0x1c70706c,0xaba6a60d,0xca2727ed,0x08202028,0xeba3a348,0x975656c1,0x82020280,0xdc7f7fa3,0x965252c4,0xf9ebeb12,0x74d5d5a1,0x8d3e3eb3,0x3ffcfcc3,0xa49a9a3e,0x461d1d5b,0x071c1c1b,0xa59e9e3b,0xfff3f30c,0xf0cfcf3f,0x72cdcdbf,0x175c5c4b,0xb8eaea52,0x810e0e8f,0x5865653d,0x3cf0f0cc,0x1964647d,0xe59b9b7e,0x87161691,0x4e3d3d73,0xaaa2a208,0x69a1a1c8,0x6aadadc7,0x83060685,0xb0caca7a,0x70c5c5b5,0x659191f4,0xd96b6bb2,0x892e2ea7,0xfbe3e318,0xe8afaf47,0x0f3c3c33,0x4a2d2d67,0x71c1c1b0,0x5759590e,0x9f7676e9,0x35d4d4e1,0x1e787866,0x249090b4,0x0e383836,0x5f797926,0x628d8def,0x59616138,0xd2474795,0xa08a8a2a,0x259494b1,0x228888aa,0x7df1f18c,0x3bececd7,0x01040405,0x218484a5,0x79e1e198,0x851e1e9b,0xd7535384,0x00000000,0x4719195e,0x565d5d0b,0x9d7e7ee3,0xd04f4f9f,0x279c9cbb,0x5349491a,0x4d31317c,0x36d8d8ee,0x0208080a,0xe49f9f7b,0xa2828220,0xc71313d4,0xcb2323e8,0x9c7a7ae6,0xe9abab42,0xbdfefe43,0x882a2aa2,0xd14b4b9a,0x41010140,0xc41f1fdb,0x38e0e0d8,0xb7d6d661,0xa18e8e2f,0xf4dfdf2b,0xf1cbcb3a,0xcd3b3bf6,0xfae7e71d,0x608585e5,0x15545441,0xa3868625,0xe3838360,0xacbaba16,0x5c757529,0xa6929234,0x996e6ef7,0x34d0d0e4,0x1a686872,0x54555501,0xafb6b619,0x914e4edf,0x32c8c8fa,0x30c0c0f0,0xf6d7d721,0x8e3232bc,0xb3c6c675,0xe08f8f6f,0x1d747469,0xf5dbdb2e,0xe18b8b6a,0x2eb8b896,0x800a0a8a,0x679999fe,0xc92b2be2,0x618181e0,0xc30303c0,0x29a4a48d,0x238c8caf,0xa9aeae07,0x0d343439,0x524d4d1f,0x4f393976,0x6ebdbdd3,0xd6575781,0xd86f6fb7,0x37dcdceb,0x44151551,0xdd7b7ba6,0xfef7f709,0x8c3a3ab6,0x2fbcbc93,0x030c0c0f,0xfcffff03,0x6ba9a9c2,0x73c9c9ba,0x6cb5b5d9,0x6db1b1dc,0x5a6d6d37,0x50454515,0x8f3636b9,0x1b6c6c77,0xadbebe13,0x904a4ada,0xb9eeee57,0xde7777a9,0xbef2f24c,0x7efdfd83,0x11444455,0xda6767bd,0x5d71712c,0x40050545,0x1f7c7c63,0x10404050,0x5b696932,0xdb6363b8,0x0a282822,0xc20707c5,0x31c4c4f5,0x8a2222a8,0xa7969631,0xce3737f9,0x7aeded97,0xbff6f649,0x2db4b499,0x75d1d1a4,0xd3434390,0x1248485a,0xbae2e258,0xe6979771,0xb6d2d264,0xb2c2c270,0x8b2626ad,0x68a5a5cd,0x955e5ecb,0x4b292962,0x0c30303c,0x945a5ace,0x76ddddab,0x7ff9f986,0x649595f1,0xbbe6e65d,0xf2c7c735,0x0924242d,0xc61717d1,0x6fb9b9d6,0xc51b1bde,0x86121294,0x18606078,0xf3c3c330,0x7cf5f589,0xefb3b35c,0x3ae8e8d2,0xdf7373ac,0x4c353579,0x208080a0,0x78e5e59d,0xedbbbb56,0x5e7d7d23,0x3ef8f8c6,0xd45f5f8b,0xc82f2fe7,0x39e4e4dd,0x49212168,
的代换表格为:
0x5b5b8ed5,0x4242d092,0xa7a74dea,0xfbfb06fd,0x3333fccf,0x878765e2,0xf4f4c93d,0xdede6bb5,0x58584e16,0xdada6eb4,0x50504414,0x0b0bcac1,0xa0a08828,0xefef17f8,0xb0b09c2c,0x14141105,0xacac872b,0x9d9dfb66,0x6a6af298,0xd9d9ae77,0xa8a8822a,0xfafa46bc,0x10101404,0x0f0fcfc0,0xaaaa02a8,0x11115445,0x4c4c5f13,0x9898be26,0x25256d48,0x1a1a9e84,0x18181e06,0x6666fd9b,0x7272ec9e,0x09094a43,0x41411051,0xd3d324f7,0x4646d593,0xbfbf53ec,0x6262f89a,0xe9e9927b,0xccccff33,0x51510455,0x2c2c270b,0x0d0d4f42,0xb7b759ee,0x3f3ff3cc,0xb2b21cae,0x8989ea63,0x939374e7,0xcece7fb1,0x70706c1c,0xa6a60dab,0x2727edca,0x20202808,0xa3a348eb,0x5656c197,0x02028082,0x7f7fa3dc,0x5252c496,0xebeb12f9,0xd5d5a174,0x3e3eb38d,0xfcfcc33f,0x9a9a3ea4,0x1d1d5b46,0x1c1c1b07,0x9e9e3ba5,0xf3f30cff,0xcfcf3ff0,0xcdcdbf72,0x5c5c4b17,0xeaea52b8,0x0e0e8f81,0x65653d58,0xf0f0cc3c,0x64647d19,0x9b9b7ee5,0x16169187,0x3d3d734e,0xa2a208aa,0xa1a1c869,0xadadc76a,0x06068583,0xcaca7ab0,0xc5c5b570,0x9191f465,0x6b6bb2d9,0x2e2ea789,0xe3e318fb,0xafaf47e8,0x3c3c330f,0x2d2d674a,0xc1c1b071,0x59590e57,0x7676e99f,0xd4d4e135,0x7878661e,0x9090b424,0x3838360e,0x7979265f,0x8d8def62,0x61613859,0x474795d2,0x8a8a2aa0,0x9494b125,0x8888aa22,0xf1f18c7d,0xececd73b,0x04040501,0x8484a521,0xe1e19879,0x1e1e9b85,0x535384d7,0x00000000,0x19195e47,0x5d5d0b56,0x7e7ee39d,0x4f4f9fd0,0x9c9cbb27,0x49491a53,0x31317c4d,0xd8d8ee36,0x08080a02,0x9f9f7be4,0x828220a2,0x1313d4c7,0x2323e8cb,0x7a7ae69c,0xabab42e9,0xfefe43bd,0x2a2aa288,0x4b4b9ad1,0x01014041,0x1f1fdbc4,0xe0e0d838,0xd6d661b7,0x8e8e2fa1,0xdfdf2bf4,0xcbcb3af1,0x3b3bf6cd,0xe7e71dfa,0x8585e560,0x54544115,0x868625a3,0x838360e3,0xbaba16ac,0x7575295c,0x929234a6,0x6e6ef799,0xd0d0e434,0x6868721a,0x55550154,0xb6b619af,0x4e4edf91,0xc8c8fa32,0xc0c0f030,0xd7d721f6,0x3232bc8e,0xc6c675b3,0x8f8f6fe0,0x7474691d,0xdbdb2ef5,0x8b8b6ae1,0xb8b8962e,0x0a0a8a80,0x9999fe67,0x2b2be2c9,0x8181e061,0x0303c0c3,0xa4a48d29,0x8c8caf23,0xaeae07a9,0x3434390d,0x4d4d1f52,0x3939764f,0xbdbdd36e,0x575781d6,0x6f6fb7d8,0xdcdceb37,0x15155144,0x7b7ba6dd,0xf7f709fe,0x3a3ab68c,0xbcbc932f,0x0c0c0f03,0xffff03fc,0xa9a9c26b,0xc9c9ba73,0xb5b5d96c,0xb1b1dc6d,0x6d6d375a,0x45451550,0x3636b98f,0x6c6c771b,0xbebe13ad,0x4a4ada90,0xeeee57b9,0x7777a9de,0xf2f24cbe,0xfdfd837e,0x44445511,0x6767bdda,0x71712c5d,0x05054540,0x7c7c631f,0x40405010,0x6969325b,0x6363b8db,0x2828220a,0x0707c5c2,0xc4c4f531,0x2222a88a,0x969631a7,0x3737f9ce,0xeded977a,0xf6f649bf,0xb4b4992d,0xd1d1a475,0x434390d3,0x48485a12,0xe2e258ba,0x979771e6,0xd2d264b6,0xc2c270b2,0x2626ad8b,0xa5a5cd68,0x5e5ecb95,0x2929624b,0x30303c0c,0x5a5ace94,0xddddab76,0xf9f9867f,0x9595f164,0xe6e65dbb,0xc7c735f2,0x24242d09,0x1717d1c6,0xb9b9d66f,0x1b1bdec5,0x12129486,0x60607818,0xc3c330f3,0xf5f5897c,0xb3b35cef,0xe8e8d23a,0x7373acdf,0x3535794c,0x8080a020,0xe5e59d78,0xbbbb56ed,0x7d7d235e,0xf8f8c63e,0x5f5f8bd4,0x2f2fe7c8,0xe4e4dd39,0x21216849,
的代换表格为:
0x5b8ed55b,0x42d09242,0xa74deaa7,0xfb06fdfb,0x33fccf33,0x8765e287,0xf4c93df4,0xde6bb5de,0x584e1658,0xda6eb4da,0x50441450,0x0bcac10b,0xa08828a0,0xef17f8ef,0xb09c2cb0,0x14110514,0xac872bac,0x9dfb669d,0x6af2986a,0xd9ae77d9,0xa8822aa8,0xfa46bcfa,0x10140410,0x0fcfc00f,0xaa02a8aa,0x11544511,0x4c5f134c,0x98be2698,0x256d4825,0x1a9e841a,0x181e0618,0x66fd9b66,0x72ec9e72,0x094a4309,0x41105141,0xd324f7d3,0x46d59346,0xbf53ecbf,0x62f89a62,0xe9927be9,0xccff33cc,0x51045551,0x2c270b2c,0x0d4f420d,0xb759eeb7,0x3ff3cc3f,0xb21caeb2,0x89ea6389,0x9374e793,0xce7fb1ce,0x706c1c70,0xa60daba6,0x27edca27,0x20280820,0xa348eba3,0x56c19756,0x02808202,0x7fa3dc7f,0x52c49652,0xeb12f9eb,0xd5a174d5,0x3eb38d3e,0xfcc33ffc,0x9a3ea49a,0x1d5b461d,0x1c1b071c,0x9e3ba59e,0xf30cfff3,0xcf3ff0cf,0xcdbf72cd,0x5c4b175c,0xea52b8ea,0x0e8f810e,0x653d5865,0xf0cc3cf0,0x647d1964,0x9b7ee59b,0x16918716,0x3d734e3d,0xa208aaa2,0xa1c869a1,0xadc76aad,0x06858306,0xca7ab0ca,0xc5b570c5,0x91f46591,0x6bb2d96b,0x2ea7892e,0xe318fbe3,0xaf47e8af,0x3c330f3c,0x2d674a2d,0xc1b071c1,0x590e5759,0x76e99f76,0xd4e135d4,0x78661e78,0x90b42490,0x38360e38,0x79265f79,0x8def628d,0x61385961,0x4795d247,0x8a2aa08a,0x94b12594,0x88aa2288,0xf18c7df1,0xecd73bec,0x04050104,0x84a52184,0xe19879e1,0x1e9b851e,0x5384d753,0x00000000,0x195e4719,0x5d0b565d,0x7ee39d7e,0x4f9fd04f,0x9cbb279c,0x491a5349,0x317c4d31,0xd8ee36d8,0x080a0208,0x9f7be49f,0x8220a282,0x13d4c713,0x23e8cb23,0x7ae69c7a,0xab42e9ab,0xfe43bdfe,0x2aa2882a,0x4b9ad14b,0x01404101,0x1fdbc41f,0xe0d838e0,0xd661b7d6,0x8e2fa18e,0xdf2bf4df,0xcb3af1cb,0x3bf6cd3b,0xe71dfae7,0x85e56085,0x54411554,0x8625a386,0x8360e383,0xba16acba,0x75295c75,0x9234a692,0x6ef7996e,0xd0e434d0,0x68721a68,0x55015455,0xb619afb6,0x4edf914e,0xc8fa32c8,0xc0f030c0,0xd721f6d7,0x32bc8e32,0xc675b3c6,0x8f6fe08f,0x74691d74,0xdb2ef5db,0x8b6ae18b,0xb8962eb8,0x0a8a800a,0x99fe6799,0x2be2c92b,0x81e06181,0x03c0c303,0xa48d29a4,0x8caf238c,0xae07a9ae,0x34390d34,0x4d1f524d,0x39764f39,0xbdd36ebd,0x5781d657,0x6fb7d86f,0xdceb37dc,0x15514415,0x7ba6dd7b,0xf709fef7,0x3ab68c3a,0xbc932fbc,0x0c0f030c,0xff03fcff,0xa9c26ba9,0xc9ba73c9,0xb5d96cb5,0xb1dc6db1,0x6d375a6d,0x45155045,0x36b98f36,0x6c771b6c,0xbe13adbe,0x4ada904a,0xee57b9ee,0x77a9de77,0xf24cbef2,0xfd837efd,0x44551144,0x67bdda67,0x712c5d71,0x05454005,0x7c631f7c,0x40501040,0x69325b69,0x63b8db63,0x28220a28,0x07c5c207,0xc4f531c4,0x22a88a22,0x9631a796,0x37f9ce37,0xed977aed,0xf649bff6,0xb4992db4,0xd1a475d1,0x4390d343,0x485a1248,0xe258bae2,0x9771e697,0xd264b6d2,0xc270b2c2,0x26ad8b26,0xa5cd68a5,0x5ecb955e,0x29624b29,0x303c0c30,0x5ace945a,0xddab76dd,0xf9867ff9,0x95f16495,0xe65dbbe6,0xc735f2c7,0x242d0924,0x17d1c617,0xb9d66fb9,0x1bdec51b,0x12948612,0x60781860,0xc330f3c3,0xf5897cf5,0xb35cefb3,0xe8d23ae8,0x73acdf73,0x35794c35,0x80a02080,0xe59d78e5,0xbb56edbb,0x7d235e7d,0xf8c63ef8,0x5f8bd45f,0x2fe7c82f,0xe4dd39e4,0x21684921,
的代换表格为:
0x8ed55b5b,0xd0924242,0x4deaa7a7,0x06fdfbfb,0xfccf3333,0x65e28787,0xc93df4f4,0x6bb5dede,0x4e165858,0x6eb4dada,0x44145050,0xcac10b0b,0x8828a0a0,0x17f8efef,0x9c2cb0b0,0x11051414,0x872bacac,0xfb669d9d,0xf2986a6a,0xae77d9d9,0x822aa8a8,0x46bcfafa,0x14041010,0xcfc00f0f,0x02a8aaaa,0x54451111,0x5f134c4c,0xbe269898,0x6d482525,0x9e841a1a,0x1e061818,0xfd9b6666,0xec9e7272,0x4a430909,0x10514141,0x24f7d3d3,0xd5934646,0x53ecbfbf,0xf89a6262,0x927be9e9,0xff33cccc,0x04555151,0x270b2c2c,0x4f420d0d,0x59eeb7b7,0xf3cc3f3f,0x1caeb2b2,0xea638989,0x74e79393,0x7fb1cece,0x6c1c7070,0x0daba6a6,0xedca2727,0x28082020,0x48eba3a3,0xc1975656,0x80820202,0xa3dc7f7f,0xc4965252,0x12f9ebeb,0xa174d5d5,0xb38d3e3e,0xc33ffcfc,0x3ea49a9a,0x5b461d1d,0x1b071c1c,0x3ba59e9e,0x0cfff3f3,0x3ff0cfcf,0xbf72cdcd,0x4b175c5c,0x52b8eaea,0x8f810e0e,0x3d586565,0xcc3cf0f0,0x7d196464,0x7ee59b9b,0x91871616,0x734e3d3d,0x08aaa2a2,0xc869a1a1,0xc76aadad,0x85830606,0x7ab0caca,0xb570c5c5,0xf4659191,0xb2d96b6b,0xa7892e2e,0x18fbe3e3,0x47e8afaf,0x330f3c3c,0x674a2d2d,0xb071c1c1,0x0e575959,0xe99f7676,0xe135d4d4,0x661e7878,0xb4249090,0x360e3838,0x265f7979,0xef628d8d,0x38596161,0x95d24747,0x2aa08a8a,0xb1259494,0xaa228888,0x8c7df1f1,0xd73becec,0x05010404,0xa5218484,0x9879e1e1,0x9b851e1e,0x84d75353,0x00000000,0x5e471919,0x0b565d5d,0xe39d7e7e,0x9fd04f4f,0xbb279c9c,0x1a534949,0x7c4d3131,0xee36d8d8,0x0a020808,0x7be49f9f,0x20a28282,0xd4c71313,0xe8cb2323,0xe69c7a7a,0x42e9abab,0x43bdfefe,0xa2882a2a,0x9ad14b4b,0x40410101,0xdbc41f1f,0xd838e0e0,0x61b7d6d6,0x2fa18e8e,0x2bf4dfdf,0x3af1cbcb,0xf6cd3b3b,0x1dfae7e7,0xe5608585,0x41155454,0x25a38686,0x60e38383,0x16acbaba,0x295c7575,0x34a69292,0xf7996e6e,0xe434d0d0,0x721a6868,0x01545555,0x19afb6b6,0xdf914e4e,0xfa32c8c8,0xf030c0c0,0x21f6d7d7,0xbc8e3232,0x75b3c6c6,0x6fe08f8f,0x691d7474,0x2ef5dbdb,0x6ae18b8b,0x962eb8b8,0x8a800a0a,0xfe679999,0xe2c92b2b,0xe0618181,0xc0c30303,0x8d29a4a4,0xaf238c8c,0x07a9aeae,0x390d3434,0x1f524d4d,0x764f3939,0xd36ebdbd,0x81d65757,0xb7d86f6f,0xeb37dcdc,0x51441515,0xa6dd7b7b,0x09fef7f7,0xb68c3a3a,0x932fbcbc,0x0f030c0c,0x03fcffff,0xc26ba9a9,0xba73c9c9,0xd96cb5b5,0xdc6db1b1,0x375a6d6d,0x15504545,0xb98f3636,0x771b6c6c,0x13adbebe,0xda904a4a,0x57b9eeee,0xa9de7777,0x4cbef2f2,0x837efdfd,0x55114444,0xbdda6767,0x2c5d7171,0x45400505,0x631f7c7c,0x50104040,0x325b6969,0xb8db6363,0x220a2828,0xc5c20707,0xf531c4c4,0xa88a2222,0x31a79696,0xf9ce3737,0x977aeded,0x49bff6f6,0x992db4b4,0xa475d1d1,0x90d34343,0x5a124848,0x58bae2e2,0x71e69797,0x64b6d2d2,0x70b2c2c2,0xad8b2626,0xcd68a5a5,0xcb955e5e,0x624b2929,0x3c0c3030,0xce945a5a,0xab76dddd,0x867ff9f9,0xf1649595,0x5dbbe6e6,0x35f2c7c7,0x2d092424,0xd1c61717,0xd66fb9b9,0xdec51b1b,0x94861212,0x78186060,0x30f3c3c3,0x897cf5f5,0x5cefb3b3,0xd23ae8e8,0xacdf7373,0x794c3535,0xa0208080,0x9d78e5e5,0x56edbbbb,0x235e7d7d,0xc63ef8f8,0x8bd45f5f,0xe7c82f2f,0xdd39e4e4,0x68492121。
6.一种SM4加密装置,其特征在于,包括:
迭代计算单元,将128比特的数据表示为X=(X0,X1,X2,X3),32轮的加密密钥记为RKi,i=0,1,...,31,进行32次迭代运算: 其中表示异或运算;
反序计算单元,令(Y0,Y1,Y2,Y3)=(X35,X34,X33,X32),则输出的128比特的加密数据表示为Y=(Y0,Y1,Y2,Y3);
其中,合成置换T的输入和输出都是32比特,由非线性变换τ和线性变换L复合而成T(·)=L(τ(·))。
7.根据权利要求6所述的SM4加密装置,其特征在于,将32比特输入数据表示为:A=(a0,a1,a2,a3),其中,a0,a1,a2,a3均为8比特字节,则τ(A)=(S(a0),S(a1),S(a2),S(a3))。
8.根据权利要求7所述的SM4加密装置,其特征在于,T(A)=L(τ(A))=L(S(a0),S(a1),S(a2),S(a3))。
9.根据权利要求8所述的SM4加密装置,其特征在于,定义L(B): <<<表示循环左移操作;记I32为32×32的单位矩阵,则B=I32·B;记为将I32的各行向上循环移动2行得到的矩阵,则有同理也有其中通过将矩阵I32各行向上循环移动10、18、24行得到;记则有:记I8为8×8的单位矩阵而08为8×8零矩阵,32比特字B为Sbox的输出,B=[S(a0),S(a1),S(a2),S(a3)]T,可如下表示:
B = I 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 S ( a 0 ) 0 0 0 &CirclePlus; 0 8 0 8 0 8 0 8 0 8 I 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 S ( a 1 ) 0 0 &CirclePlus; 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 I 8 0 8 0 8 0 8 0 8 0 8 0 0 S ( a 2 ) 0 &CirclePlus; 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 0 8 I 8 0 0 0 S ( a 3 )
其中
的值由8比特的输入a0决定,通过预计算含有256个元素的表格,记为并通过查表的方式来计算的计算可以通过预计算4张含有256个元素的表格,并通过4次查表以及3次异或运算来完成。
10.根据权利要求9所述的SM4加密装置,其特征在于,
的代换表格为:
0xd55b5b8e,0x924242d0,0xeaa7a74d,0xfdfbfb06,0xcf3333fc,0xe2878765,0x3df4f4c9,0xb5dede6b,0x1658584e,0xb4dada6e,0x14505044,0xc10b0bca,0x28a0a088,0xf8efef17,0x2cb0b09c,0x05141411,0x2bacac87,0x669d9dfb,0x986a6af2,0x77d9d9ae,0x2aa8a882,0xbcfafa46,0x04101014,0xc00f0fcf,0xa8aaaa02,0x45111154,0x134c4c5f,0x269898be,0x4825256d,0x841a1a9e,0x0618181e,0x9b6666fd,0x9e7272ec,0x4309094a,0x51414110,0xf7d3d324,0x934646d5,0xecbfbf53,0x9a6262f8,0x7be9e992,0x33ccccff,0x55515104,0x0b2c2c27,0x420d0d4f,0xeeb7b759,0xcc3f3ff3,0xaeb2b21c,0x638989ea,0xe7939374,0xb1cece7f,0x1c70706c,0xaba6a60d,0xca2727ed,0x08202028,0xeba3a348,0x975656c1,0x82020280,0xdc7f7fa3,0x965252c4,0xf9ebeb12,0x74d5d5a1,0x8d3e3eb3,0x3ffcfcc3,0xa49a9a3e,0x461d1d5b,0x071c1c1b,0xa59e9e3b,0xfff3f30c,0xf0cfcf3f,0x72cdcdbf,0x175c5c4b,0xb8eaea52,0x810e0e8f,0x5865653d,0x3cf0f0cc,0x1964647d,0xe59b9b7e,0x87161691,0x4e3d3d73,0xaaa2a208,0x69a1a1c8,0x6aadadc7,0x83060685,0xb0caca7a,0x70c5c5b5,0x659191f4,0xd96b6bb2,0x892e2ea7,0xfbe3e318,0xe8afaf47,0x0f3c3c33,0x4a2d2d67,0x71c1c1b0,0x5759590e,0x9f7676e9,0x35d4d4e1,0x1e787866,0x249090b4,0x0e383836,0x5f797926,0x628d8def,0x59616138,0xd2474795,0xa08a8a2a,0x259494b1,0x228888aa,0x7df1f18c,0x3bececd7,0x01040405,0x218484a5,0x79e1e198,0x851e1e9b,0xd7535384,0x00000000,0x4719195e,0x565d5d0b,0x9d7e7ee3,0xd04f4f9f,0x279c9cbb,0x5349491a,0x4d31317c,0x36d8d8ee,0x0208080a,0xe49f9f7b,0xa2828220,0xc71313d4,0xcb2323e8,0x9c7a7ae6,0xe9abab42,0xbdfefe43,0x882a2aa2,0xd14b4b9a,0x41010140,0xc41f1fdb,0x38e0e0d8,0xb7d6d661,0xa18e8e2f,0xf4dfdf2b,0xf1cbcb3a,0xcd3b3bf6,0xfae7e71d,0x608585e5,0x15545441,0xa3868625,0xe3838360,0xacbaba16,0x5c757529,0xa6929234,0x996e6ef7,0x34d0d0e4,0x1a686872,0x54555501,0xafb6b619,0x914e4edf,0x32c8c8fa,0x30c0c0f0,0xf6d7d721,0x8e3232bc,0xb3c6c675,0xe08f8f6f,0x1d747469,0xf5dbdb2e,0xe18b8b6a,0x2eb8b896,0x800a0a8a,0x679999fe,0xc92b2be2,0x618181e0,0xc30303c0,0x29a4a48d,0x238c8caf,0xa9aeae07,0x0d343439,0x524d4d1f,0x4f393976,0x6ebdbdd3,0xd6575781,0xd86f6fb7,0x37dcdceb,0x44151551,0xdd7b7ba6,0xfef7f709,0x8c3a3ab6,0x2fbcbc93,0x030c0c0f,0xfcffff03,0x6ba9a9c2,0x73c9c9ba,0x6cb5b5d9,0x6db1b1dc,0x5a6d6d37,0x50454515,0x8f3636b9,0x1b6c6c77,0xadbebe13,0x904a4ada,0xb9eeee57,0xde7777a9,0xbef2f24c,0x7efdfd83,0x11444455,0xda6767bd,0x5d71712c,0x40050545,0x1f7c7c63,0x10404050,0x5b696932,0xdb6363b8,0x0a282822,0xc20707c5,0x31c4c4f5,0x8a2222a8,0xa7969631,0xce3737f9,0x7aeded97,0xbff6f649,0x2db4b499,0x75d1d1a4,0xd3434390,0x1248485a,0xbae2e258,0xe6979771,0xb6d2d264,0xb2c2c270,0x8b2626ad,0x68a5a5cd,0x955e5ecb,0x4b292962,0x0c30303c,0x945a5ace,0x76ddddab,0x7ff9f986,0x649595f1,0xbbe6e65d,0xf2c7c735,0x0924242d,0xc61717d1,0x6fb9b9d6,0xc51b1bde,0x86121294,0x18606078,0xf3c3c330,0x7cf5f589,0xefb3b35c,0x3ae8e8d2,0xdf7373ac,0x4c353579,0x208080a0,0x78e5e59d,0xedbbbb56,0x5e7d7d23,0x3ef8f8c6,0xd45f5f8b,0xc82f2fe7,0x39e4e4dd,0x49212168,
的代换表格为:
0x5b5b8ed5,0x4242d092,0xa7a74dea,0xfbfb06fd,0x3333fccf,0x878765e2,0xf4f4c93d,0xdede6bb5,0x58584e16,0xdada6eb4,0x50504414,0x0b0bcac1,0xa0a08828,0xefef17f8,0xb0b09c2c,0x14141105,0xacac872b,0x9d9dfb66,0x6a6af298,0xd9d9ae77,0xa8a8822a,0xfafa46bc,0x10101404,0x0f0fcfc0,0xaaaa02a8,0x11115445,0x4c4c5f13,0x9898be26,0x25256d48,0x1a1a9e84,0x18181e06,0x6666fd9b,0x7272ec9e,0x09094a43,0x41411051,0xd3d324f7,0x4646d593,0xbfbf53ec,0x6262f89a,0xe9e9927b,0xccccff33,0x51510455,0x2c2c270b,0x0d0d4f42,0xb7b759ee,0x3f3ff3cc,0xb2b21cae,0x8989ea63,0x939374e7,0xcece7fb1,0x70706c1c,0xa6a60dab,0x2727edca,0x20202808,0xa3a348eb,0x5656c197,0x02028082,0x7f7fa3dc,0x5252c496,0xebeb12f9,0xd5d5a174,0x3e3eb38d,0xfcfcc33f,0x9a9a3ea4,0x1d1d5b46,0x1c1c1b07,0x9e9e3ba5,0xf3f30cff,0xcfcf3ff0,0xcdcdbf72,0x5c5c4b17,0xeaea52b8,0x0e0e8f81,0x65653d58,0xf0f0cc3c,0x64647d19,0x9b9b7ee5,0x16169187,0x3d3d734e,0xa2a208aa,0xa1a1c869,0xadadc76a,0x06068583,0xcaca7ab0,0xc5c5b570,0x9191f465,0x6b6bb2d9,0x2e2ea789,0xe3e318fb,0xafaf47e8,0x3c3c330f,0x2d2d674a,0xc1c1b071,0x59590e57,0x7676e99f,0xd4d4e135,0x7878661e,0x9090b424,0x3838360e,0x7979265f,0x8d8def62,0x61613859,0x474795d2,0x8a8a2aa0,0x9494b125,0x8888aa22,0xf1f18c7d,0xececd73b,0x04040501,0x8484a521,0xe1e19879,0x1e1e9b85,0x535384d7,0x00000000,0x19195e47,0x5d5d0b56,0x7e7ee39d,0x4f4f9fd0,0x9c9cbb27,0x49491a53,0x31317c4d,0xd8d8ee36,0x08080a02,0x9f9f7be4,0x828220a2,0x1313d4c7,0x2323e8cb,0x7a7ae69c,0xabab42e9,0xfefe43bd,0x2a2aa288,0x4b4b9ad1,0x01014041,0x1f1fdbc4,0xe0e0d838,0xd6d661b7,0x8e8e2fa1,0xdfdf2bf4,0xcbcb3af1,0x3b3bf6cd,0xe7e71dfa,0x8585e560,0x54544115,0x868625a3,0x838360e3,0xbaba16ac,0x7575295c,0x929234a6,0x6e6ef799,0xd0d0e434,0x6868721a,0x55550154,0xb6b619af,0x4e4edf91,0xc8c8fa32,0xc0c0f030,0xd7d721f6,0x3232bc8e,0xc6c675b3,0x8f8f6fe0,0x7474691d,0xdbdb2ef5,0x8b8b6ae1,0xb8b8962e,0x0a0a8a80,0x9999fe67,0x2b2be2c9,0x8181e061,0x0303c0c3,0xa4a48d29,0x8c8caf23,0xaeae07a9,0x3434390d,0x4d4d1f52,0x3939764f,0xbdbdd36e,0x575781d6,0x6f6fb7d8,0xdcdceb37,0x15155144,0x7b7ba6dd,0xf7f709fe,0x3a3ab68c,0xbcbc932f,0x0c0c0f03,0xffff03fc,0xa9a9c26b,0xc9c9ba73,0xb5b5d96c,0xb1b1dc6d,0x6d6d375a,0x45451550,0x3636b98f,0x6c6c771b,0xbebe13ad,0x4a4ada90,0xeeee57b9,0x7777a9de,0xf2f24cbe,0xfdfd837e,0x44445511,0x6767bdda,0x71712c5d,0x05054540,0x7c7c631f,0x40405010,0x6969325b,0x6363b8db,0x2828220a,0x0707c5c2,0xc4c4f531,0x2222a88a,0x969631a7,0x3737f9ce,0xeded977a,0xf6f649bf,0xb4b4992d,0xd1d1a475,0x434390d3,0x48485a12,0xe2e258ba,0x979771e6,0xd2d264b6,0xc2c270b2,0x2626ad8b,0xa5a5cd68,0x5e5ecb95,0x2929624b,0x30303c0c,0x5a5ace94,0xddddab76,0xf9f9867f,0x9595f164,0xe6e65dbb,0xc7c735f2,0x24242d09,0x1717d1c6,0xb9b9d66f,0x1b1bdec5,0x12129486,0x60607818,0xc3c330f3,0xf5f5897c,0xb3b35cef,0xe8e8d23a,0x7373acdf,0x3535794c,0x8080a020,0xe5e59d78,0xbbbb56ed,0x7d7d235e,0xf8f8c63e,0x5f5f8bd4,0x2f2fe7c8,0xe4e4dd39,0x21216849,
的代换表格为:
0x5b8ed55b,0x42d09242,0xa74deaa7,0xfb06fdfb,0x33fccf33,0x8765e287,0xf4c93df4,0xde6bb5de,0x584e1658,0xda6eb4da,0x50441450,0x0bcac10b,0xa08828a0,0xef17f8ef,0xb09c2cb0,0x14110514,0xac872bac,0x9dfb669d,0x6af2986a,0xd9ae77d9,0xa8822aa8,0xfa46bcfa,0x10140410,0x0fcfc00f,0xaa02a8aa,0x11544511,0x4c5f134c,0x98be2698,0x256d4825,0x1a9e841a,0x181e0618,0x66fd9b66,0x72ec9e72,0x094a4309,0x41105141,0xd324f7d3,0x46d59346,0xbf53ecbf,0x62f89a62,0xe9927be9,0xccff33cc,0x51045551,0x2c270b2c,0x0d4f420d,0xb759eeb7,0x3ff3cc3f,0xb21caeb2,0x89ea6389,0x9374e793,0xce7fb1ce,0x706c1c70,0xa60daba6,0x27edca27,0x20280820,0xa348eba3,0x56c19756,0x02808202,0x7fa3dc7f,0x52c49652,0xeb12f9eb,0xd5a174d5,0x3eb38d3e,0xfcc33ffc,0x9a3ea49a,0x1d5b461d,0x1c1b071c,0x9e3ba59e,0xf30cfff3,0xcf3ff0cf,0xcdbf72cd,0x5c4b175c,0xea52b8ea,0x0e8f810e,0x653d5865,0xf0cc3cf0,0x647d1964,0x9b7ee59b,0x16918716,0x3d734e3d,0xa208aaa2,0xa1c869a1,0xadc76aad,0x06858306,0xca7ab0ca,0xc5b570c5,0x91f46591,0x6bb2d96b,0x2ea7892e,0xe318fbe3,0xaf47e8af,0x3c330f3c,0x2d674a2d,0xc1b071c1,0x590e5759,0x76e99f76,0xd4e135d4,0x78661e78,0x90b42490,0x38360e38,0x79265f79,0x8def628d,0x61385961,0x4795d247,0x8a2aa08a,0x94b12594,0x88aa2288,0xf18c7df1,0xecd73bec,0x04050104,0x84a52184,0xe19879e1,0x1e9b851e,0x5384d753,0x00000000,0x195e4719,0x5d0b565d,0x7ee39d7e,0x4f9fd04f,0x9cbb279c,0x491a5349,0x317c4d31,0xd8ee36d8,0x080a0208,0x9f7be49f,0x8220a282,0x13d4c713,0x23e8cb23,0x7ae69c7a,0xab42e9ab,0xfe43bdfe,0x2aa2882a,0x4b9ad14b,0x01404101,0x1fdbc41f,0xe0d838e0,0xd661b7d6,0x8e2fa18e,0xdf2bf4df,0xcb3af1cb,0x3bf6cd3b,0xe71dfae7,0x85e56085,0x54411554,0x8625a386,0x8360e383,0xba16acba,0x75295c75,0x9234a692,0x6ef7996e,0xd0e434d0,0x68721a68,0x55015455,0xb619afb6,0x4edf914e,0xc8fa32c8,0xc0f030c0,0xd721f6d7,0x32bc8e32,0xc675b3c6,0x8f6fe08f,0x74691d74,0xdb2ef5db,0x8b6ae18b,0xb8962eb8,0x0a8a800a,0x99fe6799,0x2be2c92b,0x81e06181,0x03c0c303,0xa48d29a4,0x8caf238c,0xae07a9ae,0x34390d34,0x4d1f524d,0x39764f39,0xbdd36ebd,0x5781d657,0x6fb7d86f,0xdceb37dc,0x15514415,0x7ba6dd7b,0xf709fef7,0x3ab68c3a,0xbc932fbc,0x0c0f030c,0xff03fcff,0xa9c26ba9,0xc9ba73c9,0xb5d96cb5,0xb1dc6db1,0x6d375a6d,0x45155045,0x36b98f36,0x6c771b6c,0xbe13adbe,0x4ada904a,0xee57b9ee,0x77a9de77,0xf24cbef2,0xfd837efd,0x44551144,0x67bdda67,0x712c5d71,0x05454005,0x7c631f7c,0x40501040,0x69325b69,0x63b8db63,0x28220a28,0x07c5c207,0xc4f531c4,0x22a88a22,0x9631a796,0x37f9ce37,0xed977aed,0xf649bff6,0xb4992db4,0xd1a475d1,0x4390d343,0x485a1248,0xe258bae2,0x9771e697,0xd264b6d2,0xc270b2c2,0x26ad8b26,0xa5cd68a5,0x5ecb955e,0x29624b29,0x303c0c30,0x5ace945a,0xddab76dd,0xf9867ff9,0x95f16495,0xe65dbbe6,0xc735f2c7,0x242d0924,0x17d1c617,0xb9d66fb9,0x1bdec51b,0x12948612,0x60781860,0xc330f3c3,0xf5897cf5,0xb35cefb3,0xe8d23ae8,0x73acdf73,0x35794c35,0x80a02080,0xe59d78e5,0xbb56edbb,0x7d235e7d,0xf8c63ef8,0x5f8bd45f,0x2fe7c82f,0xe4dd39e4,0x21684921,
的代换表格为:
0x8ed55b5b,0xd0924242,0x4deaa7a7,0x06fdfbfb,0xfccf3333,0x65e28787,0xc93df4f4,0x6bb5dede,0x4e165858,0x6eb4dada,0x44145050,0xcac10b0b,0x8828a0a0,0x17f8efef,0x9c2cb0b0,0x11051414,0x872bacac,0xfb669d9d,0xf2986a6a,0xae77d9d9,0x822aa8a8,0x46bcfafa,0x14041010,0xcfc00f0f,0x02a8aaaa,0x54451111,0x5f134c4c,0xbe269898,0x6d482525,0x9e841a1a,0x1e061818,0xfd9b6666,0xec9e7272,0x4a430909,0x10514141,0x24f7d3d3,0xd5934646,0x53ecbfbf,0xf89a6262,0x927be9e9,0xff33cccc,0x04555151,0x270b2c2c,0x4f420d0d,0x59eeb7b7,0xf3cc3f3f,0x1caeb2b2,0xea638989,0x74e79393,0x7fb1cece,0x6c1c7070,0x0daba6a6,0xedca2727,0x28082020,0x48eba3a3,0xc1975656,0x80820202,0xa3dc7f7f,0xc4965252,0x12f9ebeb,0xa174d5d5,0xb38d3e3e,0xc33ffcfc,0x3ea49a9a,0x5b461d1d,0x1b071c1c,0x3ba59e9e,0x0cfff3f3,0x3ff0cfcf,0xbf72cdcd,0x4b175c5c,0x52b8eaea,0x8f810e0e,0x3d586565,0xcc3cf0f0,0x7d196464,0x7ee59b9b,0x91871616,0x734e3d3d,0x08aaa2a2,0xc869a1a1,0xc76aadad,0x85830606,0x7ab0caca,0xb570c5c5,0xf4659191,0xb2d96b6b,0xa7892e2e,0x18fbe3e3,0x47e8afaf,0x330f3c3c,0x674a2d2d,0xb071c1c1,0x0e575959,0xe99f7676,0xe135d4d4,0x661e7878,0xb4249090,0x360e3838,0x265f7979,0xef628d8d,0x38596161,0x95d24747,0x2aa08a8a,0xb1259494,0xaa228888,0x8c7df1f1,0xd73becec,0x05010404,0xa5218484,0x9879e1e1,0x9b851e1e,0x84d75353,0x00000000,0x5e471919,0x0b565d5d,0xe39d7e7e,0x9fd04f4f,0xbb279c9c,0x1a534949,0x7c4d3131,0xee36d8d8,0x0a020808,0x7be49f9f,0x20a28282,0xd4c71313,0xe8cb2323,0xe69c7a7a,0x42e9abab,0x43bdfefe,0xa2882a2a,0x9ad14b4b,0x40410101,0xdbc41f1f,0xd838e0e0,0x61b7d6d6,0x2fa18e8e,0x2bf4dfdf,0x3af1cbcb,0xf6cd3b3b,0x1dfae7e7,0xe5608585,0x41155454,0x25a38686,0x60e38383,0x16acbaba,0x295c7575,0x34a69292,0xf7996e6e,0xe434d0d0,0x721a6868,0x01545555,0x19afb6b6,0xdf914e4e,0xfa32c8c8,0xf030c0c0,0x21f6d7d7,0xbc8e3232,0x75b3c6c6,0x6fe08f8f,0x691d7474,0x2ef5dbdb,0x6ae18b8b,0x962eb8b8,0x8a800a0a,0xfe679999,0xe2c92b2b,0xe0618181,0xc0c30303,0x8d29a4a4,0xaf238c8c,0x07a9aeae,0x390d3434,0x1f524d4d,0x764f3939,0xd36ebdbd,0x81d65757,0xb7d86f6f,0xeb37dcdc,0x51441515,0xa6dd7b7b,0x09fef7f7,0xb68c3a3a,0x932fbcbc,0x0f030c0c,0x03fcffff,0xc26ba9a9,0xba73c9c9,0xd96cb5b5,0xdc6db1b1,0x375a6d6d,0x15504545,0xb98f3636,0x771b6c6c,0x13adbebe,0xda904a4a,0x57b9eeee,0xa9de7777,0x4cbef2f2,0x837efdfd,0x55114444,0xbdda6767,0x2c5d7171,0x45400505,0x631f7c7c,0x50104040,0x325b6969,0xb8db6363,0x220a2828,0xc5c20707,0xf531c4c4,0xa88a2222,0x31a79696,0xf9ce3737,0x977aeded,0x49bff6f6,0x992db4b4,0xa475d1d1,0x90d34343,0x5a124848,0x58bae2e2,0x71e69797,0x64b6d2d2,0x70b2c2c2,0xad8b2626,0xcd68a5a5,0xcb955e5e,0x624b2929,0x3c0c3030,0xce945a5a,0xab76dddd,0x867ff9f9,0xf1649595,0x5dbbe6e6,0x35f2c7c7,0x2d092424,0xd1c61717,0xd66fb9b9,0xdec51b1b,0x94861212,0x78186060,0x30f3c3c3,0x897cf5f5,0x5cefb3b3,0xd23ae8e8,0xacdf7373,0x794c3535,0xa0208080,0x9d78e5e5,0x56edbbbb,0x235e7d7d,0xc63ef8f8,0x8bd45f5f,0xe7c82f2f,0xdd39e4e4,0x68492121。
CN201710059240.2A 2017-01-24 2017-01-24 一种sm4加密方法及装置 Withdrawn CN106712930A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710059240.2A CN106712930A (zh) 2017-01-24 2017-01-24 一种sm4加密方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710059240.2A CN106712930A (zh) 2017-01-24 2017-01-24 一种sm4加密方法及装置

Publications (1)

Publication Number Publication Date
CN106712930A true CN106712930A (zh) 2017-05-24

Family

ID=58910217

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710059240.2A Withdrawn CN106712930A (zh) 2017-01-24 2017-01-24 一种sm4加密方法及装置

Country Status (1)

Country Link
CN (1) CN106712930A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107342865A (zh) * 2017-06-20 2017-11-10 贵州信安创科技有限公司 一种基于sm4的认证加密算法和解密算法
CN107483482A (zh) * 2017-09-12 2017-12-15 四川阵风科技有限公司 信息加密、解密方法及装置
CN109743156A (zh) * 2018-12-28 2019-05-10 北京思源互联科技有限公司 一种分组加解密方法和装置
CN109802824A (zh) * 2018-12-03 2019-05-24 大唐微电子技术有限公司 一种移位处理的方法、装置、计算机存储介质及终端
CN109981250A (zh) * 2019-03-01 2019-07-05 北京海泰方圆科技股份有限公司 一种sm4加密、密钥扩展方法、装置、设备及介质
CN110166223A (zh) * 2019-05-22 2019-08-23 北京航空航天大学 一种国密sm4的快速软件实现方法
CN110197076A (zh) * 2019-05-22 2019-09-03 北京航空航天大学 一种sm4加密算法的软件优化实现方法
CN111614456A (zh) * 2020-05-06 2020-09-01 武汉大学 一种针对sm4算法的多方协同加/解密方法及介质
CN111736902A (zh) * 2020-07-16 2020-10-02 北京炼石网络技术有限公司 基于simd指令的sm4的并行计算方法及装置、可读存储介质
CN112507644A (zh) * 2020-12-03 2021-03-16 湖北大学 优化的sm4算法线性层电路
CN114710285A (zh) * 2022-05-19 2022-07-05 北京大学 一种面向异构并行架构的高性能sm4比特切片优化方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101938351B (zh) * 2010-09-16 2012-07-04 北京航空航天大学 一种实现分组密码加密的密钥扩展方法
CN103227717A (zh) * 2013-01-25 2013-07-31 国家密码管理局商用密码检测中心 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的应用
CN103973432A (zh) * 2014-05-23 2014-08-06 浪潮电子信息产业股份有限公司 一种基于fpga和usb接口芯片的sm4算法加密设备
US20160094340A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Instructions and logic to provide simd sm4 cryptographic block cipher functionality
CN105490802A (zh) * 2015-11-27 2016-04-13 桂林电子科技大学 基于gpu的改进sm4并行加解密通信方法
CN106209358A (zh) * 2016-07-12 2016-12-07 黑龙江大学 一种基于长密钥的sm4密钥扩展算法的实现系统及其方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101938351B (zh) * 2010-09-16 2012-07-04 北京航空航天大学 一种实现分组密码加密的密钥扩展方法
CN103227717A (zh) * 2013-01-25 2013-07-31 国家密码管理局商用密码检测中心 选择轮密钥异或输入进行sm4密码算法侧信道能量分析的应用
CN103973432A (zh) * 2014-05-23 2014-08-06 浪潮电子信息产业股份有限公司 一种基于fpga和usb接口芯片的sm4算法加密设备
US20160094340A1 (en) * 2014-09-26 2016-03-31 Intel Corporation Instructions and logic to provide simd sm4 cryptographic block cipher functionality
CN105490802A (zh) * 2015-11-27 2016-04-13 桂林电子科技大学 基于gpu的改进sm4并行加解密通信方法
CN106209358A (zh) * 2016-07-12 2016-12-07 黑龙江大学 一种基于长密钥的sm4密钥扩展算法的实现系统及其方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
符天枢等: "SM4算法CBC模式的高吞吐率ASIC实现", 《微电子学与计算机》 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107342865B (zh) * 2017-06-20 2020-07-10 贵州安融科技发展有限公司 一种基于sm4的认证加密算法
CN107342865A (zh) * 2017-06-20 2017-11-10 贵州信安创科技有限公司 一种基于sm4的认证加密算法和解密算法
CN107483482A (zh) * 2017-09-12 2017-12-15 四川阵风科技有限公司 信息加密、解密方法及装置
CN109802824A (zh) * 2018-12-03 2019-05-24 大唐微电子技术有限公司 一种移位处理的方法、装置、计算机存储介质及终端
CN109743156A (zh) * 2018-12-28 2019-05-10 北京思源互联科技有限公司 一种分组加解密方法和装置
CN109743156B (zh) * 2018-12-28 2022-03-22 北京思源理想控股集团有限公司 一种分组加解密方法和装置
CN109981250A (zh) * 2019-03-01 2019-07-05 北京海泰方圆科技股份有限公司 一种sm4加密、密钥扩展方法、装置、设备及介质
CN110197076B (zh) * 2019-05-22 2021-03-26 北京航空航天大学 一种sm4加密算法的软件优化实现方法
CN110166223A (zh) * 2019-05-22 2019-08-23 北京航空航天大学 一种国密sm4的快速软件实现方法
CN110197076A (zh) * 2019-05-22 2019-09-03 北京航空航天大学 一种sm4加密算法的软件优化实现方法
CN110166223B (zh) * 2019-05-22 2021-08-13 北京航空航天大学 一种国密分组密码算法sm4的快速实现方法
CN111614456A (zh) * 2020-05-06 2020-09-01 武汉大学 一种针对sm4算法的多方协同加/解密方法及介质
CN111614456B (zh) * 2020-05-06 2022-04-01 武汉大学 一种针对sm4算法的多方协同加密方法
CN111736902A (zh) * 2020-07-16 2020-10-02 北京炼石网络技术有限公司 基于simd指令的sm4的并行计算方法及装置、可读存储介质
CN111736902B (zh) * 2020-07-16 2022-04-19 北京炼石网络技术有限公司 基于simd指令的sm4的并行计算方法及装置、可读存储介质
CN112507644B (zh) * 2020-12-03 2021-05-14 湖北大学 优化的sm4算法线性层电路
CN112507644A (zh) * 2020-12-03 2021-03-16 湖北大学 优化的sm4算法线性层电路
CN114710285A (zh) * 2022-05-19 2022-07-05 北京大学 一种面向异构并行架构的高性能sm4比特切片优化方法

Similar Documents

Publication Publication Date Title
CN106712930A (zh) 一种sm4加密方法及装置
CN1993922B (zh) 流密码组合系统和方法
EP2852089B1 (en) Data protecting apparatus and method thereof
US11546135B2 (en) Key sequence generation for cryptographic operations
CN101350714B (zh) 采用混合rijndael s-box的有效高级加密标准数据路径
CN110166223B (zh) 一种国密分组密码算法sm4的快速实现方法
US9294266B2 (en) Method and apparatus to encrypt plaintext data
Aboytes-González et al. Design of a strong S-box based on a matrix approach
CN103812641A (zh) 一种实现sm4分组对称密码算法的系统
US11606189B2 (en) Method and apparatus for improving the speed of advanced encryption standard (AES) decryption algorithm
TWI571091B (zh) 用於以第二密文編密演算法之運算修改第一密文編密演算法的技術
CN104639314A (zh) 基于aes加密/解密算法的装置和流水控制方法
CN102006161A (zh) 一种对称密钥加密的非线性变换方法及其实现装置
US20080267393A1 (en) Aes decryption apparatus and program
Kaur et al. FPGA implementation of efficient hardware for the advanced encryption standard
JP2005513541A (ja) Aesアルゴリズム用のプログラマブルデータ暗号化エンジン
CN107835070B (zh) 一种简单的嵌入式加密方法
CN103684748B (zh) 对称式加解密方法、对称式加解密系统
CN110266481A (zh) 基于矩阵的后量子加、解密方法与解密装置
CN109743156A (zh) 一种分组加解密方法和装置
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
JP5436373B2 (ja) 秘匿性増強処理演算装置およびこれを備えた量子暗号通信端末
JP2018514816A (ja) 変形鍵を用いる高速aes
CN111510296A (zh) Sm4/aes双模加密电路
Islam et al. Data encryption standard

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20170524

WW01 Invention patent application withdrawn after publication