安企神电脑监控软件 在线试用
扫码咨询客服
安企神电脑监控软件、局域网监控软件
首页
功能对比
下载中心
购买咨询
客户列表
关于安企神

基于C语言的IDEA加密算法

更新时间:2022-10-28 15:44:15


本文简介:由于Microson.NET框架的普及,加密技术在.NET开发中应用非常广泛,对加密技术的要求也很高。而c语言由于与.NET紧密集成,使得在c语言环境下实现IDEA加密算法具有很多的优势。IDEA加密算法原理IDEA数据加密算法基于“相异代数群上的混合运算”设计思想,它是由16比特串空间的三个不同的群,即一个逐比特异或运算的群,一个模216的加法运算的群,一个模(216+1)的乘法运算的群,由这三

基于C语言的IDEA加密算法

由于Microson.NET框架的普及,加密技术在.NET开发中应用非常广泛,对加密技术的要求也很高。而c语言由于与.NET紧密集成,使得在c语言环境下实现IDEA加密算法具有很多的优势。

IDEA加密算法原理

IDEA数据加密算法基于“相异代数群上的混合运算”设计思想,它是由16比特串空间的三个不同的群,即一个逐比特异或运算的群,一个模216的加法运算的群,一个模(216+1)的乘法运算的群,由这三种不同运算组合而成的分组密码结构。这三种运算能产生良好的混淆效果和很强的扩散能力。

IDEA的明文和密文都是64比特,密钥为128比特,使用8个循环迭代,除了所用的密钥不同以外,其加密算法和解密算法都是相同的。如下图是IDEA的一个实现界面。

基于C语言的IDEA加密算法

1、加密密钥扩展算法

加密算法和解密均涉及对密钥进行扩展,IDEA也不例外,实际上,IDEA是将128比特密钥扩展为832比特的。扩展的加密密钥数组m_nKeyEncryptBox [52]由以下步骤生成:

首先,将128比特密钥串m_sEncryptionKey分成8个子块,作为首轮8个加密密钥子块;

再将128比特循环左移25位,移位完成后形成的128比特再分成8个子块,作为第二轮的8个加密密钥子块;

依此类推,最终形成832比特(16*6*8+16*4)的加密密钥数组m_nKeyEncryptBox[ 52],其核心代码如下:

基于C语言的IDEA加密算法

 

2、模(216+1)乘算法Mul(ushort x,ushort y)

IDEA加密算法中,下面是模(216+1)乘算法的代码,注意不能用return (ushorL)((x*y)%Oxl0001))来实现模乘算法。

基于C语言的IDEA加密算法

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

基于C语言的IDEA加密算法

3、模(216+1)乘逆元算法Mullnv (ushort x)

IDEA加密算法中,基于模(216 +1)的乘法运算群,其单位元是串0- 01,为了求得参数X的逆元,算法中使用欧几里德算法(即辗转相除法),其核心代码如下:

基于C语言的IDEA加密算法

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],核心代码如下:

基于C语言的IDEA加密算法

5.IDEA加密算法和解密算法

IDEA加密算法和解密算法相同,其处理为,将64比特输入分为4个16比特的子块A、B、C、D,然后进行8轮循环,在第j轮循环中,子密钥为key[6*i]- key[6*i+5],其中i=0..7,其具体处理步骤不再赘述,其核心代码如下:

基于C语言的IDEA加密算法

6、算法中几点注意事项

(1)本程序分别在Windows 2000 Professional操作系统,Intel PIV CPU, Microsoft Visual Studio. NET 2003 V1.1.4322和Windows Server 2003 professional操作系统,InteIPIV CPU,Mi-
crosoft Visual Studio.NET 2005 V2.0.50727下调试通过。

(2)程序中均使用Unicode字符集,在明文和密文输入框中需要输入8个ASCII字符。

(3)基于Intel CPU低位在前,高位在后的特点,在进行由字节Bbyte到Unicode的转换中均取偶数位。

(4)在进行字符变换中,有可能存在某byte值为\O,使得在由byte到Unicode的转换中,输出的Unicode值为\O,从而无法正常显示8个Unicode字符。

小知识之.NET框架

.NET框架(.NET Framework) 是由微软开发,一个致力于敏捷软件开发(Agile softwaredevelopment)、快速应用开发(Rapidapplication development)、平台无关性和网络透明化的软件开发平台。.NET是微软为下一个十年对服务器和桌面型软件工程迈出的第一步。.NET包含许多有助于互联网和内部网应用迅捷开发的技术。

立即下载试用

禁止拷贝文件到U盘的方法

U盘是一种很便携很实用的移动存储设备,可以把文件或者视频资料等数据存储下来,然后转移到其他的电脑设备上,方便文件分享的同时,也是一种文件泄密的风险,我们经常在影视剧中看到U盘窃取重要资料的场面,就像在火蓝刀锋里面,榕博士从海盗那里复制303潜艇的秘密文件,就是使用的U盘拷贝的,有画面了吗。在我们的日常生活中也肯定会有重要的文件不想被泄露出去,今天就带来几种实用的方法,让文件无法被U盘拷贝。

 

对于个人用户,在Windows系统中,可以使用注册表编辑器的方式。具体步骤如下:

 

1、“win+R”快捷键开启运行,输入“regedit”回车打开。

2、进入到注册表编辑器页面后,将“HKEY_LOCAL_MACHINE|SYSTEM\CurrentControlSet\Services”复制粘贴到上方地址栏中并回车定位到此。

电脑禁止复制文件到U盘(图1)

3、接着点击“Services”中的“USBSTOR”选项。

电脑禁止复制文件到U盘(图2)

4、然后找到右侧中的“Start”双击打开。

电脑禁止复制文件到U盘(图3)

5、最后在打开的窗口界面中,将“数值数据”从“3”改为“4”,并点击确定保存即可。

电脑禁止复制文件到U盘(图4)


 

对于企业用户

 

可以使用安企神或者域智盾等安全软件,在此介绍一下安企神,它可以一键设置禁止U盘使用,员工电脑就无法使用U盘进行拷贝,也能设置仅写入等,还可以添加白名单,只有白名单内的U盘设备可以正常使用,非常的多样化,能轻松满足使用者的不同需求。此外,该软件还提供了文件加密和网络审计的功能,企业内部的文件可以得到非常专业的保护,落地加密,只能在公司环境下或者公司授权后接收。

 禁止文件外发.webp

除了文件加密,安企神还支持实时查看被控端电脑的屏幕,企业管理者可以随时掌控员工的工作情况,可以很好的保护企业的知识产权和重要资料,方便且省心。禁止拷贝文件到U盘主要还是为了确保公司内部数据只能在可控范围内流动,防止敏感数据意外或恶意泄露。


本文为收集整理,文章部分观点不代表本站观点,如有侵权或其它问题请反馈客服。https://www.wgj7.com/cjwt/16323.html