标签:公钥 加密 概念 密钥 key 密文 密码学 加密算法
密码学是数学的分支。密码学应保证破解数据无论空间还是时间上都不可行;密码学诞生于4000年前。古典密码被称为艺术;密码学起源于军事和政治应用
现代密码学依赖计算机科学。
1. 密码学 1. 用途:加密存储,加密传输(https),身份验证(非对称加密, 公钥加密+hash),数字签名,防篡改(hash)等 2. 对称加解密的时候,我们会使用异或。 1. 计算机里只有0,1。相同值 返回0, 不同值返回1. 1. 0101, 1010, 1111 3. 加密算法 1. 对称加密算法 - 发送者(加密)和接收者(解密)需要有相同的密钥。 1. 对称加密算法特点: 1. 发送者和接收者使用同一个密钥,此密钥不能被第三个人获得 2. 密钥管理难,分发困难: 1. 我跟N个人通讯,需要N个不同的密钥。 2. N个人之间相互都需要通讯,需要管理N*(N-1)/2个密钥 3. 密钥数随着人数的增加呈指数级增长 3. 如何生成真随机密钥 4. 如何安全的,发送密钥到对方 1. 密钥的安全分发很困难 5. 使用替换和置换。 -> 抵御频率分析。 1. 置换: abcde -> 21534 -> baecd 2. 替换: abcde -> a -> c, b -> e, c -> f, d -> g, e -> h ->cefgh 6. 有可能使用主密钥-子密钥方式进行长期使用主密钥 - 密钥导出函数 1. 主密钥需要保密 2. 生成函数越强、其它密钥材料越随机,子密钥越好 3. 避免长期使用一个主密钥带来的安全风险 7. 不能提供真实性和不可否认性 8. 运算速度快 - 与非对称算法相比 9. 强度高,使用大密钥空间不易被破解 2. 对称加密算法类型: 1. 一次性密码本 -> 本身就是密钥 1. 只是用一次。 2. 密码本与明文消息长度一样。 2. 运动密钥密码 1. 密文例子:14916C7. 299L3C7 . 911L5C8 表示: 第一个字符是第1本书、第49页、第16行、第7列; 第二个字符是第2本书、第99页、第3行、第7列; 第三个字符是第9本书、第11页、第5行、第8列; 2. 密钥:双方共同拥有的书 1. 需要提前协商好使用什么书。 3. 隐藏密码 1. 密钥相当于:双方约定取消息中每第3个单词作为秘密消息 ; 2. 密文: The time is right’ is not cow language, so is now a dead subject 3. 铭文: The right cow is dead 4. 隐写术 1. 密钥: 隐藏方法 -> 每个字RGB颜色的最后一位 2. 密文: 颜色有微弱不同的字 5. DES 1. 旧的DES 1. 来自IBM的Lucifer算法,Lucifer算法本身是128位密钥+128位分组。 2. DES,变成56位密钥 + 64位分组。 3. 相对来说容易被破解。 4. 不安全的算法。不提倡/不建议使用。 2. 3DES 1. 3个DES串联使用,总共48轮运算,具有很高的抗差分攻击 2. 3DES模式: DES-EEE3:使用3个不同的密钥,串联使用3次加密,总密钥空间168位, 解密方式: DES-DDD3 DES-EDE3:使用3个不同的密钥,串联使用加密、解密和加密,总密钥空间168位, 解密方式: DES-DED3 DES-EEE2:使用2个不同的密钥,串联使用3次加密,第一次、第三次加密使用同一个密钥,总密钥空间112位, 解密方式: DES-DDD2 DES-EDE2:使用2个不同的密钥,串联使用加密、解密和加密,但第一次、第三次加密使用同一个密钥,总密钥空间112位, 解密方式: DES-DED3 6. AES 1. 定义: 1. 它支持128、192、256位密钥长度 2. 分组: 128位 3. 抵抗所有已知的攻击。 4. 在多个平台上速度快,编码紧凑。 5. 设计简单。 2. 候选: MARS:IBM设计 RC6:RSA设计 Serpent:Ross Anderson等设计 Twofish: Bruce Schneier 灯设计 Rijindael:Joan Daemen和Vincent Rijmen设计 - 当选 3. 加密方式: 128位密钥长度,10轮运算 192位密钥长度,12轮运算 256位密钥长度,14轮运算 7. IDEA 64位分组算法, 128位密钥, 64位分组分为16个小块,每小块进行8轮运算,比DES快且安全 8. 其他 1. Blowfish 64位分组算法,密钥可选32-448位内的任意长度,16轮运算 2. Twofish 3. RC4, RC5, RC6 RC4:流密码,密钥长度可变,应用SSL和802.11 WEP协议 RC5:32、64、或128位分组算法,密钥长度最高2048位,最大加密轮数255 算法表示为rc5-w/r/b,其中 w:字长度,16、32、或64位 r:轮数,0~255 b:密钥字节数 rc5-32/12/16表示 64位分组、12轮运算、128位密钥 RC6:专门在RC5基础上修改后竞标AES 4. SAFER(secure and fast encryption routine) 3. 对称加密算法分类: 1. 分组密码 1. 特点 1. 分组密码使用混淆(confusion)和扩散(diffusion)技术 2. 替换达到混淆:明文和密钥充分混合,使得密文极度随机 3. 置换达到扩散:明文的一位变化导致密文每位产生变化的概率是50% 2. 分组方式: 1. 使用固定大小, 32位,64位,128位 2. 每次对每个分组块进行加解密。 3. 初始化向量 1. IV是随机值 2. IV与分组长度一致 3. IV保证同样的明文和密钥被加密成不同的密文 4. IV隐藏了明文的模式 2. 流密码 1. 特点 1. 需要一个密钥流生成器,产生随机密钥位与明文进行异或 2. 发送者和接收者必须有相同的密钥流生成器 2. 非对称加密算法(公钥加密算法) 1. 非对称加密算法特点: 1. 每个实体有两个不同的密钥:公钥和私钥 1. 我只需要管理好我的公钥跟私钥就可以。 2. 我需要获取其他人公钥,直接去获取就可以。 3. 我只需要保证我的私钥不被泄露就可以了。 4. N个人相互通讯,只需要2N个密钥(其中只有N个私钥,需要保护) 5. 公钥(public key)是公开的,为其他实体所知 6. 私钥(private key)是保密的,只有所属实体自己知道 7. 密钥分发更容易 2. 公钥/私钥关系 1. 数学上两者紧密关联,互相唯一确定 2. 知道公钥不能推导出私钥 3. 知道公钥和密文不能推导出私钥 4. 使用公钥加密的信息,只能使用私钥进行解密。 5. 使用私钥进行加密的信息,只能使用公钥进行解密。 6. 加解密时: 使用接收者的公钥进行加密,接收者使用自己的私钥进行解密。 1. Alice 发送信息给Bob: 1. Alice和其他所有人能够简单获取到Bob的公钥 2. 除了Bob以外,所有其他人没有Bob的私钥。 3. Alice使用Bob的公钥对明文进行加密。 2. Bob对信息进行解密 1. Bob获取使用自己的公钥进行加密的信息后,可以使用自己的私钥进行解密。 3. Bob对所有人发布信息。 1. Bob使用自身的私钥对信息进行加密(签名) 4. 所有人使用Bob的公钥对信息进行解密(签名验证) 结论:能提供认证和不可否认性 3. 运算速度慢 - 大量复杂的数学函数 2. 非对称加密算法: 1. RSA 2. ECC 3. DH(Diffie-Hellman) 第一个非对称密钥协商算法,重点解决密钥分发问题 基于“有限域上的离散对数计算困难”的难题 Alice和Bob可以各自选择一个私有随机数,以离散指数的形式发给对方,然后双方能运算出一个相同的对称密钥 原始Diffie-Hellman算法存在中间人攻击 4. EL Gamal 5. DSA(digital signature algorithm) 4. 加密算法应用 1. 混合使用对称加密算法与非对称加密算法。 1. 对称加密算法速度快,保密性好。 2. 非对称加密算法,密钥管理相对简单。 3. 混合方式(数字信封): 1. 对称加密算法,很难安全的把密钥发送给对方。 2. 非对称加密算法发送对称加密算法的密钥给对方。 例子:Alice要发送大量的信息给Bob 1. Alice使用key(1) + 对称加密算法,对真正的铭文(P)进行加密,获得了密文(C) 2. Alice发送密文(C)给Bob。 3. Alice如何安全的发送key(1)给Bob? -> Alice使用Bob的公钥对key(1)进行加密 -> key(c(1)), 发送给Bob。 4. Bob使用自己的私钥,对key(c(1))进行解密,获取key(1). 5. Bob使用key(1)对密文(C)进行解密,获取内容。 4. 使用对称加密算法的时候,很多时候会使用回话密钥 1. 会话密钥是对称加密算法所使用的密钥。 2. 单次会话使用后会废弃。 -> 增强了安全性。 2. 对称加密模式: 1. Electronic Code Book (ECB),电子密码本 原始明文被分割成数据块(分组),使用同一个密钥加密 -> 简单易行 攻击者可以通过收集明文、密文对构造部分ECB 不能掩盖固定的文本模式(同样的明文总是加密成同样的密文),抗攻击弱 适合于加密小文本,例如PIN,挑战响应值 不会使用初始化向量(IV) 2. Cipher Block Chaining (CBC),密文分组链接 1. 第一个分组块: 明文 异或 IV -> 获取异或值 -> 加密算法(加上key) -> 密文。 2. 第二个分组块开始: 明文 异或 上一个明文的加密值(密文) -> 获取异或值 -> 加密算法(加上key) -> 密文。 3. 隐藏了每个数据块独立加密可能暴露的模式; 3. Cipher Feedback (CFB),密文反馈 1. 第一个分组块: IV -> 加密算法(加上key) -> IV的密文 异或 明文 -> 密文 2. 第二个分组块开始:上一个明文的加密值(密文) -> 加密算法(加上key) -> 上一个明文的加密值(密文)的密文 异或 明文 -> 密文 4. Output Feedback (OFB),输出反馈 5. Counter Mode (CTR),计数模式 1. 有Counter(相当于IV) 2. 每个IV有顺序变化。(IV-1, IV-2, ... IV-n) 3. 第N个分组快: IV-n 加密算法(加上key) -> IV-n的密文 异或 明文 -> 密文密码学他人笔记
密码学历史
首先是对称加密算法:
Hebrew人使用密码术把原始字母转化为另一个字母,这是典型的“替代密码”(substitution cipher)
单字母替代 ABCDEFGHIJKLMNOPQRSTUVWXYZ
ZYXWVUTSRQPONMLKJIHGFEDCBA
例如:明文securit密文 hvxfirgb
公元前400年, Spartans人使用“轴棒密码”( scytale cipher)
在古罗马凯撒密码, Caesar使用将字母往后移3位来加密
Standard Alphabet
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Cryptographic Alphabet
DEFGHIKLMNOPQRSTUVWXYZABC
加密示例:
Plaintext.-->Ciphertext
LOGICAL SECuRr
ORJLFDO VHEXULWB
-16世纪,法国人 Vigenere为亨利三世发明了多字母替代密码
纯手工的时代过去进入机械的密码
第二次世界大战期间,由于电子和无线通信的发展,古典密码学发展到了巅峰。“轮密码”( rotor cipher,仍然是替代密码,但使用了复杂的转轮)出现了有名的 Enigma:它包含多个独立转轮、一个附加版、一个反射轮。其密钥就是转轮的初始设置和转轮的前进档位波兰的破译小组(雷耶夫斯基等人)在德国进攻波兰之前曾破译了 Enigma,破译技术对日后图灵的工作提供了帮助。
密码学定义和概念
- 加密是将可读的明文( plaintext)转化为随机的、不可读的密文( ciphertext)
- 可读意味着人或计算机能理解,一旦转化为密文,计算机不可处理,因此,密文可以在公开信道上传输
- 一般来说,静态的数据可以通过物理或逻辑访问控制保护,传输的数据更需要密码学保护
提供加解密的对象称为密码系统( cryptosystem),是一套软件或硬件
- 密钥〔key):由一串随机2进制位组成
- 密钥空间( key space):由密钥的长盒决定,例如64位长密钥,空间是264
- 弱密码(weak key):在密密钥空间里不适合作密钥的位串,倒,00..00.11.11等
- 密钥生成( key generation):密钥由伪髓机或真随机系统生成,密钥越随机越好
- 算法〔 algorithm):控制密码系统运算的一组逻辑规则
- 现代密码学的算法理论基础:概率论、数论、代数学、信息论
1883年, Auguste Kerckhoff发表论文认为“密码系统中唯一需要保密的是密钥”,“算法应该公开
“太多的秘密成分会引入更多的弱点”
密码系统组成:软件、协议、算法、密钥
密码系统强度取决于:算法、密钥的长度、密钥的保密、初始化向量、和它们协同运算的机制
破坏密码系统的终极目标是:获得密钥
密码系统强度=破解密码需要的计算能力、资源、和需要时间
理论上,任何密码系统可以通过蛮力( brute force)攻击破解:试探每一个密钥
密码系统设计要保证蛮力攻击不可行,即使的攻击者的工作因子( work factor)足够大密码系统的安全:健全(没有漏洞)的算法、大的密钥空间、密钥的保密。
对称加解密的时候,我们会使用异或。
1. 计算机里只有0,1。相同值 返回0, 不同值返回1.
0101, 1010, 1111
隐藏术:
在其它媒体中隐藏数据,只有发送者和接收着能获得此数据,因为其被秘密嵌入在波形、视频、音频、图像等文件中;其特点是不引起注意
隐藏密码、隐写墨水、
隐藏术的要素:
- 载体( carrier):承载秘密信息的文件
- 伪装媒介( stego- medium):载体的表现形式
- 载荷( payload):传递的秘密信息
对称加密算法分为替换和置换;替换--使用新字符替代原来字符;置换--对原来字符进行排列。混合使用两者是抵御频率分析。
DES
- 旧的DES
- 128位密钥分组
- DES 变成56位
- 3DES
AES
IDEA
RC4\RC5\RC6
Blowfish
Twofish
SAFER
非对称加密算法特点:
RSA
ECC
DH(Diffie-Hellman)
每个实体有两个不同的密钥:公钥和私钥
公钥( public key)是公开的,为其他实体所知私钥( private key)是保密的,只有所属实体自己知道公钥一般通过公开目录下载或电子部件地址被使用
单项函数
散列函数
数字签名
CA 是可信的发布并维护数字证书的组织,CA保证证书的合法性。CA由可信的社会职能部门大的通讯商设立。
通信加密的安全需求:
保护数据从一个位置传送到另外一个位置的安全考虑下述几点:
- 机密性:第三者无法通过信道窃听得到明文信息
- 完整性:数据传递过程中,第三者无法通过信道主动攻击进行插入、删除、修改等
- 原发方鉴别:对数据的原发方有可靠的鉴别手段
- 不可抵赖:原发方和接收方对所传数据有不可抵赖的属性
这些安全服务,并非是密码技术提供的全部服务。与原发方鉴别相对的匿名性、与不可抵赖性相对的不可追踪性等有时会成为密码技术的目标。
传统密码技术可以提供机密性、完整性、原发方鉴别服务;不可抵赖性则还需要借助公钥密码技术实现。
ethtool
标签:公钥,加密,概念,密钥,key,密文,密码学,加密算法 来源: https://www.cnblogs.com/ethtool/p/12271616.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。