项目1 数据传输加密 1.算法了解

1.项目概述

项目使用到的资源如下

1.openssl c语言编写的密码开源库

2.protobuf 数据序列化 用于规范网络通信的数据

3.tortoise-git 项目版本管理

项目业务逻辑 ps:通信程序->进行数据加密

项目组 3-5 人 进行通信程序制作 工期 2周

2.项目所用技术

1.序列化 2.套接字通信 3.共享内存操作 4.oracle数据库操作 5.客户端实现 服务器实现

6.封装接口

项目图

1.密码学知识

了解 三要素

明文 密文 算法

了解对称加密 与非对称加密的特点

1.算法举例--对称算法

des->3des特点

长度 加密方法

3des特点 与des区别

加密 解密 加密

aes 项目使用最安全, 效率最高的公开的对称加密算法

密钥长度

分组加密

每组明文 密文长度相等

  • Blowfish
  • RC2/RC4/RC5
  • IDEA
  • SKIPJACK
2.算法举例 非对称加密
  • RSA(数字签名和密钥交换)
    • 项目中用的是rsa
  • ECC(椭圆曲线加密算法 - 数字签名)
  • Diffie-Hellman(DH, 密钥交换)
  • El Gamal(数字签名)
  • DSA(数字签名)

密钥交换过程

无标题

3.哈希算法

1.哈希算法特点

应用场景 ->网盘秒传 登录验证

2.哈希算法应用

  • MD4/MD5
    • 散列值长度: 16字节
    • 抗碰撞性已经被破解
  • SHA-1
    • 散列值长度: 20字节
    • 抗碰撞性已经被破解
  • SHA-2
    • sha224
      • 散列值长度: 224bit / 8 = 28byte
    • sha256
      • 散列值长度: 256bit / 8 = 32byte
    • sha384
      • 散列值长度: 384bit / 8 = 48byte
    • sha512
      • 散列值长度: 512bit / 8 = 64byte
  • SHA3-224/SHA3-256/SHA3-384/SHA3-512
4.信息认证码

作用 防止数据串改

使用 原始数据+密钥 ->哈希函数=信息认证码

验证过程

缺点

  • 秘钥分发困难 ->信息安全无法保证
  • 不能区分消息的所有者
5.数字签名

作用 是否被篡改 鉴别数据所有者 不对数据加密

1.数字签名过程 密文

2.检验签名过程 接收的原始数据 + 签名 接收的数据进行哈希 对比密文

解决分发困难问题 解决数据串改问题 一私 一公

安装openssl

OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。

自写查看文档

posted @ 2023-07-31 22:53  大橘|博客  阅读(62)  评论(0)    收藏  举报