根据C語言的IDEA数据加密优化算法

摘要: 因为Microson.NET架构的普及化,数据加密技术性在.NET开发设计中运用十分普遍,对数据加密技术性的规定也很高。而c語言因为与.NET密不可分集成化,促使在c語言自然环境下完成IDEA数据...

  因为Microson.NET架构的普及化,数据加密技术性在.NET开发设计中运用十分普遍,对数据加密技术性的规定也很高。而c語言因为与.NET密不可分集成化,促使在c語言自然环境下完成IDEA数据加密优化算法具备许多的优点。
  IDEA数据加密优化算法基本原理
  IDEA数据信息数据加密优化算法根据 相异解析几何群上的混和计算 设计方案观念,它是由16比特串室内空间的三个不一样的群,即一个逐比特异或计算的群,一个模216的加减法计算的群,一个模(216+1)的乘法计算的群,由这三种不一样计算组成而成的排序登陆密码构造。这三种计算能造成优良的搞混实际效果和较强的外扩散工作能力。
  IDEA的密文和保密全是64比特,密匙为128比特,应用八个循环系统迭代更新,除开常用的密匙不一样之外,其数据加密优化算法调解密优化算法全是同样的。以下图是IDEA的一个完成页面。

  1、数据加密密匙拓展优化算法
  数据加密优化算法调解密均涉及到对密匙开展拓展,IDEA都不列外,具体上,IDEA是将128比特密匙拓展为832比特的。拓展的数据加密密匙数字能量数组m_nKeyEncryptBox[52]由下列流程转化成:
  最先,将128比特密匙串m_sEncryptionKey分为八个子块,做为首轮八个数据加密密匙子块;
  再将128比特循环系统左移25位,移位进行后产生的128比特再分为八个子块,做为第二轮的八个数据加密密匙子块;
  依该类推,产生832比特(16*6*8+16*4)的数据加密密匙数字能量数组m_nKeyEncryptBox[52],其关键编码以下:

 


  2、模(216+1)乘优化算法Mul(ushortx,ushorty)
  IDEA数据加密优化算法中,下边是模(216+1)乘优化算法的编码,留意不可以用return(ushorL)((x*y)%Oxl0001))来完成模乘优化算法。

  在其中Low16(x)为X的低16位,编码为:

  3、模(216+1)乘逆元优化算法Mullnv(ushortx)
  IDEA数据加密优化算法中,根据模(216+1)的乘法计算群,其企业元是串0-01,以便求得主要参数X的逆元,优化算法中应用欧几里德优化算法(即展转相除法),其关键编码以下:

 


  4、解密密匙拓展优化算法
  同数据加密密匙一样,解密密匙也必须开展拓展,与数据加密密匙拓展不一样的是,IDEA的解密密匙拓展数字能量数组不用从密匙串转换而成,那麼如何获得解密密匙拓展数字能量数组呢?其解密密匙拓展数字能量数组m_nKey DecryptBox[52]是由数据加密密匙拓展数字能量数组m_nKeyEncryptBox解决而成,其解决流程为:
  最先由m_nKeyEncryptBox[0]-mnKeyEnc ryptBox[3]四个解密密匙数字能量数组原素解决成四个解密密匙数字能量数组原素m_nKeyDeclyptBox[51]-m_nKeyDecryptBox[48],随后开展8轮迭代更新,在第m轮迭代更新中由六个数据加密密匙数字能量数组原素m_nKeyEncryptBox[4+6*m]-m_nKeyEncryptBox[9+6*in]转化成六个解密密匙数字能量数组原素m_nKeyDecryptBox[47-6*m] m_nKeyDecryptBox[42-6*m]。转化成832比特的解密密匙数字能量数组m_nKeyEncryptBox[52],关键编码以下:

  5.IDEA数据加密优化算法调解密优化算法
  IDEA数据加密优化算法调解密优化算法同样,其解决为,将64比特键入分成4个16比特的子块A、B、C、D,随后开展8轮循环系统,在第j轮循环系统中,子密匙为key[6*i]-key[6*i+5],在其中i=0..7,其实际解决流程已不过多阐释,其关键编码以下:

  6、优化算法中几个方面留意事宜
  (1)本程序各自在Windows2000Professional实际操作系统软件,IntelPIVCPU,MicrosoftVisualStudio.NET2003V1.1.4322和WindowsServer2003professional实际操作系统软件,InteIPIVCPU,Mi-
  crosoftVisualStudio.NET2005V2.0.50727下降试根据。
  (2)程序中均应用Unicode标识符集,在密文和保密键入框中必须键入八个ASCII标识符。
  (3)根据IntelCPU底位在前,上位在后的特性,在开展由字节数Bbyte到Unicode的变换中均取偶多位。
  (4)在开展标识符转换中,有将会存有某byte数值\O,促使在由byte到Unicode的变换中,輸出的Unicode数值\O,进而没法一切正常显示信息八个Unicode标识符。



联系我们

全国服务热线:4000-399-000 公司邮箱:343111187@qq.com

  工作日 9:00-18:00

关注我们

官网公众号

官网公众号

Copyright?2020 广州凡科互联网科技股份有限公司 版权所有 粤ICP备10235580号 客服热线 18720358503

技术支持:如何注册小程序