Пример #1
0
/*生成子密钥*/
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;
}
Пример #2
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;
}