实验一DES算法应用一、实验目的1.学会并实现DES算法2.理解对称密码体制的基本思想3.掌握数据加密和解密的基本过程二、实验内容根据DES加密标准,用C++设计编写符合DES算法思想的加、解密程序,能够实现对字符串和数组的加密和解密。三、实验的原理美国IBM公司W.Tuchman和C.Meyer1971-1972年研制成功。1967年美国HorstFeistel提出的理论。美国国家标准局(NBS)1973年5月到1974年8月两次发布通告,公开征求用于电子计算机的加密算法。经评选从一大批算法中采纳了IBM的LUCIFER方案。DES算法1975年3月公开发表,1977年1月15日由美国国家标准局颁布为联邦数据加密标准(DataEncryptionStandard),于1977年7月15日生效。为二进制编码数据设计的,可以对计算机数据进行密码保护的数学运算。DES的保密性仅取决于对密钥的保密,而算法是公开的。64位明文变换到64位密文,密钥64位,实际可用密钥长度为56位。四、实验代码//DES加解密算法.cpp:Definestheclassbehaviorsfortheapplication.//#includestdafx.h#includeDES加解密算法.h#includeDES加解密算法Dlg.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CDESAppBEGIN_MESSAGE_MAP(CDESApp,CWinApp)//{{AFX_MSG_MAP(CDESApp)//NOTE-theClassWizardwilladdandremovemappingmacroshere.//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!//}}AFX_MSGON_COMMAND(ID_HELP,CWinApp::OnHelp)END_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CDESAppconstructionCDESApp::CDESApp(){//TODO:addconstructioncodehere,//PlaceallsignificantinitializationinInitInstance}///////////////////////////////////////////////////////////////////////////////TheoneandonlyCDESAppobjectCDESApptheApp;///////////////////////////////////////////////////////////////////////////////CDESAppinitializationBOOLCDESApp::InitInstance(){AfxEnableControlContainer();//Standardinitialization//Ifyouarenotusingthesefeaturesandwishtoreducethesize//ofyourfinalexecutable,youshouldremovefromthefollowing//thespecificinitializationroutinesyoudonotneed.#ifdef_AFXDLLEnable3dControls();//CallthiswhenusingMFCinasharedDLL#elseEnable3dControlsStatic();//CallthiswhenlinkingtoMFCstatically#endifCDESDlgdlg;m_pMainWnd=&dlg;intnResponse=dlg.DoModal();if(nResponse==IDOK){//TODO:Placecodeheretohandlewhenthedialogis//dismissedwithOK}elseif(nResponse==IDCANCEL){//TODO:Placecodeheretohandlewhenthedialogis//dismissedwithCancel}//Sincethedialoghasbeenclosed,returnFALSEsothatweexitthe//application,ratherthanstarttheapplication'smessagepump.returnFALSE;}五、运行结果是:六、思考1.影响DES密码体制安全的因素主要是密钥的健壮性。2.DES密码体制中加密算法和解密算法流程相同,区别在于解密使用的子密钥和加密的子密钥相反