一、密码学

1、密码信息安全常识与威胁

  • 不要使用保密的密码算法
  • 使用低强度的密码比不进行任何加密更危险
  • 任何密码总有一天都会被破解
  • 密码只是信息安全的一部分

不要使用保密的密码算法

很多企业都有下面这样的想法:

“由公司自己开发一种密码算法,并将这种算法保密,这样就能保证安全。然而,这样的想法却是大错特错,使用保密的密码算法是无法获得高安全性的。我们不应该制作或使用任何保密的密码算法,而是应该使用那些已经公开的、被公认为强度较高的密码算法。

这样做的原因主要有以下两点:

  • 密码算法的秘密早晚会公诸于世

    从历史上看,密码算法的秘密最终无一例外地都会被暴露出来。例如: RSA公司开发的RC4密码算法曾经也是保密的,但最终还是有一位匿名人士开发并公开了与其等效的程序。

    一旦密码算法的详细信息被暴露,依靠对密码算法本身进行保密来确保机密性的密码系统也就土崩瓦解了。反之,那些公开的算法从一开始就没有设想过要保密,因此算法的暴露丝毫不会削弱它们的强度。

  • 开发高强度的密码算法是非常困难的

    • 要比较密码算法的强弱是极其困难的,因为密码算法的强度并不像数学那样可以进行严密的证明。密码算法的强度只能通过事实来证明,如果专业密码破译者经过数年的尝试仍然没有破解某个密码算法,则说明这种算法的强度较高。
    • 稍微聪明一点的程序员很容易就能够编写出“自己的密码系统"。这样的密码在外行看来貌似牢不可破,但在专业密码破译者的眼里,要破解这样的密码几乎是手到擒来。
    • 现在世界上公开的被认为强度较高的密码算法,几乎都是经过密码破译者长期尝试破解未果而存活下来的。因此,如果认为“公司自己开发的密码系统比那些公开的密码系统更强”,那只能说是过于高估自己公司的能力了。
    • 试图通过对密码算法本身进行保密来确保安全性的行为,一般称为隐蔽式安全性(securitybyobscurity),这种行为是危险且不聪明的。
    • 反过来说,将密码算法的详细信息以及程序源代码全部交给专业密码破译者,并且为其提供大量的明文和密文样本,如果在这样的情况下破译一段新的密文依然需要花上相当长的时间,就说明这是高强度的密码。

使用低强度的密码比不进行任何加密更危险

一般人们会认为.就算密码的强度再低,也比完全不加密要强吧?其实这样的想法是非常危险的。

**正确的想法应该是:**与其使用低强度的密码,还不如从一开始就不使用任何密码这主要是由于用户容易通过“密码”这个词获得一种“错误的安全感”。对于用户来说,安全感与密码的强度无关,而只是由“信息已经被加密了”这一事实产生的,而这通常会导致用户在处理一些机密信息的时候麻痹大意。

任何密码总有一天会被破译

如果某种密码产品宣称“本产品使用了绝对不会被破解的密码算法”,那么你就要对这个产品的安全性打个问号了,这是因为绝对不会被破解的密码是不存在的。

无论使用任何密码算法所生成的密文,只要将所有可能的密钥全部尝试一遍,就总有一天可以破译出来。因此,破译密文所需要花费的时间,与要保密的明文的价值之间的权衡就显得非常重要。

密码只是信息安全的一部分

即便不去破解密码算法,也依然有很多方法能够知道发送的邮件内容, 例如:

攻击者可以不去试图破译经过加密的邮件,而是转而攻击发送者的电脑以获取加密之前的邮件明文。

上面提到的攻击手段,都与密码的强度毫无关系。要保证良好的安全性,就需要理解“系统”这一概念本身的性质复杂的系统就像一根由无数个环节相连组成的链条,如果用力拉,链条就会从其中最脆弱的环节处断开。因此,系统的强度取决于其中最脆弱的环节的强度。

最脆弱的环节并不是密码,而是人类自己。

2、密码信息威胁

我们将信息安全所面临的威胁与用来应对这些威胁的密码技术直接的关系用一张图表来表示出来。

