/*生成子密钥*/ int DES_MakeSubKeys(ElemType key[64],ElemType subKeys[16][48]){ ElemType temp[56]; int cnt; DES_PC1_Transform(key,temp);/*PC1置换*/ for(cnt = 0; cnt < 16; cnt++){/*16轮跌代,产生16个子密钥*/ DES_ROL(temp,MOVE_TIMES[cnt]);/*循环左移*/ DES_PC2_Transform(temp,subKeys[cnt]);/*PC2置换,产生子密钥*/ } return 0; }
//生成子密钥 int DES_MakeSubKeys(char key[64], char subKeys[16][48]) { char temp[56]; int cnt; DES_PC1_Transform(key, temp); //PC1置换 for (cnt = 0; cnt < 16; cnt++) //16轮跌代,产生16个子密钥 { DES_ROL(temp, MOVE_TIMES[cnt]); //循环左移 DES_PC2_Transform(temp, subKeys[cnt]); //PC2置换,产生子密钥 } return 0; }