收藏 分享(赏)

信息对抗课程设计.doc

上传人:j35w19 文档编号:6970168 上传时间:2019-04-28 格式:DOC 页数:10 大小:214KB
下载 相关 举报
信息对抗课程设计.doc_第1页
第1页 / 共10页
信息对抗课程设计.doc_第2页
第2页 / 共10页
信息对抗课程设计.doc_第3页
第3页 / 共10页
信息对抗课程设计.doc_第4页
第4页 / 共10页
信息对抗课程设计.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

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营业执照举报