区块链兄弟社区, 区块链技术专业问答先行者, 中国区块链技术爱好者聚集地
1. 发送者和接收者
发送者 (sender) 即是发送信息消息的人, 其想发送消息给接收者 (receiver), 接收者即是接收信息消息的人. 在发送过程中, 发送者和合法接收者都希望安全的发送及接收信息消息, 并且需要确信第三方(窃听者) 不能截取或阅读发送的信息消息.
2. 消息和加密
消息 (message) 即为明文(plaintext). 用某种特定的方式方法对其进行 "伪装" 处理, 以隐藏其的内容的过程, 我们称之为加密(encryption). 而被加密之后的消息, 我们称之为密文(ciphertext). 当我们将密文转变为明文, 这一过程我们称之为解密(decryption).
这一过程简单来说就是:"明文">>(加密)>>"密文">>(解密)>>"原始明文".
在这一过程当中, 使消息保密的技术被称为密码编码学(cryptography), 从事这一工作的人, 我们称之为密码编码者(cryptographer). 与此对立相反的就是破译密文的技术, 我们称之为密码分析学(cryptanalysis), 从事这一工作的人即对密码进行分析处理的专业人员, 我们称之为密码分析者(cryptanalyst).
而密码学 (cryptology) 包括了密码编码学和密码分析学两个部分, 所以同时精于此二者的人, 我们称之为密码学家(cryptologist). 由于密码学是作为数学的一个分支, 现代的密码学家通常也是理论数学家.
注: 密码学和数学有着千丝万缕的联系, 学习密码学的同时也需要学习数学知识.
明文我们一般用 M 或 P 表示, 明文可以是位序列, 位图, 文本文件, 数字化的语音序列或数字化的视频图像等等. 对于计算机而言, M 一般仅简单指二进制数据. 明文可以被传送或存储, 无论哪种情况, M 指待加密的信息消息.
密文我们用 C 表示, 其也是二进制数据, 有时和 M 一样大, 有时比 M 大, 但通过压缩和加密的结合, C 同样有可能比 M 小. 现我假定加密函数为 E, 那么 E 作用于 M 得到 C 的过程, 可以用数学公式表示:
E(M)=C
相反的, 若假定解密函数为 D, 解密函数 D 作用于 C 产生 M 的过程可以表示为:
D(C)=M
先进行加密操作, 后进行解密操作, 原始的明文将得以恢复, 故有以下等式成立:
D( E(M) )=M
3. 密码学的作用
密码学通常的作用是提供机密性, 但除此之外, 密码学还有以下作用.
鉴别 (authentication) 消息的接收者应该能够确认消息的来源, 第三方入侵者不可能伪装成合法的发送者和接收者.
完整性 (integrity) 信息消息的接收者应该能够验证信息消息在传送过程中没有被篡改, 第三方入侵者不可能用虚假的信息消息代替合法的信息消息.
抗抵赖 (nonrepudiation) 信息消息的发送者事后不可能单方面虚假的否认是其发送了信息消息.
这些基本的功能都是通过计算机进行社会交流与协作至关重要的需求. 现代社会已经变得离不开计算机, 计算机也在人类社会的生产建设以及信息交互中扮演了极其重要的角色, 以上密码学的基本作用保证了合法用户 ××× 明, 信息消息真实性等, 就像面对面的信息验证一样.
文章发布只为分享区块链技术内容, 版权归原作者所有, 观点仅代表作者本人, 绝不代表区块链兄弟赞同其观点或证实其描述
密码学基本概念(一)
来源: http://www.bubuko.com/infodetail-2585509.html