网络安全技术吴伟项目三任务四:TCP通信加密与解密实现•一、任务介绍•二、加密与解密算法•三、TCP通信加密与解密流程•四、TCP通信加密与解密实现•五、任务实现一、任务介绍•根据任务需求,使用QTCreator实现任务要求,理解TCP通信加密流程,掌握加密算法、秘钥的概念、类型、特点,理解Windows操作系统的网络通信加密与解密的实现及第三方加密、解密API的使用,学会应用QTCreator及第三方API构建TCP通信加密与解密。二、加密与解密算法•密码技术–通过信息的变换或编码,将机密的敏感消息变换成为难以读懂的乱码字符.–窃听者得到不具有意义的信息(乱码);–窃听者不可能伪造任何乱码型的信息。二、加密与解密算法•算法–加密、解密使用的一组规则称为算法•密钥–为保证密文不能被破解,需使用一随机字符参与加密运算,随机字符为密钥二、加密与解密算法•凯撒加密(Caesarcipher)–是一种简单的消息编码方式:它根据字母表将消息中的每个字母移动常量位k。•Ex:算法右移,密钥为8–规则表•明文:abcdefghijklmnopqrstuvwxyz•密文:ijklmnopqrstuvwxyzabcdefgh–EX:•Hello•Pmttw二、加密与解密算法•算法类型•可逆–对称加密:加密与解密密钥一致,快速简单,有安全隐患•DES:数据加密标准,IBM,字节加密,输出64位•AES:高级加密标准,Rijndae算法,,字节加密,输出256位–公共加密:公共密钥与私有密钥,安全运算复杂,效率低•RSA:•不可逆–MD5–SHA•报文鉴定•数字签名二、加密与解密算法•对称加密•公共加密•思考:通信对方如何获得对方密钥?三、TCP通信加密与解密流程•TCP通信安全:–TCP连接加密–TCP会话加密–TCP终止加密四、TCP通信加密与解密实现•第三方API–OpenSSL:知名,开源SSL是SecureSocketsLayer(安全套接层协议)–AES:教学系统服务(系统API)硬件抽象(内核API)系统内核内核扩展驱动程序驱动程序驱动程序驱动程序键盘/鼠标显示器硬盘网络应用应用应用第三方类库(SDK,SoftwareDevelopmentKit)Eg:QTsdk,JavaSDK,MFC(第三方API)四、TCP通信加密与解密实现•AES–实现TCP会话阶段通信加密与解密•AES加密步骤:–实例化AES类;–指定明文及长度;strlen(plainText)–指定密文及存储空间;–创建密钥(数组、指针);–初始并生成密钥;–生成密文。四、TCP通信加密与解密实现•AES解密步骤:–实例化AES类;–指定密文及长度;sizeof(encryText)–指定明文及存储空间;–创建密钥(数组、指针);–初始并生成密钥;–生成明文。四、TCP通信加密与解密实现•操作步骤四、TCP通信加密与解密实现四、TCP通信加密与解密实现•四、TCP通信加密与解密实现四、TCP通信加密与解密实现•加密后乱码信息四、TCP通信加密与解密实现•双方密钥不一致,造成接受不正确五、任务配置对服务端、客户端接收、发送部分进行AES加密,密钥为wxit,通信双方能实现正常收发。谢谢!