你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 计算机安全与维护
IDEA对称密码算法剖析(七)
 

  if (x==1)

    return t0;

      q=y/x;

      y=y%x;

      t1+=q*t0;

   } while (y!=1);

   return low16(1-t1);

}

// 生成5216位子密钥,  userkey128位密钥  Z是有52个元素的数组,存放生成的子密钥

static void en_key_idea(word16 *userkey, word16 *Z)

{

   int i,j;

   /* shifts */

   for (j=0;j<8;j++)

      Z[j]=*userkey++; // 第一组8个子密钥不移位

   for (i=0;j<KEYLEN;j++)

   {            

      i++;   //实现循环左移25, 主要思想:后一组8个子密钥的第一个子密钥,是前一组8个子密钥的第二个子密钥的低7位和第三个子密钥的高9位合并成

      Z[i+7]=((Z[i&7] << 9) | (Z[i+1 & 7] >> 7));  // 左移9位得到低7,  右移7位得到高9, 用或"|"合并

      Z+=i&8;  //  Z为数组基地址, 8次向前加8个单位, 即数组基地址加8

      i&=7;  //  i8次复位一次

   }

}

// 生成解密密钥

static void de_key_idea(IDEAkey Z,IDEAkey DK)

{

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089