ImageVerifierCode 换一换
格式:DOC , 页数:10 ,大小:214KB ,
资源ID:6970168      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-6970168.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(信息对抗课程设计.doc)为本站会员(j35w19)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

信息对抗课程设计.doc

1、信息对抗系统分析与设计课程设计报告题目: 仿射密码加解密实现院(系) 计算机学院 专 业 信息对抗 班 级 110608 姓 名 刘之烨 学 号 110608111 导 师 徐江涛 信息对抗系统分析与设计课程设计11 目的仿射密码加解密实现2 基本原理加法密码和乘法密码结合就构成仿射密码。秘钥 K=(k 1,k 2)加密算法:c = E k(m)=(k1m + k2) mod n 公式(1)解密算法:m = D k(c)=k3(c - k2) mod n 公式(2)(其中(k 3k1)mod 26 = 1,即 k3,k 1互逆)仿射密码具有可逆性的条件是 gcd(k1, n)=1。当 k1=1

2、 时,仿射密码变为加法密码,当 k2=0 时,仿射密码变为乘法密码。仿射密码中的密钥空间的大小为 n(n),当 n 为 26 字母,(n)=12,因此仿射密码的密钥空间为 1226 = 312。3 主要功能 实现仿射密码加密功能 实现仿射密码解密功能 具有网络通讯能力4 实现要求 利用 C+开发工具,使用对话框工程 加密界面信息对抗系统分析与设计课程设计2 解密界面信息对抗系统分析与设计课程设计35 实现过程1. 新建一个 MFC 工程, 取名 MyTab, 选择 Dialog based, 然后 Finish.2. 删除对话框上默认添加的三个控件. 添加 Tab Control 控件并在 P

3、roperty 属性中设置 ID为 IDC_TAB1 ,调速尺寸.3. 在对话框的初始化函数 OnInitDialog 里面添加如下代码: m_tab.InsertItem(0,“加密“);m_tab.InsertItem(1,“解密“);4在对话框资源里面添加 2 个对话框资源, ID 分别命名为 IDD_DIALOG1, IDD_DIALOG2,. style 为 Child, Border 为 None, 调整大小. 再分别为其添加对应的基于 CDialog 类 m_dlg1, m_dlg2. 5.在 CMyDlg 类中添加三个成员变量 m_mydecode, m_encry 分别是三个

4、子对话框的实例. 代码如下:m_dlg2 m_mydecode;m_dlg1 m_encry;6 在 IDD_D IALOG1 对话框上添加静态文本控件内容为“K1”: 再在后面插入一个 Tab Control 控件,添加静态文本控件:“K2:”:插入文本框控件;再选择 2 个 group box 控件,分别在其中插入文本框控件。如下图所示:7.实用类向导(ClassWizard )将各个控件关联变量。如下图:信息对抗系统分析与设计课程设计48. 在 IDD_MYTAB_DIALOG 对话框的初始化函数 OnInitDialog 里面添加如下代码: /关联对话框,并且将 IDC_TAB1 控件

