class SM4(object): """ 根据 SM4 国密标准文档编写 """ def __init__(self, plaintext=None): # 明文 self.plaintext = plaintext.zfill(32) # 密文 self.ciphertext = None # 加密密钥(默认) self.main_key = '0123456789abcdeffedcba9876543210' # 加密密钥 MK=(MK0,MK1,MK2,MK3) self.MK = [self.main_key[i*8: i*8+8] for i in range(4)] # S盒 self.s_box = ['d6', '90', 'e9', 'fe', 'cc', 'e1', '3d', 'b7', '16', 'b6', '14', 'c2', '28', 'fb', '2c', '05', '2b', '67', '9a', '76', '2a', 'be', '04', 'c3', 'aa', '44', '13', '26', '49', '86', '06', '99', '9c', '42', '50', 'f4', '91', 'ef', '98', '7a', '33', '54', '0b', '43', 'ed', 'cf', 'ac', '62', 'e4', 'b3', '1c', 'a9', 'c9', '08', 'e8', '95', '80', 'df', '94', 'fa', '75', '8f', '3f', 'a6', '47', '07', 'a7', 'fc', 'f3', '73', '17', 'ba', '83', '59', '3c', '19', 'e6', '85', '4f', 'a8', '68', '6b', '81', 'b2', '71', '64', 'da', '8b', 'f8', 'eb', '0f', '4b', '70', '56', '9d', '35', '1e', '24', '0e', '5e', '63', '58', 'd1', 'a2', '25', '22', '7c', '3b', '01', '21', '78', '87', 'd4', '00', '46', '57', '9f', 'd3', '27', '52', '4c', '36', '02', 'e7', 'a0', 'c4', 'c8', '9e', 'ea', 'bf', '8a', 'd
SM4算法(python)
于 2024-02-06 12:45:54 首次发布