可信密码学对称加密解密算法研究.docx
《可信密码学对称加密解密算法研究.docx》由会员分享,可在线阅读,更多相关《可信密码学对称加密解密算法研究.docx(45页珍藏版)》请在冰豆网上搜索。
![可信密码学对称加密解密算法研究.docx](https://file1.bdocx.com/fileroot1/2023-1/28/f0fd1e5b-91f5-4cd3-862f-6d20b4139e07/f0fd1e5b-91f5-4cd3-862f-6d20b4139e071.gif)
可信密码学对称加密解密算法研究
毕业论文(设计)
中文题目:
可信密码学对称加密/解密算法研究
英文题目:
Studyofsymmetricencryptionand
decryptionalgorithminthetrusted
cryptography
姓名:
xxx
学号:
xxxxx
专业班级:
xxxx
指导教师:
xxx
提交日期:
xxxx
摘要
云安全是近几年来网络界非常瞩目的问题,由于科技的发展,云计算应运而生,而数据的安全,却是需要保障的。
没有安全,实现云是不可能的。
而对于数据的加密和解密,传统的技术已经难以保障数据的安全,所以要研究出更可信的加密解密算法,保证数据的安全,从而更好的实现云计算。
本文首先介绍了可信密码学对称加密解密算法的研究意义和研究背景,与传统密码学的关联;接着说明了可信密码学对称加密/解密技术的原理和特点;再仿照AES对称加密/解密算法构建可信密码学“块”对称加密/解密算法,以指纹特征对称加密/解密为例,在VisualC++编程环境下对数字进行图像处理编码,构建可视化加密/解密等部件。
实现可信密码学对称加密/解密算法成功运行。
关键词
可信密码学对称加密加密算法
Abstract
Inrecentyearscloudsecuritynetworkareaisaveryoutstandingproblem,duetothedevelopmentofscienceandtechnology,cloudcomputingappeared.andthedatasecurityneedtoguarantee.It’simpossibletorealizethecloudcomputingwithoutsecurity.Andfordataencryptionanddecryption,thetraditionaltechnologyhasbeendifficulttosafeguardthesecurityofthedata,soweshoulddevelopmorereliableencryptionanddecryptionalgorithmtoguaranteethesecurityofthedata,soastoimplementationofcloudcomputingbetter.
Thispaperintroducesthesignificanceandthebackgroundoftheresearchofthetrustedcryptography’ssymmetricencryptionanddecryptionalgorithmfirst,andtheassociatewithtraditionalcryptography;Andthenillustratesprincipleandcharacteristicsofthetrustedcryptographysymmetricencryption/decryptiontechnology;afterwordsmodeledonAESsymmetricencryption/decryptionalgorithmtobuildtrustedcryptography"blocks"symmetricencryption/decryptionalgorithms,takefingerprintcharacteristicsymmetricencryption/decryptionforexample,intheVisualc++programmingenvironmentfordigitalimageprocessingcode,tobuildVisualencryption/decryptionandothercomponents.Implementthedesignoftrustedcryptographysymmetricencryption/decryptionalgorithm.
Keywords
trustedcryptographysymmetricencryptionencryption
目录
摘要1
关键词1
1课题的研究背景和意义4
1.1前言4
1.2可信密码学的发展与现状4
1.2.1可信密码学的研究背景4
1.2.2传统密码学面临着危机与对策5
1.3主要研究内容5
2、可信密码学对称加密解密算法简介5
2.1可信密码学技术对称加密/解密技术开发前提5
2.1.1可信密码学技术对称加密/解密算法与AES5
2.1.2点集拓扑群分形变幻环运算器开发工具介绍6
2.2可信密码学对称加密/解密技术原理13
2.2.1可信密码学对称加密/解密技术工作流程说明13
2.2.2可信密码学对称加密/解密技术优势说明14
3、可信密码学“块”对称加密解密算法设计14
3.1可信密码学“块”对称加密解密技术原理介绍14
3.1.1AES加密/解密算法的特点14
3.1.2其技术原理类似AES的变换操作16
3.2可信密码学“块”对称加密解密技术方法17
3.2.1变幻运算设计借鉴AES17
3.2.2采用自然的点集“拓扑群”分形变幻环运算17
3.3可信密码学“块”对称加密解密算法设计步骤20
4、设计实现21
4.1构建可信密码学技术“块”加密/解密器部件21
4.1.1“块”正向行、列及S盒变换替换21
4.1.2“块”反向行、列及S盒变换替换21
4.2构建可信密码学“块”变换运算部件21
4.2.1数据格式转换21
4.2.2修改该发生器算法的正向、反向变换功能函数代码21
4.3构建可信密码学“块”加密解密算法容器24
4.3.1构建“块”加密/解密界面24
4.3.2可信密码学指纹对称加密解密C++算法架构与控件释义24
4.4算法测试与反思25
4.4.1测试步骤与结果25
4.4.2算法部分代码与解释27
4.4.3算法不足与完善方向30
总结32
参考文献33
致谢34
附录35
1课题的研究背景和意义
1.1前言
云安全是近几年来网络界非常瞩目的问题,由于科技的发展,云计算应运而生,而数据的安全,却是需要保障的。
没有安全,实现云是不可能的。
而对于数据的加密和解密,传统的技术已经难以保障数据的安全,所以要研究出更可信的加密解密算法,保证数据的安全,从而更好的实现云计算。
1.2可信密码学的发展与现状
1.2.1可信密码学的研究背景
(1)可信密码学是传统密码学技术的扩展。
密码学是研究信息隐密的学问,是研究如何把真实信息进行隐秘化,并阻止他人获取真实信息的方法。
密码学是跨学科科目,涉及很多领域。
既涉及信息理论,也涉及数学领域。
同时采用传统密码学对称加密/解密技术,作为该技术集成的子集技术。
因此可信密码学对称加密/解密技术,是传统密码学对称加密/解密的扩展和集成技术。
传统密码学技术作为可信密码学技术的子集,其系统如图1.1所示。
在图1.1中,加密/解密算法及其系列用户协议和定义、密钥管理等,总称密码系统。
图1.1密码系统
(2)可信密码学的研究现有技术支持
aAES加密/解密算法
可信密码学“块”对称加密/解密技术也可以采用和AES具有类似的原理实现。
可信密码学“块”对称、加密/解密技术把AES等传统对称加密/解密技术作为子集,使之与点集拓扑群变换环运算器算法结合。
因此可保持传统密码学技术原有的优点,从而使两者可集成。
b点集拓扑群分形变换运算器
点集"拓扑群"分形变幻环运算器具有一致便捷的可信云安全技术实现方法,以此为开发工具,能够使可信云安全关键技术的开发简单易行。
同时输入/输出数据类型一致,且能够自然融合模式识别技术和密码学技术进行自认证。
1.2.2传统密码学面临着危机与对策
(1)密码学通常用来保证安全的通信,面临危机如下:
a只有掌握密钥才能够实现加密/解密一致,其他人即使拿到密文文件也无法解密获得里面的明文信息。
因为存在泄密、遗忘、盗窃,所以密钥的保密、保存具有高难度,使用密钥也要小心谨慎,防备假冒。
b接收者需要确定信息在传送的过程中有无更改。
虽然攻击算法缺陷和"破解"密钥有难度,但还是可伪造、变造、损毁数据真实完整性。
c无法用生物信息特征作为物证进行相应识别认证,证明自己名副其实。
接收者不可认证发送者,发送者也不可证明自己是真正的发送者。
d发送者抵赖该发送出的信息。
借口密钥泄密、遭窃,说自己并非是密钥行为人,推卸相关责任。
(2)对策:
密码学希望提供有效的机制来解决以上危机,然而并非总是能够同时解决的。
加密方法的可认证性依赖于密钥的可认证性,而密钥的安全性又依赖于密钥的隐秘性。
这产生了矛盾,就是加密者没有办法法保证在密钥隐秘的前提下,证明该密钥真正是加密者自己的。
所以,引入模式识别技术进行密码学改造就成为了一种对策。
1.3主要研究内容
可信密码学对称加密/解密技术是对信任根做可信对称变幻运算的可信云安全技术。
可信云、端互动的隐秘通信,可信云、端互动“零知识”(隐秘生物信息特征的细节内容)挑战应答,可信云、端互动的加密/解密存储,都需要对该信任根即可信信息特征源作对称加密/解密和模式识别认证的可信计算。
本课题以点集“拓扑群”分形变幻环运算器为技术开发工具,结合传统密码学对称加密/解密技术,以及采用和AES类似的原理,打造可信密码学“块”对称加密/解密算法,以指纹特征对称加密/解密为例,在VisualC++编程环境下对数字进行图像处理编码,构建可视化加密/解密等各种部件。
实现可信密码学对称加密/解密,保证算法的可行性。
2、可信密码学对称加密解密算法简介
2.1可信密码学技术对称加密/解密技术开发前提
2.1.1可信密码学技术对称加密/解密算法与AES
AES算法通常由密钥扩展算法和加密(解密)算法两部分组成。
密钥扩展算法将b字节用户主密钥扩展成r个子密钥。
加密算法由一个密码学上的弱函数f与r个子密钥迭代r次组成。
混乱和密钥扩散是分组密码算法设计的基本原则。
抵御已知明文的差分和线性攻击,可变长密钥和分组是该体制的设计要点。
AES的基本要求是,采用对称分组密码体制,密钥长度的最少支持为128、192、256,分组长度128位,算法应易于各种硬件和软件实现。
可信密码学技术对称加密/解密算法与传统密码学技术的AES加密/解密算法比较,两者相互包容互为统一,不过也有明显的不同之处。
可信密码学技术对称加密/解密算法的最大特色是该密钥和算法都能作可信验证。
①密钥和算法的可信验证
可信密码学技术加密/解密的密钥和算法都是随机可信生物信息特征,密钥和算法都可用生物信息特征验证。
AES算法本身是不能进行可信验证的,密钥也如此。
②算法变换的对象属性不一样
AES行列及S盒变换的对象是明文,而可信密码学技术对称加密/解密算法变换的对象可以是明文,也可以是随机可信生物信息特征对象,即该点集“拓扑群”运算方法。
可信密码学加密/解密技术与AES相互包容互为统一。
可信密码学技术加密/解密算法是基于白组织、混沌、分形等自然驱动的算法,算法和密钥一体。
AES是基于行列及S盒等人为设置的算法,算法和密钥分离。
所以可信密码学技术加密/解密算法可被视为传统AES加密/解密算法的升级。
2.1.2点集拓扑群分形变幻环运算器开发工具介绍
点集拓扑群分形变幻环运算器的编程思想,以下通过例子程序代码分析,说明实现点集"拓扑群"分形变幻环运算器的编程算法。
a.点集"拓扑群"分形变幻环实例的运行说明
运行Img2Feature.exe程序,该运算器程序演示界面,如图2.1所示。
图2.1点集拓扑群变幻运算器
点集"拓扑群"分形变幻环运算器程序实例运行步骤。
以指纹作为生物信息特征运行Img2Feature5.exe。
程序使用步骤如下。
①单击"Open"按钮,选择一幅指纹图像打开。
②单击"SaveFeature"按钮,选择产生点集"拓扑群"变幻记录的文件路径。
③文本框中填入程序读入的数字,作为单位点集"拓扑群"即环变幻的单位数。
④单击"F"按钮,启动该点集"拓扑群"分形变幻环运算,如图2.2所示。
图2.2点集拓扑群变幻运算器
⑤单击"SaveFeature"按钮,按路径打开"log.log"文件,显示该运算值文件内容。
注意第③项文本框内要填入的数字,本节以一次点集"拓扑群"分形变幻环运算为单位的运算操作数。
如在该文本框中填入38,则该程序进行38次单位点集"拓扑群"分形变幻环运算操作,即38次环变幻运算操作。
运算操作内容均记录在"log.log"文件中。
如图2.3所示,打开的"log.log"文件显示由子集G1[K]和G[K]组成集合G[K]一系列数据。
从开始到结束显示每一系列数据都不同,呈现很大的变幻随机性。
图2.3log文件数据显示
在上图中,K值范围为1~38。
Move[K]、Round[K]、MRNumber[K]数值范围也从Move[1]=1、Round[1]=0、MRNumber[1]=3,直到随38次单位点集"拓扑群"分形变幻环运算,呈现Move[38]=6、Round[38]=0、MRNumber[38]=3。
文件列从子集G1[2]和G2[2]组成的集合G[2]系列数据开始,到子集G1[39]和G2[39]组成的集合G[39]系列数据结束,是38组集合G[K]变幻数据。
第1组集合是初始数据。
b.点集"拓扑群"分形变幻环运算器算法代码
引用上述运算器例子算法实现源代码,能够说明点集"拓扑群"分形变幻环运算器算法的代码构成及其算法功能实现的程序流程。
(1)点集"拓扑群"分形变幻环运算器程序的对话框演示界面。
例子演示程序对话框类的事件处理函数和功能函数代码如下:
//CImg2FeatureDlgdialog
classCImg2FeatureDlg:
publicCDialog
{
//Construction
public:
CImg2FeatureDlg(CWnd*pParent=NULL);
//standardconstructor
//DialogData
//{{AFX_DATA(CImg2FeatureDlg)
enum{IDD=IDD_IMG2FEATURE_DIALOG};
intm_k;
//}}AFX_DATA
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CImg2FeatureDlg)
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);
//DDX/DDVsupport
//}}AFX_VIRTUAL
//Implementation
protected:
HICONm_hIcon;
//Generatedmessagemapfunctions
//{{AFX_MSG(CImg2FeatureDlg)
virtualBOOLOnInitDialog();
afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam);
afx_msgvoidOnPaint();
afx_msgHCURSOROnQueryDragIcon();
afx_msgvoidOnOpen();
afx_msgvoidOnSave();
afx_msgvoidOnButtonF();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
注意,上述3行加粗非斜体代码,是该演示程序对话框的3个按钮事件处理函数:
afx_msgvoidOnOpen()、afx_msgvoidOnSave()、fx_msgvoidOnButtonF()。
①OnOpen()事件处理函数的功能。
读入一帧捕获的生物信息特征信息(为指纹图片)。
②OnSave()事件处理函数的功能。
包括数据数字化OnOpen()读入生物信息特征信息,并且设置将要输出的一系列由该点集"拓扑群"变幻运算器产生的,生物信息特征数据文件路径。
③OnButtonF()事件处理函数的功能。
包括架构可信安全云技术点集"拓扑群"变幻运算器,对OnOpen()读入并且经OnSave()数字化的生物信息特征信息,进行一系列该点集"拓扑群"变幻运算器运算,产生OnSave()设置路径写出的该系列可信随机生物信息特征变幻数据。
由于OnButtonF()为该对话框演示程序的主要事件处理函数,以下进行详细讲解。
(2)点集"拓扑群"分形变幻环运算器的主事件处理函数。
同样把例子演示程序的主要事件处理函数,用于该点集"拓扑群"分形变幻环运算器算法演示程序的主要事件处理函数,代码如下。
①对话框按钮"F"事件处理函数OnButtonF()。
voidCImg2FeatureDlg:
:
OnButtonF()
{
UpdateData(TRUE);
intK=m_k;
CStringtmp;
tmp.Format("K=%d",K);
AfxMessageBox(tmp);
FILE*file=fopen("log.log","w");
fprintf(file,"InitialData\n");
PrintData(end_x,end_y,end_n,file,0,1);
PrintData(fork_x,fork_y,fork_n,file,1,1);
for(inti=0;i{
fprintf(file,"K=%d",(i+1));
intend_xor_x=0;
intend_xor_y=0;
intend_xor_all=0;
intfork_xor_x=0;
intfork_xor_y=0;
intfork_xor_all=0;
XorTest(end_x,end_y,end_n,&end_xor_x,
&end_xor_y,&end_xor_all);
XorTest(fork_x,fork_y,fork_n,&fork_xor_x,
&fork_xor_y,&fork_xor_all);
intMove=end_xor_all%7;////
if(Move<1)
Move=1;
intRound=fork_xor_all%3;////
if(Round=3)
Round=36;
if(Round=2)
Round=27;
if(Round=1)
Round=18;
if(Round=0)
Round=9;
intMRNumber=(end_xor_all^fork_xor_all)%5;////
if(MRNumber<3)
MRNumber=3;
intt=i+1;
fprintf(file,"\tf(G1[%d])=%d\tf(G2[%d])=%d\tf(G1[%d],G2[%d])=%d\n"
t,end_xor_all,t,fork_xor_all,t,t,(end_xor_all^
fork_xor_all));fprintf(file,"\tMove[%d]=%d
\tRound[%d]=%d\tMRNumber[%d]=%d\n",t,Move,t,Round
t,MRNumber);
fprintf(file,"\n");
F(end_x,end_y,end_n,Move,Round,MRNumber);
F(fork_x,fork_y,fork_n,Move,Round,MRNumber);
PrintData(end_x,end_y,end_n,file,0,i+2);
PrintData(fork_x,fork_y,fork_n,file,1,i+2);
}
fclose(file);
AfxMessageBox("Done");
}
注意上述若干行加粗非斜体代码是该OnButtonF()按钮事件处理函数的核心内容。
②其中说明:
PrintData(end_x,end_y,end_n,file,0,1);
PrintData(fork_x,fork_y,fork_n,file,1,1);
上述两个函数是算法设计的子集自组织(如图4.11所示)的功能函数。
XorTest(end_x,end_y,end_n,&end_xor_x,&end_xor_y,&end_xor_all);
XorTest(fork_x,fork_y,fork_n,&fork_xor_x,&fork_xor_y,&fork_xor_all);
上述两个函数是算法设计的子集混沌运算(如图4.12所示)的功能函数。
intMove=end_xor_all%7;
intRound=fork_xor_all%3;
intMRNumber=(end_xor_all^fork_xor_all)%5;
上述3行代码及其相关条件处理代码,是算法设计的集合及其子集自组织、混沌和分形运算(如图4.13所示)的功能函数。
进行相关条件处理是为控制自组织、混沌和分形的运算量。
自组织、混沌和分形参数即Move[N]、Round[N]、MRNumber[N]。
F(end_x,end_y,end_n,Move,Round,MRNumber);
F(fork_x,fork_y,fork_n,Move,Round,MRNumber);
上述两函数是算法设计:
基于环、群运算的点集"拓扑群"非线性变换和复杂性变幻运算功能函数。
(3)点集"拓扑群"分形变幻环运算器的功能函数。
同样把例子演示程序的主要功能函数,用于该加密/解密算法演示程序的主要功能函数,对上述功能函数进行说明。
①自组织参数运算。
自组织参数运算是为了获取自组织数。
以下