5、设为父窗口m_encry.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1);m_mydecode.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1);/获得 IDC_TABTEST 客户区大小 CRect rs;m_tab.GetClientRect(/调整子对话框在父窗口中的位置 rs.top += 23;/设置子对话框尺寸并移动到指定位置 m_encry.MoveWindow(m_mydecode.MoveWindow(/分别设置隐藏和显示 m_encry.ShowWindow(true);m_mydecode.ShowWindow

6、(false);/设置默认的选项卡 m_tab.SetCurSel(0);9. 添加 Tab Control 控件的 TCN_SELCHANGE 事件响应函数 OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult) ,函数体代码如下:int curcel = m_tab.GetCurSel();switch(curcel)case 0:m_encry.ShowWindow(true);m_mydecode.ShowWindow(false);break;case 1:m_encry.ShowWindow(false);m_mydecode.ShowWi

7、ndow(true);break;*pResult = 0;10. 在 IDD_DIALOG2 下重复 67 步骤,如下图解密界面:信息对抗系统分析与设计课程设计511. 双击加密界面下的加密按钮,产生消息响应函数:OnButton1() ,添加代码如下:void m_dlg1:OnButton1() / TODO: Add your control notification handler code hereUpdateData(TRUE);int k1 = atoi(m_ek1);int len = strlen(m_etext1);char answer100;for (int i =

8、0; i /在 StaAfx.h 中添加头文件(2)添加全局变量CString ciphertext; /在 StaAfx.cpp 中添加Extern CString ciphertext; /在 StaAfx.h 中添加(3)在 CMyDlg 中添加函数,添加代码,BOOL InitSocket();BOOL CMyDlg:InitSocket()m_mainsocket = socket(AF_INET,SOCK_DGRAM,0);信息对抗系统分析与设计课程设计7if (INVALID_SOCKET = m_mainsocket)MessageBox(“创建套接字库失败!“);return

9、 FALSE;SOCKADDR_IN addrsock;addrsock.sin_family = AF_INET;addrsock.sin_addr.S_un.S_addr = htonl(INADDR_ANY);addrsock.sin_port = htons(3000);int renval;renval = bind(m_mainsocket,(sockaddr *)if (SOCKET_ERROR = renval)closesocket(m_mainsocket);MessageBox(“绑定失败!“);return FALSE;return TRUE;(4)在 CMyDlg 下

10、的 OnInitDialog()中调用 InitSocket();并为子窗口的 socket 赋值。InitSocket();m_encry.m_socket = m_mainsocket;m_mydecode.sockSer = m_mainsocket;(5)创建线程接收数据,并在线程中编写函数。recvparm * parm = new recvparm; /其中 struct recvparmparm-hwnd = m_hWnd; parm-sock = m_mainsocket; SOCKET sock;HANDLE hThread = CreateThread(NULL,0, HW

11、ND hwnd;ThreadProc,(LPVOID)parm,0,NULL); ;CloseHandle(hThread);DWORD WINAPI CMyDlg:ThreadProc(LPVOID lpParameter)SOCKET sock = (recvparm*)lpParameter)-sock;HWND hwnd = (recvparm*)lpParameter)-hwnd;SOCKADDR_IN sockFrom;int len = sizeof(sockaddr);char recvbuf100;int retval;while (TRUE)信息对抗系统分析与设计课程设计8

12、retval = recvfrom(sock,recvbuf,100,0,(sockaddr*)if (SOCKET_ERROR = retval)AfxMessageBox(“errer“);break;ciphertext = recvbuf;(6)双击加密界面下的“发送”按钮产生消息响应函数 OnButton2() ,发送信息。void m_dlg1:OnButton2() / TODO: Add your control notification handler code hereDWORD dwip;m_ip.GetAddress(dwip);SOCKADDR_IN sockto;s

13、ockto.sin_family = AF_INET;sockto.sin_addr.S_un.S_addr = htonl(dwip);sockto.sin_port = htons(3000);CString sendbuf = m_etext2;sendto(m_socket,sendbuf,strlen(sendbuf)+1,0,(sockaddr *)(7)双击解密界面下的“接收”按钮,产生消息响应函数 OnButton2() ,接收信息。void m_dlg2:OnButton2() / TODO: Add your control notification handler code hereUpdateData(TRUE);m_dtext1 = ciphertext;UpdateData(FALSE);6 调试与分析(1)运行结果信息对抗系统分析与设计课程设计97 结论通过这次的仿射密码加解密的课程设计,我学会了很多以前不熟悉的知识,掌握了 tabcontrol 控件的使用,和 socket 编程的知识。了解了仿射密码加解密的原理和方法。能够利用所学的密码学基本知识和技能,独立完成一个较为综合应用程序的开发让我学习到了很多。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报