函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:lib\crypto\des.c Create Date:2022-07-27 07:44:51
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:Encryption key expansion* RFC2451: Weak key checks SHOULD be performed.* FIPS 74:* Keys having duals are keys which produce all zeros, all ones, or* alternating zero-one patterns in the C and D registers after Permuted* Choice 1 has operated on the key.

函数原型:static unsigned long des_ekey(u32 *pe, const u8 *k)

返回类型:unsigned long

参数:

类型参数名称
u32 *pe
const u8 *k
627  pt等于pc2
629  d等于k[4]
629  d与等于0x0e
629  d左移等于4位
629  d或等于k[0]按位与0x1e
629  d等于Lookup tables for key expansion [d]
630  c等于k[5]
630  c与等于0x0e
630  c左移等于4位
630  c或等于k[1]按位与0x1e
630  c等于Lookup tables for key expansion [c]
631  b等于k[6]
631  b与等于0x0e
631  b左移等于4位
631  b或等于k[2]按位与0x1e
631  b等于Lookup tables for key expansion [b]
632  a等于k[7]
632  a与等于0x0e
632  a左移等于4位
632  a或等于k[3]按位与0x1e
632  a等于Lookup tables for key expansion [a]
634  pe[15 * 2 + 0]等于DES_PC2(a, b, c, d)
634  d等于rs[d]
635  pe[14 * 2 + 0]等于DES_PC2(d, a, b, c)
635  c等于rs[c]
635  b等于rs[b]
636  pe[13 * 2 + 0]等于DES_PC2(b, c, d, a)
636  a等于rs[a]
636  d等于rs[d]
637  pe[12 * 2 + 0]等于DES_PC2(d, a, b, c)
637  c等于rs[c]
637  b等于rs[b]
638  pe[11 * 2 + 0]等于DES_PC2(b, c, d, a)
638  a等于rs[a]
638  d等于rs[d]
639  pe[10 * 2 + 0]等于DES_PC2(d, a, b, c)
639  c等于rs[c]
639  b等于rs[b]
640  pe[9 * 2 + 0]等于DES_PC2(b, c, d, a)
640  a等于rs[a]
640  d等于rs[d]
641  pe[8 * 2 + 0]等于DES_PC2(d, a, b, c)
641  c等于rs[c]
642  pe[7 * 2 + 0]等于DES_PC2(c, d, a, b)
642  b等于rs[b]
642  a等于rs[a]
643  pe[6 * 2 + 0]等于DES_PC2(a, b, c, d)
643  d等于rs[d]
643  c等于rs[c]
644  pe[5 * 2 + 0]等于DES_PC2(c, d, a, b)
644  b等于rs[b]
644  a等于rs[a]
645  pe[4 * 2 + 0]等于DES_PC2(a, b, c, d)
645  d等于rs[d]
645  c等于rs[c]
646  pe[3 * 2 + 0]等于DES_PC2(c, d, a, b)
646  b等于rs[b]
646  a等于rs[a]
647  pe[2 * 2 + 0]等于DES_PC2(a, b, c, d)
647  d等于rs[d]
647  c等于rs[c]
648  pe[1 * 2 + 0]等于DES_PC2(c, d, a, b)
648  b等于rs[b]
649  pe[0 * 2 + 0]等于DES_PC2(b, c, d, a)
652  w等于a按位异或c按位或b按位异或d按位或rs[a]按位异或c按位或b按位异或rs[d]
655  pt加等于512
657  d等于k[0]
657  d与等于0xe0
657  d右移等于4位
657  d或等于k[4]按位与0xf0
657  d等于Lookup tables for key expansion [d + 1]
658  c等于k[1]
658  c与等于0xe0
658  c右移等于4位
658  c或等于k[5]按位与0xf0
658  c等于Lookup tables for key expansion [c + 1]
659  b等于k[2]
659  b与等于0xe0
659  b右移等于4位
659  b或等于k[6]按位与0xf0
659  b等于Lookup tables for key expansion [b + 1]
660  a等于k[3]
660  a与等于0xe0
660  a右移等于4位
660  a或等于k[7]按位与0xf0
660  a等于Lookup tables for key expansion [a + 1]
663  w或等于a按位异或c按位或b按位异或d按位或rs[a]按位异或c按位或b按位异或rs[d]
665  pe[15 * 2 + 1]等于DES_PC2(a, b, c, d)
665  d等于rs[d]
666  pe[14 * 2 + 1]等于DES_PC2(d, a, b, c)
666  c等于rs[c]
666  b等于rs[b]
667  pe[13 * 2 + 1]等于DES_PC2(b, c, d, a)
667  a等于rs[a]
667  d等于rs[d]
668  pe[12 * 2 + 1]等于DES_PC2(d, a, b, c)
668  c等于rs[c]
668  b等于rs[b]
669  pe[11 * 2 + 1]等于DES_PC2(b, c, d, a)
669  a等于rs[a]
669  d等于rs[d]
670  pe[10 * 2 + 1]等于DES_PC2(d, a, b, c)
670  c等于rs[c]
670  b等于rs[b]
671  pe[9 * 2 + 1]等于DES_PC2(b, c, d, a)
671  a等于rs[a]
671  d等于rs[d]
672  pe[8 * 2 + 1]等于DES_PC2(d, a, b, c)
672  c等于rs[c]
673  pe[7 * 2 + 1]等于DES_PC2(c, d, a, b)
673  b等于rs[b]
673  a等于rs[a]
674  pe[6 * 2 + 1]等于DES_PC2(a, b, c, d)
674  d等于rs[d]
674  c等于rs[c]
675  pe[5 * 2 + 1]等于DES_PC2(c, d, a, b)
675  b等于rs[b]
675  a等于rs[a]
676  pe[4 * 2 + 1]等于DES_PC2(a, b, c, d)
676  d等于rs[d]
676  c等于rs[c]
677  pe[3 * 2 + 1]等于DES_PC2(c, d, a, b)
677  b等于rs[b]
677  a等于rs[a]
678  pe[2 * 2 + 1]等于DES_PC2(a, b, c, d)
678  d等于rs[d]
678  c等于rs[c]
679  pe[1 * 2 + 1]等于DES_PC2(c, d, a, b)
679  b等于rs[b]
680  pe[0 * 2 + 1]等于DES_PC2(b, c, d, a)
683 d小于16循环
684  a等于pe[2 * d]
685  b等于pe[2 * d + 1]
686  c等于a按位异或b
687  c与等于0xffff0000
688  a异或等于c
689  b异或等于c
690  ROL(b, 18)
691  pe[2 * d]等于a
692  pe[2 * d + 1]等于b
696  返回:w
调用者
名称描述
des_expand_key
des3_ede_expand_key