在java开发中,常常需要考虑数据安全问题,然不仅仅需要考虑数据存储的安全,还需要考虑数据的传输安全。自从有了数据安全问题后,密码学也就出来了。了解数据安全,首先需要了解密码学

1.什么是密码学

密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。

2.密码学中常用的概念

明文:指待加密信息。明文可以是2进制数据,文本文件,图片文件等。

密文:指经过加密后的明文。密文可以使2进制数据,文本文件,图片文件等。

发送者:发送消息的人。

接收者:接收消息的人。

加密:明文转换为密文的过程。

加密算法:将明文变化为密文的转换算法。

加密密匙:通过加密算法进行加密操作作用的密匙。

解密:将密文转换为明文的过程。

解密算法:将密文转换为明文的转换算法。

解密密匙:通过解密算法进行解密操作用的密匙。

密码分析:截取密文者试图通过分析截获的密文从而推断出原密文或密匙的过程。

密码分析者:等同于密码破译者,指从事密码分析的人。

被动攻击:指对一个保密系统采取截获密文并对其进行分析和攻击。这种攻击对密文没有破坏作用。

主动攻击:指攻击者非法入侵密码系统,采用伪造,修改,删除等手段向系统注入假消息进行欺骗。这种攻击对密文具有破坏作用。

密码体制:由明文空间、密文空间、密匙空间、加密算法和解密算法五部分构成。

密码协议:有时候也称为安全协议,是指以密码学为基础的消息交换的通信协议,其目的是在网络环境中提供各种安全服务。

密码系统:用于加密与解密的系统,通常包含软、硬件的系统。

柯克霍夫原则:数据的安全基于密匙而不是算法的保密。

3.密码学的分类

1.按时间划分,可分为古典密码与现代密码,古典密码为以字符为基本单元进行加密

2.按保密内容划分,可分为受限制算法与基于密匙算法

3.按密码体制划分,可分为对称密码体制、非对称密码体制

4.按明文处理方法划分,可分为分组密码与流密码

4.保密通信模型

密码学并不是孤立存在,废话,呵呵。它需要一个环境,就是保密通信模型。密码学的目的在于确保信息的保密传送。

保密通信模型:

  

对称密码体制模型:

  

从中可以看出加密与解密的密匙是一模一样的,也就是对称密码体制加解密算法密匙是一样的。

非对称密码体制:

与对称密码体制比较就是加解密算法与密匙均不同。

  

最新文章

  1. Ubuntu添加开机自动启动程序方法
  2. [OC][转]UITableView属性及方法大全
  3. ASP.NET MVC4 执行流程
  4. python ImportError: No module named 的问题
  5. net.sf.json日期类型格式化输出
  6. linux 切换用户之后变成-bash-x.x$的解决方法
  7. 如何调教Android Studio-Windows安装AS后的必备工作
  8. C++成员变量与函数内存分配
  9. 关于基本视频播放的Demo
  10. check_arp
  11. js获取地址栏参数数据
  12. oracle创建删除表空间
  13. curator 分布式锁InterProcessMutex
  14. Samsung_tiny4412(驱动笔记02)----ASM with C,MMU,Exception,GIC
  15. Git学习系列之CentOS上安装Git详细步骤(图文详解)
  16. php -- 正则替换
  17. HTML5之HTTP协议
  18. HTML5新增核心工具——本地存储
  19. poj 3368(RMQ模板)
  20. 浅谈JavaScript预编译原理

热门文章

  1. 南阳理工ACM-OJ 分数加减法 最大公约数的使用
  2. Textview 文本旋转,倾斜
  3. 关于OS_PRIO_SELF的说明
  4. [转] Javascript中数组与字典(即object)的使用
  5. 关于c#流
  6. OD: Kernel Exploit - 2 Programming
  7. POJ题目细究
  8. meta标签的含义
  9. call, apply, bind作用
  10. MySQL 删除数据表