新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 加密芯片DM2016在数字电视加密中的应用

加密芯片DM2016在数字电视加密中的应用

作者: 时间:2014-03-01 来源:网络 收藏


下面以BlowFish算法为例介绍加密算法在嵌入式系统中的应用。
  
32位微处理器诞生后,Blowfistl算法在加密速度上超越了DES,引起了人们的关注。Blowfish算法没有注册专利,不需要授权,可以免费使用。正是由于这些特点,它广泛应用于很多产品中。在这里,BlowFish算法用来加密64位的字符串,BlowFish算法使用2个“盒”——unSigned long pbox[18]和unsigned long sbox[4,256]。BlowFish算法中,有一个核心加密函数:BF_En。该函数输入64位信息,运算后以64位密文的形式输出。用BlowFish算法加密信息需要2个过程,即密钥预处理和信息加密。
  
以密钥预处理为例,这时,BlowFish算法的源密钥——pbox和sbox是固定的。要加密一个信息,需要自己选择一个。key,用这个key对pbox和sbox进行变换,得到下一步信息加密所需的key_pbox和keg_sbox。具体的变换算法如下:
  
①用sbox填充key_sbox。
  
②用自己选择的key以8个一组去异或pbox,用异或的结果填充key_pbox。key可以循环使用。例如,选的key是”abcdefghijklmn”,则异或过程为

  keg_pbox[O]=pbox[O]abcdefgh
  keyr_pbox[1]=pbox[1]ijklmnab
  …………
  
如此循环,直到key_box填充完毕。
  
③用BF_En加密一个全“O”的64位信息,用输出的结果替换key__pbox[O]和key_pbox[1]。此时,i=O。
  
④用BF_En加密替换后的key_pbox[i]和key_phox[i+1],用输出替代key_pbox[i+2]和key_phox[i+3]。
  
⑤i=i+2,继续第4步,直到key_pbox全部被替换。
  
⑥用key_pbox[16]和keyl_pbox[17]做首次输入(相当于上面的全“O”输入),用类似的方法替换key_sbox进行信息加密。信息加密就是用函数把待加密信息x分成32位的两部分:xL和xR,再用BF_En函数对输入信息进行变换。
  
以下是初始化sbox、pbox及定义全局变量key_pbox、key_sbox的C程序例子。


结 语
  
随着嵌入式系统越来越广泛的应用,安全保密问题也越来越受到重视。密码学为其提供了正确的理论基础。同时,性能优良的硬件(如)成为实现其安全保密的物质基础。二者的有效结合为防止嵌入式系统开发成果被仿制或剽窃提供了有力的保障。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