你将会学到:
理解密码学涉及到的各种算法,理解密码学各种算法的应用场景,比如AES和椭圆曲线的应用场景,理解openssl的各种密码学接口,并理解接口背后的安全知识,能够封装应用密码学知识,理解区块链中应用到的密码学技术,跨平台编译OpenSSL3.0 源码并能将其应用到项目; 了解https协议,并能编写应用;理解证书的作用和证书的认证;
课程目标:
能够学习密码学知识,能够进入到安全领域 能够开发出一个简化的安全套接字https协议的web服务器
课程简介
课程包含密码学和区块链的核心技术,从图示原理讲解,到工程代码演示。内容包括Base64,Base58(比特币钱包地址),单向散列hash值(消息指纹)的MD5,SHA1,SHA2(挖矿算法),SHA3,国密散列算法SM3和Merkle可信树(比特币交易链),对称分组加密的DES,3DES,AES,国密对称SM4,非对称(公钥加密)的RSA,和椭圆曲线EC,国密椭圆曲线SM2,另外包含消息认证码HMAC,数字签名RSA-DSA,ECDSA(比特币用椭圆曲线签名),秘钥交换算法ECDH等。综合应用SSL/TLS安全通信和HTTPS协议实现。
随着”新基建“的推行,其中涉及到的工业互联网、物联网、人工智能、云计算、区块链,无一不是与安全相关,所有数据的存储、传输、签名认证都涉及到密码学技术,所以在这样的大环境下再结合我多年安全开发经验,设计出这门课程。
因为密码学技术在新基建中的重要性,所以使其成为底层开发人员重要的技能。特别是现在的区块链技术是多面应用密码学,大数据技术和人工智能技术也要解决隐私安全问题。所以现在学习相关技术是非常重要的技术储备,并且可以改造现有的系统,提升其安全性。
课程特点
面向工程应用
市面上的一些密码学课程和密码学的书籍,很多都是从考证出发,讲解算法原理并不面向工程应用,而我们现在缺少的是工程应用相关的知识,本课程从工程应用出发,每种技术都主要讲解其在工程中的使用,并演示工程应用的代码。
从零实现部分算法
课程中实现了base16编解码 ,XOR对称加解密算法,PKCS7 pading数据填充算法,通过对一些简单算法的实现,从而加深对密码学的理解。
理论与实践结合
课程如果只是讲代码,同学并不能理解接口背后的原理,在项目设计中就会留下隐患,出现错误也不容易排查出问题。
如果只讲理论,比如对密码学的一些研究,对于大部分从事工程应用的同学并没有必要,而是理论与实践结合,一切为了工程实践。
代码现场打出
代码不放在ppt而是现场打出,更好的让学员理解代码编写的逻辑,老师现场敲出代码正是展示出了工程项目的思考,每个步骤为什么要这么做,考虑了哪些异常,
易学不枯燥
课程为了确保大部分人研发者都学得会,理解算法原理(才能真正理解算法特性),学习工程应用(接口调用,但不局限接口调用,理解接口背后的机制,并能解决工程中会出现的问题),阅读算法源码但不实现密码算法,,并能将密码学投入到实际工程中,如果是想学习具体的加密算法实现,请关注我后面的课程。
课程用到的技术
课程主要演示基于 VS2019 C++,部分演示基于ubuntu 18.04 GCC makefile
如果没有装linux系统,对本课程的学习也没有影响
课程中的OpenSSL基于**的3.0版本,如果是openss 1.1.1版本也支持,再低的版本不支持国密算法。
〖资源目录〗:
- ├──1-2 OpenSSL3.0介绍和在windows下使用vs2019_ev.mp4 55.37M
- ├──1-3 使用vs2019创建第一个openssl3.0的测试项目_ev.mp4 26.85M
- ├──1-4 linux下编译openssl3.0源码并编写测试项目_ev.mp4 47.79M
- ├──2-1 base16编解码原理讲解_ev.mp4 30.58M
- ├──2-2 从0开始C++实现base16编码和解码_ev.mp4 76.50M
- ├──2-3 Base64原理分析_ev.mp4 12.39M
- ├──2-4 OpenSSL_BIO接口解析_ev.mp4 11.60M
- ├──2-5 OpenSSL_BIO接口Base64编码_ev.mp4 37.45M
- ├──2-6 OpenSSL_BIO接口Base64解码并解决换行问题_ev.mp4 52.61M
- ├──2-7 Base58_比特币钱包地址_算法分析_ev.mp4 24.11M
- ├──2-8 比特币base58源码分析并抽取函数进行测试 单项散列_消息_ev.mp4 70.90M
- ├──3-1 单向散列函数章节任务说明_ev.mp4 5.60M
- ├──3-10 SHA3和国密SM3散列算法介绍_ev.mp4 16.85M
- ├──3-12 消息认证码HMAC算法介绍和安全分析_ev.mp4 15.15M
- ├──3-13 OpenSSL的HMAC接口演示消息认证_ev.mp4 50.99M
- ├──3-14 单向散列章节总结_ev.mp4 5.81M
- ├──3-2 什么是单向散列函数_ev.mp4 19.20M
- ├──3-3 单项散列函数的应用场景详解和常用算法_比特币挖矿_消息认证码_ev.mp4 26.63M
- ├──3-4 MD5算法原理详解_ev.mp4 29.58M
- ├──3-5 OpenSSL的MD5接口调用和源码分析_ev.mp4 31.67M
- ├──3-6 使用MD5_HashList验证文件完整性_定时检测文件修改_ev.mp4 48.54M
- ├──3-7 比特币中Merkle可信树基于SHA1算法代码模拟_ev.mp4 69.98M
- ├──3-8 SHA2原理分析和比特币挖矿模拟原理分析_ev.mp4 18.25M
- ├──3-9 基于SHA256模拟比特币挖矿代码演示_ev.mp4 21.44M
- ├──4-1 对称分组加密算法章节介绍和课程目标_ev.mp4 7.46M
- ├──4-10 封装DES的ECB算法并实现了PKCS7数据填充协议_ev.mp4 39.86M
- ├──4-11 封装DES_CBC加解密算法实现PKCS7填充_ev.mp4 44.72M
- ├──4-17 AES算法原理介绍_ev.mp4 16.56M
- ├──4-18 封装C++加密类支持AES和3DES完成初始化_ev.mp4 73.92M
- ├──4-19 完成XSec封装加解密演示用AES加解密文件_ev.mp4 43.59M
- ├──4-2 对称分组加密算法概述和ECB安全问题分析_ev.mp4 24.58M
- ├──4-20 国密SM4介绍添加到XSec封装中并修正DES算法的填充处理_ev.mp4 30.47M
- ├──4-21 测试12类对称加密算法性能测试类的初始化和测试函数_ev.mp4 47.98M
- ├──4-22 完成对称加密算法性能测试并将项目移植到Linux_ev.mp4 32.46M
- ├──4-23 对称分组加密算法章节总结_ev.mp4 7.69M
- ├──4-3 通过XOR自己实现一个对称分组加密算法原理介绍_ev.mp4 7.25M
- ├──4-4 通过XOR自己实现一个对称分组加密算法代码演示_ev.mp4 64.44M
- ├──4-5 DES算法原理介绍_ev.mp4 7.55M
- ├──4-6 OpenSSL的DES加密接口讲解和调用演示_ev.mp4 30.67M
- ├──4-7 演示操纵DES的ECB模式密文_ev.mp4 42.71M
- ├──4-8 使用DES的CBC算法替换ECB演示_ev.mp4 40.15M
- ├──4-9 使用C++封装DES算法实现初始化和密码填充策略_ev.mp4 48.20M
- ├──5-1 RSA非对称加密原理介绍和密钥对生成原理分析_ev.mp4 20.61M
- ├──5-10 签名和验签原理讲解并演示rsa的签名的代码_ev.mp4 36.61M
- ├──5-12 椭圆曲线原理和加解密流程分析_ev.mp4 27.03M
- ├──5-13 打印支持曲线列表并选择椭圆曲线生成秘钥_ev.mp4 40.58M
- ├──5-15 椭圆曲线ECDSA签名和验签原理分析_ev.mp4 11.21M
- ├──5-17 ecdh椭圆曲线秘钥交换协议分析_ev.mp4 10.03M
- ├──5-2 OpenSSL的RSA秘钥对生成代码详解_ev.mp4 50.76M
- ├──5-20 完成椭圆曲线客户端与服务端交换秘钥示例代码_ev.mp4 39.95M
- ├──5-21 非对称加密章节总结_ev.mp4 3.47M
- ├──5-3 RSA_PKCS1_PADDING填充协议分析_ev.mp4 14.08M
- ├──5-4 完成RSA公钥加密数据,并处理填充数据_ev.mp4 42.47M
- ├──5-5 完成RSA私钥解密数据_ev.mp4 36.23M
- ├──6-1 安全通信SSL_TLS_OPENSSL章节介绍_ev.mp4 5.06M
- ├──6-10 HTTPS协议交互分析和HTTP协议介绍_ev.mp4 19.37M
- ├──6-11 HTTPS网站服务器代码演示_ev.mp4 26.91M
- ├──6-12 课程总结_ev.mp4 6.25M
- ├──6-2 SSL_TLS协议介绍_ev.mp4 13.82M
- ├──6-3 TLS握手协议和记录协议详解_ev.mp4 14.52M
- ├──6-4 基于OpenSSL证书和秘钥的制作_ev.mp4 55.74M
- ├──6-5 OpenSSL 加密SSL_TLS通信接口分析_ev.mp4 26.87M
- ├──6-6 OpenSSL接口编程实例完成跨平台通信项目_ev.mp4 113.75M
- ├──6-7 完成OpenSSL服务端SSL握手调用_ev.mp4 48.14M
- ├──6-8 打印通信使用的协议和x509证书信息_ev.mp4 28.04M
- └──6-9 完成基于OpenSSL的安全加密通信并用抓包验证_ev.mp4 64.46M