密码学提供以下服务:git
加密 Encryption算法
哈希 Hash functionside
讯息鉴别码 Message Authentication codes (MAC)ui
数字签名 Digital Signatures加密
密码学要达成的目标是:spa
机密性 Confidentialitycode
数据完整性 Data Integrityorm
认证 Authenticationhtm
不能否认性 Non-repudiationblog
下表说明了各类服务能达成什么样的目标
加密 | 哈希 | 讯息鉴别码 | 数字签名 | |
机密性 | √ | |||
数据完整性 | 某些时候 | √ | √ | |
认证 | √ | √ | ||
不能否认性 | 某些时候 | √ |
机密性讨论
咱们在构建密码系统的时候,须要考虑可能受到的***。
从不一样的角度又不一样的***分类方法。
根据***者的行动(action)咱们把***分红被动式***(passive)跟主动式***(active)
被动式***
在没有受权的状况下访问信息(注意区分主动式,注意访问,不是改变)。例如截击跟偷听就是被动式的***。被动式***不会影响原有的信息,也不会打扰原有的链接。
主动式***
这种***不一样于被动式,它会以某种形式改变原有的信息
根据***的方法学(Methodolgy)咱们有能够把***分为以下的类别:
纯秘文*** (Cipertext-only Attack - COA)
***者仅经过访问秘文集就能够获得相应的明文。偶尔***者还能得到密钥。
已知明文*** (Known Plaintext Attack - KPA)
***者知道一部分秘文的明文,根据这个***者破解其余秘文。
选择明文*** (Chosen Plaintext Attack - CPA)
***者掌握他选择的明文/密文对,分析出密钥。RSA就易于找到此***。
字典*** (Dictionary Attack)
***者创建明文与相应密文的字典,遇到密文就在字典中查询。这类***有不少变种。
暴力*** (Brute Force Attack - BFA)
***者在知道算法和密文的后,尝试各类密钥的可能性,直至破解。
生日*** (Birthday Attack)
用于hash破解,是暴力破解的变种。
中间人*** (Man in Middle Attack -MIM)
可用于公钥的***。A与B通讯,A向B请求公钥,***者居中把本身的公钥发给A再得到B的公钥。而后居中维持通讯获取信息。
旁路*** (Side Channel Attack - SCA)
用于获取密钥系统物理实现弱点,来进行***。
时序*** (Timing Attack)
旁路***的一种。试图经过分析算法的执行时间来破解算法。
功耗分析*** (Power Analysis Attack)
经过获取功耗数据来进行***。
故障分析*** (Fault analysis Attack)
经过分析故障进行***
现代加密技术
对称加密技术可分为块加密跟流加密。
块加密(Block Ciper)。每次对固定块数据进行加密。不足的要进行填充(Padding)。
这些技术有:DES (Digital Encryption Standard), Triple DES, AES (Advanced Encryption Standard), IDEA, Twofish, Serpent等。
其中DES是基于Feistel Block Ciper 模型开发的。
其余模型还有 Electronic Block Ciper Mode, Ciper Block Chaining Mode, Ciper Feedback Mode, Output Feedback Mode, Counter Mode。
非对称加密技术有三种方案:
RSA (三做者首字母)
ElGamal
Elliptic Curve Cryptography (ECC)
数据完整性讨论
一样也面对着被动跟主动两种***。
解决技术有 哈希功能应用。
哈希技术有: MD(Message Digest), SHA, RIPEMD, Whirlpool.
信息认证讨论
信息认证使用户能够肯定信息的发起者。
信息鉴别码 (Message Authenticaton Code - MAC)
MAC算法是使用对称加密方式实现
https://www.tutorialspoint.com/cryptography/cryptography_quick_guide.htm