diff --git a/Go/Go基础/1 概述.md b/Go/Go基础/1 概述.md index 940e2c99..5bbdd8b1 100644 --- a/Go/Go基础/1 概述.md +++ b/Go/Go基础/1 概述.md @@ -51,8 +51,7 @@ Go号称兼备C++的运行效率和PHP的开发效率,但benchmarks好像并 ![](image/2021-05-20-07-40-21.png) -### go mieyou de texing +### go去掉的内容 Go项目包括编程语言本身,附带了相关的工具和标准库,最后但并非代表不重要的是,关于简洁编程哲学的宣言。就事后诸葛的角度来看,Go语言的这些地方都做的还不错:拥有自动垃圾回收、一个包系统、函数作为一等公民、词法作用域、系统调用接口、只读的UTF8字符串等。但是Go语言本身只有很少的特性,也不太可能添加太多的特性。例如,它没有隐式的数值转换,没有构造函数和析构函数,没有运算符重载,没有默认参数,也没有继承,没有泛型,没有异常,没有宏,没有函数修饰,更没有线程局部存储。但是,语言本身是成熟和稳定的,而且承诺保证向后兼容:用之前的Go语言编写程序可以用新版本的Go语言编译器和标准库直接构建而不需要修改代码。 -## 2 从C的角度理解Go diff --git a/Go/test/1.go b/Go/test/1.go index 05483a70..4bada33a 100644 --- a/Go/test/1.go +++ b/Go/test/1.go @@ -1,14 +1,18 @@ package main import ( - "fmt" - "net/http" + "fmt" + "net/http" ) -func main() { - http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - fmt.Fprintf(w, "Hello, you've requested: %s\n", r.URL.Path) - }) +func main(){ + http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + fmt.Fprintf(w, "Hello, you've requested: %s\n", r.URL.Path) + }) - http.ListenAndServe(":80", nil) -} \ No newline at end of file + http.ListenAndServe(":80", nil) + + file, err := os.Create("writeAt.txt") + if err != nil { panic(err) } + defer file.Close() file.WriteString("Golang中文社区——这里是多余") n, err := file.WriteAt([]byte("Go语言中文网"), 24) if err != nil { panic(err) } fmt.Println(n) +} diff --git a/Go/test/format.go b/Go/test/format.go new file mode 100644 index 00000000..76b7efc8 --- /dev/null +++ b/Go/test/format.go @@ -0,0 +1,36 @@ +type RawBytes +type Result +type DB + func Open(driverName, dataSourceName string) (*DB, error) + func (db *DB) Driver() driver.Driver + func (db *DB) Ping() error + func (db *DB) Close() error + func (db *DB) SetMaxOpenConns(n int) + func (db *DB) SetMaxIdleConns(n int) + func (db *DB) Exec(query string, args ...interface{}) (Result, error) + func (db *DB) Query(query string, args ...interface{}) (*Rows, error) + func (db *DB) QueryRow(query string, args ...interface{}) *Row + func (db *DB) Prepare(query string) (*Stmt, error) + func (db *DB) Begin() (*Tx, error) +type Row + func (r *Row) Scan(dest ...interface{}) error +type Rows + func (rs *Rows) Columns() ([]string, error) + func (rs *Rows) Scan(dest ...interface{}) error + func (rs *Rows) Next() bool + func (rs *Rows) Close() error + func (rs *Rows) Err() error +type Stmt + func (s *Stmt) Exec(args ...interface{}) (Result, error) + func (s *Stmt) Query(args ...interface{}) (*Rows, error) + func (s *Stmt) QueryRow(args ...interface{}) *Row + func (s *Stmt) Close() error +type Tx + func (tx *Tx) Exec(query string, args ...interface{}) (Result, error) + func (tx *Tx) Query(query string, args ...interface{}) (*Rows, error) + func (tx *Tx) QueryRow(query string, args ...interface{}) *Row + func (tx *Tx) Prepare(query string) (*Stmt, error) + func (tx *Tx) Stmt(stmt *Stmt) *Stmt + func (tx *Tx) Commit() error + func (tx *Tx) Rollback() error + func Register(name string, driver driver.Driver) \ No newline at end of file diff --git a/加密/1 公钥秘钥加密原理.md b/加密/1 公钥秘钥加密原理.md new file mode 100644 index 00000000..4fa466f3 --- /dev/null +++ b/加密/1 公钥秘钥加密原理.md @@ -0,0 +1,120 @@ +# 公钥秘钥加密原理 + +> 加密协议的主要目标: +> * 实现两个主体之间的加密数据传输。 +> * 防止数据被篡改。签名----数据被篡改后签名不匹配。 +> * 防止数据被截获。加密----数据被截获后,无法解密。 + + +## 1 基本概念 + +### 加密算法 +* 对称加密算法:加密和解密都是使用的同一个密钥。因此对称加密算法要保证安全性的话,密钥要做好保密,只能让使用的人知道,不能对外公开。又称私钥加密或会话密钥加密算法,即信息的发送方和接收方使用同一个密钥去加密和解密数据。它的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难。 +* 非对称加密算法:加密使用的密钥和解密使用的密钥是不同的。 公钥密码体制就是一种非对称加密算法。信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。 + + +### 秘钥概念 +* 密钥:一般就是一个字符串或数字,在加密或者解密时传递给加密/解密算法。 +* 密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。 + * 公钥,公钥用来给数据加密。 + * 私钥,用来解密公钥加密的数据。 + +### 加密与解密概念 + +* 公钥和私钥是通过秘钥生成算法得到的一个密钥对(即一个公钥和一个私钥),将其中的一个向外界公开,称为公钥;另一个自己保留,称为私钥。通过这种算法得到的密钥对能保证在世界范围内是唯一的。 +* 使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。 + +### 签名与签名验证概念 +* 摘要,对需要传输的文本,做一个HASH计算,一般采用SHA1,SHA2来获得。 +* 签名,使用私钥对需要传输的文本的摘要进行加密,得到的密文即被称为该次传输过程的签名。(看最下面的一部分就明白了) +* 签名验证,数据接收端,拿到传输文本,但是需要确认该文本是否就是发送发出的内容,中途是否曾经被篡改。因此拿自己持有的公钥对签名进行解密(密钥对中的一种密钥加密的数据必定能使用另一种密钥解密。),得到了文本的摘要,然后使用与发送方同样的HASH算法计算摘要值,再与解密得到的摘要做对比,发现二者完全一致,则说明文本没有被篡改过。 + + +### 秘钥算法目标 + +* 加密,肯定是不希望别人知道我的消息,所以只要我才能解密。所以得出,公钥负责加密,私钥负责解密。 +* 签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名, 所以得出,私钥负责签名,公钥负责验证。 + +## 2 非对称加密RSA实现 + +![](image/2021-06-15-22-27-16.png) + + +有两组四个密钥:A的公钥(PUB_A),A的私钥(PRI_A);B的公钥(PUB_B),B的私钥(PRI_B)。公钥一般用来加密,私钥用来签名。通常公钥是公开出去的,但是私钥只能自己私密持有。 + +1. 这时A向B发送信息的整个签名和加密的过程如下: + 1. A先用自己的私钥(PRI_A)对信息(一般是信息的摘要)进行签名。 + 2. A接着使用B的公钥(PUB_B)对信息内容和签名信息进行加密。 + +2. 这样当B接收到A的信息后,获取信息内容的步骤如下: + 1. 用自己的私钥(PRI_B)解密A用B的公钥(PUB_B)加密的内容; + 2. 得到解密后的明文后用A的公钥(PUB_A)解签A用A自己的私钥(PRI_A)的签名。 + +保证了整个过程发送的信息的防止截获(PUB_B加密),防止篡改(PRI_A签名)。 + + +## 3 对称加密AES实现 + +![](image/2021-06-15-22-28-36.png) + +AES加密算法涉及4种操作:字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。下图给出了AES加解密的流程,从图中可以看出:1)解密算法的每一步分别对应加密算法的逆操作,2)加解密所有操作的顺序正好是相反的。正是由于这几点(再加上加密算法与解密算法每步的操作互逆)保证了算法的正确性。加解密中每轮的密钥分别由种子密钥经过密钥扩展算法得到。算法中16字节的明文、密文和轮子密钥都以一个4x4的矩阵表示。 + +## 4 非对称加密RSA+对称加密AES +![](image/2021-06-15-22-28-00.png) +![](image/2021-06-15-22-23-53.png) + +### RSA加密算法 +* 一种公钥密码体制,公钥公开,私钥保密,它的加密解密算法是公开的。 RSA的这一对公钥、私钥都可以用来加密和解密,并且一方加密的内容可以由并且只能由对方进行解密。 +* 是公开密钥系统的代表;安全性:建立在具有大素数因子的合数,其因子分解困难这一法则之上;处理速度慢;密钥管理:加解密过程中不必网络传输保密的密钥;密钥管理优于AES算法;RSA加解密速度慢,不适合大量数据文件加密; + +### AES加密算法 + +* Rijndael算法是新一代的高级加密标准,运行时不需计算机有非常高的处理能力和大的内存;操作可以很容易的抵御时间和空间的攻击,在不同的运行环境下始终保持良好的性能; + +* AES密钥长度:最长只有256bit,可用软件和硬件实现高速处理; + +* 密钥管理:要求在通信前对密钥进行秘密分配,解密的私钥必须通过网络传送至加密数据接收方; + +* AES加密速度很快; + + + +### AES+RSA加密算法 + +* 使用AES对称密码体制对传输数据加密,同时使用RSA不对称密码体制来传送AES的密钥,就可以综合发挥AES和RSA的优点同时 + +* 避免它们缺点来实现一种新的数据加密方案 + + + +## 5 数字证书 + +### 概念 + +为了保证公钥的可信性,提供第三方的认证。保证公钥没有被篡改。相当于由第三方可信机构发起的一次摘要----签名----签名验证过程。主要确认了目标公钥的证书的可信性。 + +一个证书包含以下内容: +* 可信的证书的发布机构 +* 证书的有效期 +* 证书所有者(Subject) +* 公钥 +* 指纹和指纹算法 +* 签名算法 + +### 指纹和指纹算法 +这个是用来保证证书的完整性的,也就是说确保证书没有被修改过。 其原理就是在发布证书时,发布者根据指纹算法(一个hash算法)计算整个证书的hash值(指纹)并和证书放在一起,使用者在打开证书时,自己也根据指纹算法计算一下证书的hash值(指纹),如果和刚开始的值对得上,就说明证书没有被修改过,因为证书的内容被修改后,根据证书的内容计算的出的hash值(指纹)是会变化的。 + +### 签名算法 + +就是指的这个数字证书的数字签名所使用的加密算法,这样就可以使用证书发布机构的证书里面的公钥,根据这个算法对指纹进行解密。指纹的加密结果就是数字签名 + + + +> 指纹和指纹算法与RSA生成摘要的方法几乎一致。 +> 签名算法,即用服务器的私钥进行签名的方法。 + + +### 流程 +* 证书中心用自己的私钥,对公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。相当于服务器用自己的私钥,生成一份签名。 +* 拿到数字证书以后,就可以放心了。签名方只要在签名的同时,再附上数字证书(包含验证的公钥)就行了。 +* 接收方对证书进行确认,验证公钥的可信性。(证书没有被篡改,没有过期)。即可使用该公钥对数据进行加密传输了。 \ No newline at end of file diff --git a/加密/2 TSL加密协议.md b/加密/2 TSL加密协议.md new file mode 100644 index 00000000..76dfa1a0 --- /dev/null +++ b/加密/2 TSL加密协议.md @@ -0,0 +1,139 @@ +## 1 简介 + + +SSL/TLS是一种密码通信框架,他是世界上使用最广泛的密码通信方法。SSL/TLS综合运用了密码学中的对称密码,消息认证码,公钥密码,数字签名,伪随机数生成器等,可以说是密码学中的集大成者。 + +SSL(Secure Socket Layer)安全套接层,是1994年由Netscape公司设计的一套协议,并与1995年发布了3.0版本。 + +TLS(Transport Layer Security)传输层安全是IETF在SSL3.0基础上设计的协议,实际上相当于SSL的后续版本。 + + +## 2 应用 + +SSL/TLS是一个安全通信框架,上面可以承载HTTP协议或者SMTP/POP3协议等。下层基于TCP可靠数据连接实现。 + +![](image/2021-06-15-20-11-58.png) + + + +## 3 架构 + +![](image/2021-06-15-20-12-34.png) + +TLS主要分为两层 +* 底层的是TLS记录协议,主要负责使用对称密码对消息进行加密。 + +* 上层的是TLS握手协议,主要分为握手协议,密码规格变更协议和应用数据协议4个部分。 + +* 握手协议负责在客户端和服务器端商定密码算法和共享密钥,包括证书认证,是4个协议中最最复杂的部分。 +* 密码规格变更协议负责向通信对象传达变更密码方式的信号 +* 警告协议负责在发生错误的时候将错误传达给对方 +* 应用数据协议负责将TLS承载的应用数据传达给通信对象的协议。 + + +## 4 握手协议 +握手协议是TLS协议中非常重要的协议,通过客户端和服务器端的交互,和共享一些必要信息,从而生成共享密钥和交互证书。 +![](image/2021-06-15-23-09-52.png) +![](image/2021-06-15-20-41-00.png) + +### 1 客户端请求SSL内容 + +* client hello客户端向服务器端发送一个client hello的消息,包含下面内容: + 1. 可用版本号 + 2. 当前时间 + 3. 客户端随机数 + 4. 会话ID + 5. 可用的密码套件清单 + 6. 可用的压缩方式清单 + + +我们之前提到了TLS其实是一套加密框架,其中的有些组件其实是可以替换的,这里可用版本号,可用的密码套件清单,可用的压缩方式清单就是向服务器询问对方支持哪些服务。 + +客户端随机数是一个由客户端生成的随机数,用来生成对称密钥。 + + +### 2 服务器响应SSL内容 + +* server hello服务器端收到client hello消息后,会向客户端返回一个server hello消息,包含如下内容: + 1. 使用的版本号。使用的版本号,使用的密码套件,使用的压缩方式是对步骤1的回答。 + 2. 当前时间 + 3. 服务器随机数。服务器随机数是一个由服务器端生成的随机数,用来生成对称密钥。 + 4. 会话ID + 5. 使用的密码套件 + 6. 使用的压缩方式 + +* 可选步骤:certificate服务器端发送自己的证书清单,因为证书可能是层级结构的,所以处理服务器自己的证书之外,还需要发送为服务器签名的证书。客户端将会对服务器端的证书进行验证。如果是以匿名的方式通信则不需要证书。 +* 可选步骤:ServerKeyExchange。如果第三步的证书信息不足,则可以发送ServerKeyExchange用来构建加密通道。ServerKeyExchange的内容可能包含两种形式: + * 如果选择的是RSA协议,那么传递的就是RSA构建公钥密码的参数(E,N)。我们回想一下RSA中构建公钥的公式:密文=明文^E\ mod\ N密文=明文EmodN, 只要知道了E和N,那么就知道了RSA的公钥,这里传递的就是E,N两个数字。具体内容可以参考RSA算法详解 + * 如果选择的是Diff-Hellman密钥交换协议,那么传递的就是密钥交换的参数,具体内容可以参考更加安全的密钥生成方法Diffie-Hellman +* 可选步骤:CertificateRequest如果是在一个受限访问的环境,比如fabric中,服务器端也需要向客户端索要证书。如果并不需要客户端认证,则不需要此步骤。 +* server hello done 服务器端发送server hello done的消息告诉客户端自己的消息结束了。 + +### 3 客户端交换秘钥证书 + + +* 可选步骤:Certificate。对步骤5的回应,客户端发送客户端证书给服务器 +* ClientKeyExchange还是分两种情况: + * 如果是公钥或者RSA模式情况下,客户端将根据客户端生成的随机数和服务器端生成的随机数,生成预备主密码,通过该公钥进行加密,返送给服务器端。 + * 如果使用的是Diff-Hellman密钥交换协议,则客户端会发送自己这一方要生成Diff-Hellman密钥而需要公开的值。具体内容可以参考更加安全的密钥生成方法Diffie-Hellman,这样服务器端可以根据这个公开值计算出预备主密码。 +* 可选步骤:CertificateVerify客户端向服务器端证明自己是客户端证书的持有者。 +* ChangeCipherSpec(准备切换密码)ChangeCipherSpec是密码规格变更协议的消息,表示后面的消息将会以前面协商过的密钥进行加密。 +* finished(握手协议结束)客户端告诉服务器端握手协议结束了。 + + +### 4 服务器交换秘钥证书 +* ChangeCipherSpec(准备切换密码)服务器端告诉客户端自己要切换密码了。 +* finished(握手协议结束)服务器端告诉客户端,握手协议结束了。 +* 切换到应用数据协议。这之后服务器和客户端就是以加密的方式进行沟通了。 + + +### 主密码和预备主密码 +* 上面的步骤8生成了预备主密码,主密码是根据密码套件中定义的单向散列函数实现的伪随机数生成器+预备主密码+客户端随机数+服务器端随机数生成的。 + +* 主密码主要用来生成称密码的密钥,消息认证码的密钥和对称密码的CBC模式所使用的初始化向量。详见分组密码和模式 + + +## 5 记录协议 + +TLS记录协议主要负责消息的压缩,加密及数据的认证: + +![](image/2021-06-15-20-59-12.png) + +消息首先将会被分段,然后压缩,再计算其消息验证码,然后使用对称密码进行加密,加密使用的是CBC模式,CBC模式的初始向量是通过主密码来生成的。 + +得到密文之后会附加类型,版本和长度等其他信息,最终组成最后的报文数据。 + +## 6 加密算法 + + +### 对称密码 +### 消息认证码 +### 公钥密码 +### 数字签名 +### 伪随机数生成器 + + +## 7 协议关系 + +### 协议概念 + +* TCP + TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,是七层协议中的第四层传输层的协议之一,大名鼎鼎的三次握手就发生在这里。 + +* HTTPS + HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。 + +* SSL + SSL(Secure Sockets Layer 安全套接层)是为网络通信提供安全及数据完整性的一种安全协议。 + +* TLS + 安全传输层协议(TLS:Transport Layer Security)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake),是更新、更安全的SSL版本。 + +### 关系说明 + +* HTTPS是应用层的安全协议,TCP是传输层的协议,但是它不安全,因为它是明文传输的,所以SSL的诞生就是给TCP加了一层保险,使HTTPS和TCP之间使用加密传输。而TLS只是SSL的升级版,他们的作用是一样的。 +* SSL 凭证安装于伺服器(例如网站服务器)上,但是在浏览器上,使用者仍可看到网站是否受到SSL 的保护。首先,如果SSL 出现在网站上,使用者看到的网址会是以https:// 开头,而不是http:// (多出的一个s 代表「安全」)。按照企业所获得的验证或凭证等级,安全连接会通过挂锁图标或绿色地址栏来显示。 +* HTTPS会在网站受到SSL凭证保护时在网址中出现。该凭证的详细资料包括发行机构与网站拥有人的企业名称,可以通过按一下浏览器列上的锁定标记进行检视。 +* 应用最广泛的是TLS1.0,接下来是SSL3.0 。但主流浏览器都已经实现了TLS 1.2 的支持。TLS 1.0有时被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3。TLS和SSL协议理论上属于传输层,在应用层实现,所以我们可以在浏览器中设置是否使用此协议,使用哪一版本的协议。 + + diff --git a/加密/3 TSL协议变迁.md b/加密/3 TSL协议变迁.md new file mode 100644 index 00000000..e69de29b diff --git a/加密/4 HTTPS协议.md b/加密/4 HTTPS协议.md new file mode 100644 index 00000000..880f3cc9 --- /dev/null +++ b/加密/4 HTTPS协议.md @@ -0,0 +1,51 @@ +# HTTPS 协议 + + +## 1 HTTPS + +### 认证过程 + +HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过程中将确立双方加密传输数据的密码信息。TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法。握手过程的具体描述如下: + +![](image/2021-06-15-23-00-51.png) + + +1. 浏览器将自己支持的一套加密规则发送给网站。 +2. 网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。 +3. 浏览器获得网站证书之后浏览器要做以下工作: + 1. 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。 + 2. 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。 + 3. 使用约定好的HASH算法计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。 +4. 网站接收浏览器发来的数据之后要做以下的操作: + 1. 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。 + 2. 使用密码加密一段握手消息,发送给浏览器。 +5. 浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。 + + +### 相关加密算法 + +* 非对称加密算法:RSA,DSA/DSS +* 对称加密算法:AES,RC4,3DES +* HASH算法:MD5,SHA1,SHA256 + + +## 2 证书签发 +### SSL 证书大致分三类: + +* 认可的证书颁发机构(如: VeriSign), 或这些机构的下属机构颁发的证书. +* 没有得到认可的证书颁发机构颁发的证书. +* 自签名证书, 自己通过JDK自带工具keytool去生成一个证书,分为临时性的(在开发阶段使用)或在发布的产品中永久性使用的两种. + + +### CA机构颁发的证书有3种类型: +* 域名型SSL证书(DV SSL):信任等级普通,只需验证网站的真实性便可颁发证书保护网站; +* 企业型SSL证书(OV SSL):信任等级强,须要验证企业的身份,审核严格,安全性更高; +* 增强型SSL证书(EV SSL):信任等级最高,一般用于银行证券等金融机构,审核严格,安全性最高,同时可以激活绿色网址栏。 + + +## 3 HTTPS协议和HTTP协议的区别: +* https协议需要到ca申请证书,一般免费证书很少,需要交费。 +* http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。 +* http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。 +* http的连接很简单,是无状态的 。 +* HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议, 要比http协议安全。 diff --git a/加密/image/2021-06-15-20-11-58.png b/加密/image/2021-06-15-20-11-58.png new file mode 100644 index 00000000..555a0577 Binary files /dev/null and b/加密/image/2021-06-15-20-11-58.png differ diff --git a/加密/image/2021-06-15-20-12-34.png b/加密/image/2021-06-15-20-12-34.png new file mode 100644 index 00000000..639ccc13 Binary files /dev/null and b/加密/image/2021-06-15-20-12-34.png differ diff --git a/加密/image/2021-06-15-20-41-00.png b/加密/image/2021-06-15-20-41-00.png new file mode 100644 index 00000000..9d3856f6 Binary files /dev/null and b/加密/image/2021-06-15-20-41-00.png differ diff --git a/加密/image/2021-06-15-20-59-12.png b/加密/image/2021-06-15-20-59-12.png new file mode 100644 index 00000000..1ac9a5a5 Binary files /dev/null and b/加密/image/2021-06-15-20-59-12.png differ diff --git a/加密/image/2021-06-15-22-23-53.png b/加密/image/2021-06-15-22-23-53.png new file mode 100644 index 00000000..d69799fe Binary files /dev/null and b/加密/image/2021-06-15-22-23-53.png differ diff --git a/加密/image/2021-06-15-22-27-16.png b/加密/image/2021-06-15-22-27-16.png new file mode 100644 index 00000000..0521e078 Binary files /dev/null and b/加密/image/2021-06-15-22-27-16.png differ diff --git a/加密/image/2021-06-15-22-28-00.png b/加密/image/2021-06-15-22-28-00.png new file mode 100644 index 00000000..951d4527 Binary files /dev/null and b/加密/image/2021-06-15-22-28-00.png differ diff --git a/加密/image/2021-06-15-22-28-36.png b/加密/image/2021-06-15-22-28-36.png new file mode 100644 index 00000000..7e518a3b Binary files /dev/null and b/加密/image/2021-06-15-22-28-36.png differ diff --git a/加密/image/2021-06-15-23-00-51.png b/加密/image/2021-06-15-23-00-51.png new file mode 100644 index 00000000..a56d819c Binary files /dev/null and b/加密/image/2021-06-15-23-00-51.png differ diff --git a/加密/image/2021-06-15-23-09-52.png b/加密/image/2021-06-15-23-09-52.png new file mode 100644 index 00000000..fc285902 Binary files /dev/null and b/加密/image/2021-06-15-23-09-52.png differ diff --git a/工作日志/2020年11月2日-论文阅读工具.md b/工作日志/2020年11月2日-论文阅读工具.md index 900a69f6..7a928142 100644 --- a/工作日志/2020年11月2日-论文阅读工具.md +++ b/工作日志/2020年11月2日-论文阅读工具.md @@ -55,14 +55,13 @@ ### 三次阅读 -1. 泛读评分 +1. 泛读中文 1. 摘要、引言、结论、图表 - 2. 黄色、红色、summary、comment标注 - 3. 星级&评价。content context。读完之后给出 - 4. 删除不想相关的论文 -2. 精读3星 - 1. 精读原理 - 2. 精读实验 + 2. citavi黄色、红色、summary、comment标注 + 3. citavi星级&评价。content context。读完之后给出 +2. 精读英文 + 1. 原理、实验 + 2. citavi论文笔记 3. 引用4星 1. category(与论文关系) 2. quotation(引用方式) diff --git a/工作日志/2021年5月10日-深入研究pysyft.md b/工作日志/2021年5月10日-深入研究pysyft.md index 79792898..0cdc20c5 100644 --- a/工作日志/2021年5月10日-深入研究pysyft.md +++ b/工作日志/2021年5月10日-深入研究pysyft.md @@ -3,12 +3,6 @@ > 包括其指针、计划、加密、worker(仿真与实现)。我发现这些代码的设计都非常优秀。日后方便自己完成整个系统。 -- [ ] 指针模块 -- [ ] 计划模块 -- [ ] 加密模块 -- [ ] 训练模块(util.fed_avg) -- [ ] worker通信模块(仿真与通信的实现封装) - diff --git a/工作日志/2021年6月12日-今日计划.md b/工作日志/2021年6月12日-今日计划.md new file mode 100644 index 00000000..16231742 --- /dev/null +++ b/工作日志/2021年6月12日-今日计划.md @@ -0,0 +1,37 @@ +## 任务 + + +- [x] 1. Personalized Cross-Silo Federated Learning on Non-IID Data +- [ ] 2. 之前在群里讨论的非独立同分布问题的文章。 + + + + + + +- [ ] A generic framework for privacy preserving deep learning +- [ ] FEDFMC: SEQUENTIAL EFFICIENT FEDERATED LEARNING ON NON-IID DATA + +## 收获 + + + +* 论文阅读的五个方面 + * 管理组织 + * keywords + * categories + * groups + * 信息数据 + * title/authro/year + * priodical/conference + * 阅读笔记 + * quotations + * comments + * 归纳总结 + * 方法 + * 模型 + * 结论 + * 问题 + * 相关这了 + * local file + * internet address \ No newline at end of file diff --git a/工作日志/2021年6月15日-恶意流量.md b/工作日志/2021年6月15日-恶意流量.md new file mode 100644 index 00000000..70062376 --- /dev/null +++ b/工作日志/2021年6月15日-恶意流量.md @@ -0,0 +1,56 @@ +## 会议内容 + +### 相关加密协议 +https:// +http:// +SSL:// + +### 目标 + +* 加密/解密 恶意流量 +* 分析恶意流量 + +### 相关资料 +有一篇综述 + +流量加密类型 +* 应用层加密 +* 网络层加密 + +动态流量识别 + +* 可以用来借鉴恶意软件的恶意流量识别。 + + + +### 研究内容 + +1. 恶意软件的表征。 +2. 恶意流量的表征。 + +DPI表征。 + +机器学习表征。 + +xgb + + +### 恶意软件分类的事情: + +* 行为类型。实现针对系统的破坏和入侵行为。构成恶意软家族,利用相同的漏洞或者操作模式,对系统进行入侵和破坏。 +* 恶意目标。实现针对使用者的侵害和损伤行为。一般是在系统破坏和入侵以后,针对系统使用者试行的行为的内容。包括勒索行为、恶意广告、正常使用阻碍、数据隐私窃取等等。 + + +### 关联方法 + +* 公害行为之间的关联。上下游,提供 +* 行为主体的关联。 +* 行为内容的关联。生成知识主体。建立关联。七国峰会----九个领导人的照片。 + +## 个人任务 + +### TLS + +* 搞明白SSL和TLS。这些协议是怎么运行的。做一些调研。 +* 易俊凯。TLS1.3和1.2的区别 +* Http、https协议怎么加密。 \ No newline at end of file diff --git a/工作日志/2021年6月1日-六月份计划.md b/工作日志/2021年6月1日-六月份计划.md new file mode 100644 index 00000000..139597f9 --- /dev/null +++ b/工作日志/2021年6月1日-六月份计划.md @@ -0,0 +1,2 @@ + + diff --git a/工作日志/2021年5月8日-今日计划.md b/工作日志/2021年6月2日-今日计划.md similarity index 100% rename from 工作日志/2021年5月8日-今日计划.md rename to 工作日志/2021年6月2日-今日计划.md diff --git a/工作日志/2021年5月31日-今日计划.md b/工作日志/2021年6月3日-今日计划.md similarity index 87% rename from 工作日志/2021年5月31日-今日计划.md rename to 工作日志/2021年6月3日-今日计划.md index 63ebe438..eee53c23 100644 --- a/工作日志/2021年5月31日-今日计划.md +++ b/工作日志/2021年6月3日-今日计划.md @@ -13,11 +13,8 @@ - [ ] 完成数据预处理工作,和对恶意软件的分析工作!!!(已经拖了两个月了) ## 计划 - - [ ] 阅读九月份以来的工作,完成毕业论文的框架。 -- [ ] A generic framework for privacy preserving deep learning -- [ ] Personalized Cross-Silo Federated Learning on Non-IID Data -- [ ] FEDFMC: SEQUENTIAL EFFICIENT FEDERATED LEARNING ON NON-IID DATA + ## 收获