C++加密与解密-实战区块链核心密码学-基于openssl
你将会学到:
理解密码学涉及到的各种算法,理解密码学各种算法的应用场景,比如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-1 课程介绍.mp4
1-2 OpenSSL3.0介绍和在windows下使用vs2019.mp4
1-3 使用vs2019创建第一个openssl3.0的测试项目.mp4
1-4 linux下编译openssl3.0源码并编写测试项目.mp4
2-1 base16编解码原理讲解.mp4
2-2 从0开始C++实现base16编码和解码.mp4
2-3 Base64原理分析.mp4
2-4 OpenSSL_BIO接口解析.mp4
2-5 OpenSSL_BIO接口Base64编码.mp4
2-6 OpenSSL_BIO接口Base64解码并解决换行问题.mp4
2-7 Base58_比特币钱包地址_算法分析.mp4
2-8 比特币base58源码分析并抽取函数进行测试 单项散列_消息.mp4
2使用vs2019创建第一个openssl3.0的测试项目.zip
3-1 单向散列函数章节任务说明.mp4
3-2 什么是单向散列函数.mp4
3-3 单项散列函数的应用场景详解和常用算法_比特币挖矿_消息认证码.mp4
3-4 MD5算法原理详解.mp4
3-5 OpenSSL的MD5接口调用和源码分析.mp4
3-6 使用MD5_HashList验证文件完整性_定时检测文件修改.mp4
3-7 比特币中Merkle可信树基于SHA1算法代码模拟.mp4
3-8 SHA2原理分析和比特币挖矿模拟原理分析.mp4
3-9 基于SHA256模拟比特币挖矿代码演示.mp4
3-10 SHA3和国密SM3散列算法介绍.mp4
3-11 使用OpenSSL_EVP接口完成SHA3和国密SM3散列生.mp4
3-12 消息认证码HMAC算法介绍和安全分析.mp4
3-13 OpenSSL的HMAC接口演示消息认证.mp4
3-14 单向散列章节总结.mp4
3linux下编译openssl3.0源码并编写测试项目.zip
4-1 对称分组加密算法章节介绍和课程目标.mp4
4-2 对称分组加密算法概述和ECB安全问题分析.mp4
4-3 通过XOR自己实现一个对称分组加密算法原理介绍.mp4
4-4 通过XOR自己实现一个对称分组加密算法代码演示.mp4
4-5 DES算法原理介绍.mp4
4-6 OpenSSL的DES加密接口讲解和调用演示.mp4
4-7 演示操纵DES的ECB模式密文.mp4
4-8 使用DES的CBC算法替换ECB演示.mp4
4-9 使用C++封装DES算法实现初始化和密码填充策略.mp4
4-10 封装DES的ECB算法并实现了PKCS7数据填充协议.mp4
4-11 封装DES_CBC加解密算法实现PKCS7填充.mp4
4-12 三重DES算法介绍和OpenSSL_EVP_chipher接.mp4
4-13 调用EVP接口完成算法初始化并解决no OPENSSL_Ap.mp4
4-14 OpenSSL_EVP接口完成3DES数据加密并测试PKCS.mp4
4-15 OpenSSL_EVP_Cipher接口完成三重DES解密.mp4
4-16 使用OpenSSL_EVP_Cipher接口完成文件加解密.mp4
4-17 AES算法原理介绍.mp4
4-18 封装C++加密类支持AES和3DES完成初始化.mp4
4-19 完成XSec封装加解密演示用AES加解密文件.mp4
4-20 国密SM4介绍添加到XSec封装中并修正DES算法的填充处理.mp4
4-21 测试12类对称加密算法性能测试类的初始化和测试函数.mp4
4-22 完成对称加密算法性能测试并将项目移植到Linux.mp4
4-23 对称分组加密算法章节总结.mp4
5-1 RSA非对称加密原理介绍和密钥对生成原理分析.mp4
5-2 OpenSSL的RSA秘钥对生成代码详解.mp4
5-3 RSA_PKCS1_PADDING填充协议分析.mp4
5-4 完成RSA公钥加密数据,并处理填充数据.mp4
5-5 完成RSA私钥解密数据.mp4
5-6 PEM文件格式介绍EVP接口生成RSA密钥对.mp4
5-7 获取EVP_PKEY的参数列表并生成公钥和私钥pem文件.mp4
5-8 EVP的PKEY加密接口介绍完成基于EVP的RSA数据加.mp4
5-9 基于OpenSSL的EVP接口的RSA解密.mp4
5-10 签名和验签原理讲解并演示rsa的签名的代码.mp4
5-11 基于EVP接口的RSA算法验签.mp4
5-12 椭圆曲线原理和加解密流程分析.mp4
5-13 打印支持曲线列表并选择椭圆曲线生成秘钥.mp4
5-14 使用EVP接口完成国密SM2椭圆曲线数据加密和解密.mp4
5-15 椭圆曲线ECDSA签名和验签原理分析.mp4
5-16 完成椭圆曲线ECDSA的签名和验签EVP代码.mp4
5-17 ecdh椭圆曲线秘钥交换协议分析.mp4
5-18 封装ECDH类实现EVP生成椭圆曲线秘钥对.mp4
5-19 获取公钥转为二进制用于发送并完成二进制转EVP_PKEY.mp4
5-20 完成椭圆曲线客户端与服务端交换秘钥示例代码.mp4
5-21 非对称加密章节总结.mp4
5从0开始C 实现base16编码和解码.zip
6-1 安全通信SSL_TLS_OPENSSL章节介绍.mp4
6-2 SSL_TLS协议介绍.mp4
6-3 TLS握手协议和记录协议详解.mp4
6-4 基于OpenSSL证书和秘钥的制作.mp4
6-5 OpenSSL 加密SSL_TLS通信接口分析.mp4
6-6 OpenSSL接口编程实例完成跨平台通信项目.mp4
6-7 完成OpenSSL服务端SSL握手调用.mp4
6-8 打印通信使用的协议和x509证书信息.mp4
6-9 完成基于OpenSSL的安全加密通信并用抓包验证.mp4
6-10 HTTPS协议交互分析和HTTP协议介绍.mp4
6-11 HTTPS网站服务器代码演示.mp4
6-12 课程总结.mp4
9OpenSSL_BIO接口Base64解码并解决换行问题.zip
11比特币base58源码分析并抽取函数进行测试.zip
16OpenSSL的MD5接口调用和源码分析.zip
17使用MD5_HashList验证文件完整性_定时检测文件修改.zip
18比特币中Merkle可信树基于SHA1算法代码模拟.zip
20基于SHA256模拟比特币挖矿代码演示.zip
21SHA3和国密SM3散列算法介绍.zip
22使用OpenSSL_EVP接口完成SHA3和国密SM3散列生成.zip
29通过XOR自己实现一个对称分组加密算法代码演示.zip
31OpenSSL的DES加密接口讲解和调用演示.zip
33使用DES的CBC算法替换ECB演示.zip
34使用C 封装DES算法实现初始化和密码填充策略.zip
35封装DES的ECB算法并实现了PKCS7数据填充协议.zip
36封装DES_CBC加解密算法实现PKCS7填充.zip
38调用EVP接口完成算法初始化并解决noOPENSSL_Applink问题.zip
39OpenSSL_EVP接口完成3DES数据加密并测试PKCS7填充设置.zip
40OpenSSL_EVP_Cipher接口完成三重DES解密.zip
41使用OpenSSL_EVP_Cipher接口完成文件加解密.zip
43封装C 加密类支持AES和3DES完成初始化.zip
44完成XSec封装加解密演示用AES加解密文件.zip
45国密SM4介绍添加到XSec封装中并修正DES算法的填充处理.zip
46测试12类对称加密算法性能测试类的初始化和测试函数.zip
47完成对称加密算法性能测试并将项目移植到Linux.zip
53完成RSA公钥加密数据,并处理填充数据.zip
54完成RSA私钥解密数据.zip
55PEM文件格式介绍EVP接口生成RSA密钥对.zip
56获取EVP_PKEY的参数列表并生成公钥和私钥pem文件.zip
57EVP的PKEY加密接口介绍完成基于EVP的RSA数据加密.zip
60基于EVP接口的RSA算法验签.zip
61椭圆曲线原理和加解密流程分析.zip
62打印支持曲线列表并选择椭圆曲线生成秘钥.zip
63使用EVP接口完成国密SM2椭圆曲线数据加密和解密.zip
65完成椭圆曲线ECDSA的签名和验签EVP代码.zip
74基于OpenSSL证书和秘钥的制作.zip
75OpenSSL加密SSL_TLS通信接口分析.zip
76OpenSSL接口编程实例完成跨平台通信项目.zip
77完成OpenSSL服务端SSL握手调用.zip
78打印通信使用的协议和x509证书信息.zip
79完成基于OpenSSL的安全加密通信并用抓包验证.zip
81HTTPS网站服务器代码演示.zip
课程PPT.zip
评论0