【密码学一】密码学概念、密码学初体验相关推荐

  1. 计算机科学与技术密码学是啥意思,密码学是什么意思

    1. 本文综述了计算机密码学在分组密码,序列密码,公钥密码,混沌密码等方面研究的新进 In this paper we survey the new advances in the research ...

  2. 密码学系列之一:密码学的前世今生

    密码学的前世今生 1.传统密码 1.1 古典密码 1.2 近代密码 2.现代密码 密码学(cryptography),源于希腊语kryptós"隐藏的",和gráphein&quo ...

  3. 深度探索Hyperledger技术与应用之超级账本初体验(附部署代码)

    2019独角兽企业重金招聘Python工程师标准>>> 本章零基础地介绍了如何快速体验超级账本搭建的区块链网络,我们先绕过了比较复杂的初始化配置,用官方提供的fabric-sampl ...

  4. 聚合类新闻client初体验

    初体验的产品:今日头条(ios3.6).百度新闻(ios4.4.0).ZAKER(ios4.4.5).鲜果(ios3.8.7).中搜搜悦(ios4.0.1).Flipboard(ios2.3.9) 1 ...

  5. webpack从入门到精通(一)初体验

    1. webpack简介 1.1 webpack是什么 webpack 是一种前端资源构建工具,一个静态模块打包器(module bundler). 在 webpack 看来, 前端的所有资源文件(j ...

  6. Spark系列-初体验(数据准备篇)

    Spark系列-初体验(数据准备篇) Spark系列-核心概念 在Spark体验开始前需要准备环境和数据,环境的准备可以自己按照Spark官方文档安装.笔者选择使用CDH集群安装,可以参考笔者之前的文 ...

  7. java7 AIO初体验

    关于AIO的概念理解  关于AIO的概念,仅谈谈个人的一点理解.可能不到位,请大家指出. Io的两个重要步骤:发起IO请求,和实际的IO操作.在unix网络编程的定义里异步和非异步概念的区别就是实际的 ...

  8. Mysql数据库(一)——mysql数据库初体验

    Mysql数据库(一)--mysql数据库初体验 一.数据库的概念 1.数据库的组成 ①.表 ②.数据库 2.数据库类型 ①.关系型数据库 ②.非关系型数据库(NoSQL (Not Only SQL) ...

  9. java 11_JAVA 11初体验

    JAVA 11初体验 随着JAVA没半年发布一次新版本,前几天JAVA 11隆重登场.在JAVA 11中,增加了一些新的特性和api, 同时也删除了一些特性和api,还有一些性能和垃圾回收的改进. 作 ...

  10. .NET WebSocket 核心原理初体验

    上个月我写了<.NET gRPC核心功能初体验>, 里面使用gRPC双向流做了一个打乒乓球的Demo, [实时][双向]这两个标签是不是很熟悉,对, WebSockets也可以做实时双向通 ...

最新文章

  1. IDC评述网:7月上旬国内域名解析服务商Top10
  2. python3高级语法:__slots__属性、property装饰器、上下文管理协议、__new__方法
  3. CVPR 2022|重新思考对齐Prototype的域自适应:基于Graph Matching的新范式
  4. redis 中一个字段 修改map_Redis bitmap 位图 从入门到精通 基础 实战 妙用
  5. [转].net仿传奇机器人配置文件
  6. 网络工程师成长日记382-西部数据Juniper网络设备调试
  7. 为什么DNN的SectionHead Control图片无法显示,也无法折叠
  8. 淘宝主营类目占比对店铺有哪些影响
  9. 查看DLL中导出的函数及参数
  10. Cadence SPB安装及重装
  11. layui框架静态表格怎么写
  12. windows无法访问指定计算机,windows无法访问指定设备路径或文件的解决方法
  13. 工控变成用c语言还是plc,浅析工控机与PLC的区别
  14. spring boot火车票预订系统毕业设计-附源码091029
  15. Clojure极简教程
  16. 操作系统单内核和微内核的区别
  17. 正版服务器,MC原版服务器搭建教程
  18. 迷途中的融担:在下沉与专注中寻找未来
  19. 【学习笔记】C语言程序设计入门(一)
  20. 「技术综述」人脸妆造迁移核心技术总结

热门文章

  1. FreeRTOS信号量
  2. Pycharm导入conda虚拟环境时报错error code:1
  3. SpringCloud简介---01
  4. android之微信开放平台修改签名
  5. Linux攻关之基础模块一 系统准备
  6. 服务器,ping没问题,请求经常超时、时好时坏的解决办法
  7. centos基本命令
  8. 华擎计算机主板型号,华擎科技 新闻中心
  9. 论文阅读汇总(3)-【篇数:50】
  10. 选中一次格式刷,即可多次使用WPS格式刷的办法