<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel rdf:about="http://blog.anlucky.cn/index.php/feed/rss/network">
<title>LuckyDu - 计算机网络</title>
<link>http://blog.anlucky.cn/index.php/network</link>
<description>计算机网络，计算机网络技术，网络安全</description>
<items>
<rdf:Seq>
<rdf:li resource="http://blog.anlucky.cn/index.php/network/9"/>
</rdf:Seq>
</items>
</channel>
<item rdf:about="http://blog.anlucky.cn/index.php/network/9">
<title>网络安全</title>
<link>http://blog.anlucky.cn/index.php/network/9</link>
<dc:date>2023-04-14T10:44:00+08:00</dc:date>
<description>1. 网络安全的三要素机密性：攻击者无法获知通信内容个人理解：网络中传送的明文信息如果攻击方可以直接看出信息中的含义，或者经过计算可以看出信息中的含义，那么此条信息就不是机密性的传送，不符合网络安全# 如何实现机密性？
已知：网络是明文的
1、如果双方可以通过明文通信商量出秘密信息，那么攻击者也可以
2、想要通过明文通信交换秘密信息，通信双方需要先有秘密信息完整性：攻击者对内容进行篡改时能被发现个人理解：网络中的信息在传输过程中，如果被攻击方篡改之后可以被发现，以至于可以对其进行拦截，如银行银行转账，若要给对方转账100但在信息传输过程中被攻击者进行篡改，那么此条信息就不是完整的，如果可以发现就可以对其进行拦截# 如何实现完整性?
密码散列函数的性质是经过计算后会有相同的哈希，那么就可以举例子如下：
有明文 m 他的散列函数 H
使用这个函数计算 H(m) 获得哈希值：h
将 m 和 h 组合起来，变成新的消息 m + h 发送出去
接受到 m + h 消息的一方将他们拆分，使用散列函数 H 重新计算H(m) 获得 h1 拿 h1 和 接收到的h进行比较，比较的相同那么这个消息是没有被篡改的 

如上方法也不能完全保证消息无法被篡改，若攻击方可以知道散列函数计算方式，那么攻击方可以通过将消息篡改之后重新计算哈希值，那么接收方也会发现不了消息是否被篡改

故得到第二种方式
双方可以约定私密信息 s 将明文 m 和 s 拼接计算哈希为h 
并将 h 和 m 组合拼接发送给另一方
在接收方可以使用 m + s 计算哈希查看是否与发送消息一方的h 是否一致所以，要想实现完整性不被篡改，通信双方需要先有一个机密信息，要符合机密性才可以实现完整性身份验证：攻击者无法伪装成通信双方的任意一方与另一方通信2. 对称加密和非对称加密对称加密：加密和解密使用的是同样的密钥非对称加密：加密解密使用不同的密钥（公钥和私钥），而且公钥加密只能使用私钥解密、私钥加密只能用公钥解密3. 密码散列函数（哈希函数）输入：任意长度的内容输出：固定长度的哈希值性质：找到两个不同的输入使之经过密码散列函数后有相同的哈希值</description>
</item>
</rdf:RDF>