当前位置:首页 » 密码管理 » 加密统计学

加密统计学

发布时间: 2022-09-13 02:05:11

‘壹’ 什么是FAT32文件系统

Windows95 OSR2和Windows 98开始支持FAT32文件系统,它是对早期DOS的FAT16文件系统的增强,由于文件系统的核心--文件分配表FAT由16位扩充为32位,所以称为FAT32文件系统。在一逻辑盘(硬盘的一分区)超过 512 兆字节时使用这种格式,会更高效地存储数据,减少硬盘空间的浪费,一般还会使程序运行加快,使用的计算机系统资源更少,因此是使用大容量硬盘存储文件的极有效的系统。本人对Windows 98下的FAT32 文件系统做了分析实验,总体上与FAT16文件系统变化不大,现将有关变化部分简介如下:

(一)FAT32 文件系统将逻辑盘的空间划分为三部分,依次是引导区(BOOT区)、文件分配表区(FAT区)、数据区(DATA区)。引导区和文件分配表区又合称为系统区。

(二)引导区从第一扇区开始,使用了三个扇区,保存了该逻辑盘每扇区字节数,每簇对应的扇区数等等重要参数和引导记录。之后还留有若干保留扇区。而FAT16文件系统的引导区只占用一个扇区,没有保留扇区。

(三)文件分配表区共保存了两个相同的文件分配表,因为文件所占用的存储空间(簇链)及空闲空间的管理都是通过FAT实现的,FAT如此重要,保存两个以便第一个损坏时,还有第二个可用。文件系统对数据区的存储空间是按簇进行划分和管理的,簇是空间分配和回收的基本单位,即,一个文件总是占用若干个整簇,文件所使用的最后一簇剩余的空间就不再使用,而是浪费掉了。
从统计学上讲,平均每个文件浪费0.5簇的空间,簇越大,存储文件时空间浪费越多,利用率越低。因此,簇的大小决定了该盘数据区的利用率。FAT16系统簇号用16位二进制数表示,从0002H到FFEFH个可用簇号(FFF0H到FFFFH另有定义,用来表示坏簇,文件结束簇等),允许每一逻辑盘的数据区最多不超过FFEDH(65518)个簇。FAT32系统簇号改用32位二进制数表示,大致从00000002H到FFFFFEFFH个可用簇号。FAT表按顺序依次记录了该盘各簇的使用情况,是一种位示图法。
每簇的使用情况用32位二进制填写,未被分配的簇相应位置写零;坏簇相应位置填入特定值;已分配的簇相应位置填入非零值,具体为:如果该簇是文件的最后一簇,填入的值为FFFFFF0FH,如果该簇不是文件的最后一簇,填入的值为该文件占用的下一个簇的簇号,这样,正好将文件占用的各簇构成一个簇链,保存在FAT表中。0000000H、00000001H两簇号不使用,其对应的两个DWORD位置(FAT表开头的8个字节)用来存放该盘介质类型编号。FAT表的大小就由该逻辑盘数据区共有多少簇所决定,取整数个扇区。

(四)FAT32系统一簇对应8个逻辑相邻的扇区,理论上,这种用法所能管理的逻辑盘容量上限为16TB(16384GB),容量大于16TB时,可以用一簇对应16个扇区,依此类推。FAT16系统在逻辑盘容量介于128MB到256MB时,一簇对应8个扇区,容量介于256MB到512MB时,一簇对应16个扇区,容量介于512MB到1GB时,一簇对应32个扇区,容量介于1GB到2GB时,一簇对应32个扇区,超出2GB的部分无法使用。显然,对于容量大于512MB的逻辑盘,采用FAT32的簇比采用FAT16的簇小很多,大大减少了空间的浪费。
但是,对于容量小于512MB的盘,采用FAT32虽然一簇8个扇区,比使用FAT16一簇16个扇区,簇有所减小,但FAT32的FAT表较大,占用空间较多,总数据区被减少,两者相抵,实际并不能增加有效存储空间,所以微软建议对小于512M的逻辑盘不使用FAT32。
另外,对于使用FAT16文件系统的用户提一建议,硬盘分区时,不要将分区(逻辑盘)容量正好设为某一区间的下限,例:将一逻辑盘容量设为1100M(稍大于1024M),则使用时其有效存储容量比分区为950M的一般还少,因其簇大一倍,浪费的空间较多。还有,使用FDISK等对分区指定容量时,由于对1MB的定义不一样(标准的二进制的1MB为1048576B,有的系统将1MB理解为1000000B,1000KB等),及每个分区需从新磁道开始等因素,实际分配的容量可能稍大于指定的容量,亦需注意掌握。

(五)根目录区(ROOT区)不再是固定区域、固定大小,可看作是数据区的一部分。因为根目录已改为根目录文件,采用与子目录文件相同的管理方式,一般情况下从第二簇开始使用,大小视需要增加,因此根目录下的文件数目不再受最多512的限制。FAT16文件系统的根目录区(ROOT区)是固定区域、固定大小的,是从FAT区之后紧接着的32个扇区,最多保存512个目录项,作为系统区的一部分。

(六)目录区中的目录项变化较多,一个目录项仍占32字节,可以是文件目录项、子目录项、卷标项(仅跟目录有)、已删除目录项、长文件名目录项等。目录项中原来在DOS下保留未用的10个字节都有了新的定义,全部32字节的定义如下:
(1) 0-- 7字节 文件正名。
(2) 8--10字节 文件扩展名。
(3) 11字节 文件属性,按二进制位定义,最高两位保留未用,0至5位分别是只读位、隐藏位、系统位、卷标位、子目录位、归档位。
(4) 11--13字节 仅长文件名目录项用,用来存储其对应的短文件名目录项的文件名字节校验和等。
(5) 13--15字节 24位二进制的文件建立时间,其中的高5位为小时,次6位为分钟。
(6) 16--17字节 16位二进制的文件建立日期,其中的高7位为相对于1980年的年份值,次4位为月份,后5位为月内日期。
(7) 18--19字节 16位二进制的文件最新访问日期,定义同(6)。
(8) 20--21字节 起始簇号的高16位。
(9) 22--23字节 16位二进制的文件最新修改时间,其中的高5位为小时,次6位为分钟,后5位的二倍为秒数。
(10)24--25字节 16位二进制的文件最新修改日期,定义同(6)。
(11)26--27字节 起始簇号的低16位。
(12)28--31字节 32位的文件字节长度。

其中第(4)至(8)项为以后陆续定义的。 对于子目录项,其(12)为零;已删除目录项的首字节值为E5H。在可以使用长文件名的FAT32系统中,文件目录项保存该文件的短文件名,长文件名用若干个长文件名目录项保存,长文件名目录项倒序排在文件短目录项前面,全部是采用双字节内码保存的,每一项最多保存十三个字符内码,首字节指明是长文件名的第几项,11字节一般为0FH,12字节指明类型,13字节为校验和,26--27字节为零。

(七)以前版本的 Windows 和DOS与 FAT32 不兼容,不能识别FAT32分区,有些程序也依赖于 FAT16 文件系统,不能和 FAT32 驱动器一道工作。将硬盘转换为 FAT32,就不能再用双引导运行以前版本的 Windows(Windows 95 [Version 4.00.950]、Windows NT 3.x、Windows NT 4.0 和 Windows 3.x)。

‘贰’ 批处理加密%%a是什么意思

通俗点说是WINDOWS记事本的一个BUG,比如用记事本写一个词 “联通”另存为文本后再打开会变成乱码。所以这种方法加密的用其他编辑器查看就一目了然了如wordpad.exe,Word

专业点描述:
记事本程序在保存一篇新建的文档时,如果没有指定编码类型,会使用缺省的ANSI类型(对于中文版来说,对应的就是GB码)。

而在打开一篇已创建的文档时,它会分析文档的编码类型,它首先判断文档头部有无BOM(Byte Order Mark,字节序标记,长度为2~3字节),如果有则根据其内容判断编码类型,FF、FE(Unicode),FE、FF(Unicode big endian),EF、BB、BF(UTF-8)[1]。

因为事实上有很多非ANSI编码的文档是没有任何BOM的“纯文本”,所以对这些文档不能简单的判断为ANSI编码。而需要使用一系列的统计学算法根据文档内容来猜测文档编码。记事本使用了 IsTextUnicode 函数来判断是否为 Unicode/Unicode big endian 编码,使用 IsTextUTF8 判断是否为 UTF8 编码。

但既然是统计学算法,就难免存在误判,尤其在文档内容过短时,由于样本的容量太小,这种误判的概率会显着增大。比如那个有名的微软与联通有仇的笑话,就是记事本在打开只有"联通"二字的ANSI编码文档时,IsTextUTF8 函数将其误判为UTF8编码[2];同样的误判也发生在 IsTextUnicode 函数上,比如具有 “this app can break”这种具有4335结构的文档,会被误判为 Unicode 编码[3][4]。

需要说明的是,这种误判的可能性是建立在文本较短且其字节位特征不被干扰的前提上的。如果将上述的文本做稍许修改(即使只是增加一个回车),则误判很难再发生。
说白了WINDOWS记事本误判了编码

‘叁’ java开发人事系统,需要对敏感数据进行加密存储,为了不影响统计分析和查询功能,大家有好的实现方案吗

没错,数据库中存的ID项加密。查询匹配时使用js或后台将用户输入的内容加密后去数据库匹配。查询到加密的数据库数据后在后台解密在发送到前台。如果对于安全要求较高就不要在js中解密。最后,类似于ID的数据加密模式和敏感信息的加密模式要不一致,这样可以保护你需要保护的敏感信息,即使有人通过js破解了你的ID等数据的加密,也无法获取真正的敏感信息。

‘肆’ 传统的加密方法有哪些

本文只是概述几种简单的传统加密算法,没有DES,没有RSA,没有想象中的高端大气上档次的东东。。。但是都是很传统很经典的一些算法

首先,提到加密,比如加密一段文字,让其不可读,一般人首先会想到的是将其中的各个字符用其他一些特定的字符代替,比如,讲所有的A用C来表示,所有的C用E表示等等…其中早的代替算法就是由Julius Caesar发明的Caesar,它是用字母表中每个字母的之后的第三个字母来代替其本身的(C=E(3,p)=(p+3) mod 26),但是,这种加密方式,很容易可以用穷举算法来破解,毕竟只有25种可能的情况..

为了改进上诉算法,增加其破解的难度,我们不用简单的有序的替代方式,我们让替代无序化,用其中字母表的一个置换(置换:有限元素的集合S的置换就是S的所有元素的有序排列,且每个元素就出现一次,如S={a,b}其置换就只有两种:ab,ba),这样的话,就有26!种方式,大大的增加了破解的难度,但是这个世界聪明人太多,虽然26!很多,但是语言本身有一定的特性,每个字母在语言中出现的相对频率可以统计出来的,这样子,只要密文有了一定数量,就可以从统计学的角度,得到准确的字母匹配了。

上面的算法我们称之为单表代替,其实单表代替密码之所以较容易被攻破,因为它带有原始字母使用频率的一些统计学特征。有两种主要的方法可以减少代替密码里明文结构在密文中的残留度,一种是对明文中的多个字母一起加密,另一种是采用多表代替密码。

先说多字母代替吧,最着名的就是playfair密码,它把明文中的双字元音节作为一个单元并将其转换成密文的双字元音节,它是一个基于由密钥词构成的5*5的字母矩阵中的,一个例子,如密钥为monarchy,将其从左往右从上往下填入后,将剩余的字母依次填入剩下的空格,其中I/J填入同一个空格:

对明文加密规则如下:
1 若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2 右端的字母。其中第一列被看做是最后一列的右方。
2 若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2 下方的字母。其中第一行被看做是最后一行的下方。
3 若p1 p2不在同一行,不在同一列,则c1 c2是由p1 p2确定的矩形的其他两角的字母,并且c1和p1, c2和p2同行。
4 若p1 p2相同,则插入一个事先约定的字母,比如Q 。
5 若明文字母数为奇数时,则在明文的末端添加某个事先约定的字母作为填充。

虽然相对简单加密,安全性有所提高,但是还是保留了明文语言的大部分结构特征,依旧可以破解出来,另一个有意思的多表代替密码是Hill密码,由数学家Lester Hill提出来的,其实就是利用了线性代数中的可逆矩阵,一个矩阵乘以它的逆矩阵得到单位矩阵,那么假设我们对密文每m个字母进行加密,那么将这m个字母在字母表中的序号写成矩阵形式设为P(如abc,[1,2,3]),密钥就是一个m阶的矩阵K,则C=P*K mod26,,解密的时候只要将密文乘上K的逆矩阵模26就可以了。该方法大大的增加了安全性。

‘伍’ 高分求 本科电子商务专业大一到大四的课程设置

上海财经大学 的课程 可以参考一下

海财经大学 本科生 信息管理与工程学院 信息管理与信息系统专业 信息管理与信息系统(电子商务) 培养计划
1 法律基础
2 大学英语Ⅱ
3 大学英语Ⅲ
4 大学英语Ⅳ
5 大学英语I
6 哲学
7 邓小平理论概论
8 当代世界经济与政治
9 毛泽东思想概论
10 大学生思想品德修养
11 大学语文
12 体育I☆
13 体育Ⅱ☆
14 体育Ⅲ☆
15 体育Ⅳ☆
16 卫生保健
17 军事理论
18 政治经济学Ⅰ★
19 政治经济学Ⅱ★
20 西方经济学I
21 西方经济学Ⅱ
22 高等数学(下)
23 经济法概论
24 国际贸易理论与实务
25 管理学
26 会计学I★
27 会计学Ⅱ★
28 统计学(数理统计)
29 管理信息系统
30 程序设计基础(*)
31 线性代数
32 概率论
33 高等数学(上)
34 供应链与物流管理
35 电子商务原理
36 电子商务系统建设
37 电子商务管理
38 数据库技术
39 数据结构△
40 信息系统分析与设计
41 计算机网络△
42 信息技术基础
43 网络营销
44 项目管理(*)
45 公司战略管理
46 工商管理模拟
47 电子商务专题
48 电子商务经济学
49 数据挖掘
50 运营与作业管理
51 公司财务
52 多媒体技术
53 企业资源计划(ERP)(*)
54 信息系统资源管理
55 数据库前台开发工具△
56 商务沟通
57 金融电子工程
58 决策支持系统与专家系统
59 会计信息系统
60 管理中的定量方法
61 电子商务案例分析
62 电子商务安全
63 Web应用工具

还有其他的大学 大多的是

1.政治(120学时,含法律基础32学时)
讲授马克思主义理论、毛泽东思想、邓小平理论、三个代表重要思想、时事、政治思想品德修养、职业道德和法律知识。树立科学的人生观与世界观,坚定走有中国特色社会主义道路的信念。要求在理论教学中讲清主要立场、观点和方法。
2.体育(96学时)
讲授体育基本理论和体育运动项目的基本知识教育,体育运动项目基本技能训练。了解人体的正常发育规律,学会科学锻炼身体的方法,养成锻炼身体的习惯,提高运动技术水平,达到《大学生体育合格标准》。
3.高等数学(96学时)
主要讲授一元微积分和常微分方程的基本知识,介绍一些工程数学的内容,为各种后继课程的学习奠定必要的数学基础,培养学生抽象思维、逻辑推理、工程计算能力,尤其是运用数学知识解决实际问题的能力。
4.英语(148学时)
在中学英语的基础上进行系统的学习,培养学生掌握必需、实用的语言知识和语言技能,具有阅读和翻译与本专业相关的英文资料的初步能力,认知英语单词3500个左右以及一定量的词组(含中学所掌握的单词和词组),具备按照基本构词法识别生词的能力。在教学中应加强学生的阅读理解能力、听说能力及英语写作能力的培养。
5. C语言(116学时)
本课程主要以应用为目的,向学生介绍程序设计的基本知识,使学生掌握利用高级语言进行程序设计的基本方法与技巧,具有应用计算机的能力。着重培养学生掌握计算机处理问题的思维方法。
6.网页制作(64学时)
本课程是一门理论性与实际技能要求并重的课程,课程内容定位于“网页设计方法、制作技术与使用工具”三重体系上,从系统、实用、易学的角度向学生讲授网页制作的语言、方法与技巧。主要包括:Web基础知识、网页结构设计及布局方法、超文本标记语言的语法、层叠样式表(CSS)技术、网页制作工具的使用(Dreamweaver、Fireworks、Flash)以及站点管理和网页发布技术。
7.计算机网络技术(64学时)
本课程主要介绍计算机网络基础知识和网络主流技术,计算机网络技术涉及数据通信、网络理论、各类网络标准协议及众多相关技术,为便于学生全面了解和掌握网络技术的知识。
8.数据库技术与应用(80学时)
数据库技术是计算机数据处理的一种最新技术,本课程介绍数据库系统的基本原理、基本理论、基本技术和关系数据库的设计与方法。
9.多媒体技术(64学时)
本课程从应用角度出发,综合讲述多媒体应用的基础知识和多媒体应用设计技术。主要包括:多媒体基础知识:多媒体应用所需要的硬件、软件支持环境;声音、图像、视频、等多媒体数据的采集方法;常用软件的使用,如Photoshop;多媒体应用设计原理;多媒体通信与网络技术等。
10.JAVA技术(96学时)
本课程主要介绍了JAVA语言的发展历史、特点和基本语法,从面向对象程序设计的角度介绍JAVA语言的编程基础和JAVA提供的基础类库和JAVA的图形用户界面及JAVA的异常处理、事件响应、文件操作和线程。

11.电子商务概论(64学时)
本课程全面系统地介绍了电子商务领域各个方面的知识。从电子商务的基本概念和系统框架入手,重点介绍了和电子商务相关的网络技术、EDI技术、安全技术、电子支付技术、物流技术及网站构架技术。并以目前电子商务应用领域较为成熟的几行业为例,介绍了电子商务的行业应用,以增强学生的感性认识。
12.管理学基础(48学时)
本课程是经济管理的基础课程,它是研究管理活动过程及其规律的科学,是管理实践活动的科学总结。具体内容包括:管理与管理学,管理理论的形成与发展、计划、目标、预测、组织概述、组织结构、人员配备、领导者、激励、控制与协调、控制基础理论、控制技术与方法、协调。
13.电子支付与结算(48学时)
本课程在介绍网络金融有关概念、结构和功能的基础上,系统地阐述了电子支付、网络银行、网络证券、在线保险和网络金融创新等内容,论述了网络金融相关的技术基础,并对网络金融的安全机制和风险管理进行了分析和阐述。
14.电子商务系统设计(64学时)
本课程在讲了电子商务系统设计的基本概念、基本技术、基本原理的前提下,着重介绍了电子商务的系统全貌和所涉及到的IT技术及一些重要的商务业务流程。
15. 电子商务案例分析(64学时)
本课程通过介绍着名电子商务网站与系统实例,分析各类电子商务系统的目的、战略构思、定位、系统结构、发展过程、技术特点、运作特色、成功经验与失败教训等,力图使学生进一步深入掌握电子商务的基本原理、开发技巧、运作过程,特别强调组织管理与信息技术的有效结合,电子商务系统对组织结构与运作方式及效率、市场结构与竞争、社会等各方面的影响。本课程进行中,要求学生结合实际背景,分组开发一个电子商务模拟网站或一个实用网站的子系统。使学生具备分析、设计、实现、维护和运作与实际电子商务系统的基本技能。
16.电子商务安全技术(64学时)
本课程主要围绕保障电子商务活动的安全性展开,第一部分为计算机网络安全基础,包括:网络安全的基本概念、常见的网络攻击与防范手段;第二部分为密码学基础,包括:密码学的基本概念、现代加密技术、密钥管理技术和鉴别与认证;第三部分为电子商务中Web站点安全策略与计算机网络安全工具,重点介绍防火墙、计算机病毒的防治、安全协议、系统入侵检测、计算机软件保护并结合系统实例,说明在具体的电子商务应用中保障其安全性应采取的措施。
17.现代物流管理(64学时)
本课程是电子商务的主干课程之一,它从电子商务与物流的关系入手,系统地介绍了在电子商务环境下如何开展现代物流管理。课程首先介绍了物流基础知识和物流的基本功能,对物流、物流管理、物流系统、企业物流、物流过程、物流成本进行全面介绍,在此基础上引出现代化物流信息技术,包括GIS、GPS、条码技术、EDI技术等,结合案例对物流中心、物流配送、物流模式、第三方物流、国际物流进行介绍,最后结合电子商务下的物流特点,引出供应链管理理念。本课程的目的在于全面了解物流及其相关理论知识和应用方法,用科学的管理方法实现现代化的物流管理。
18.网络营销与策划(48学时)
本课程是电子商务专业的主干课程之一。网络营销概论、定义、特点和发展;网络营销宏观和微观环境分析;在线消费者行为;顾客管理;网上调查;网络市场细分和目标市场;建立营销导向的网站;外向营销;网上产品与定价策略;在线渠道的职能、渠道长度、渠道伙伴的关系及在线零售;网上沟通;网上关系营销策略;网络营销计划,包括制定计划、环境分析、识别对象、设定目标、制定营销策略、行动方案、制定预算和评估计划等。
19.企业信息化与电子商务(48学时)
本课程从信息系统开发与信息资源利用的双重角度,介绍了企业信息化建设与管理的问题。课程首先介绍了有关信息化管理的基础知识,包括信息、信息资源、信息资源开发与管理、信息化与信息化管理、企业信息化建设与管理任务等方面的内容,通过对上述基础知识的了解,引出企业信息化建设的内容,包括计算机网络建设、网站建设、数据库建设、办公自动化系统建设、制造企业的生产作业信息化管理、进销存业务信息化管理、财务信息化管理、人力资源的信息化管理、知识管理系统、ERP、BPR、DSS、CRM等内容,最后介绍了企业外部信息资源的开发方法,具体涉及客户信息资源的开发、市场信息资源的开发、网络信息资源的开发以及竞争信息资源的开发。本课程目的在于向学生传输一种信息意识,给出一个实施企业信息化所需的整体知识框架体系,同时对一些重要软件系统的功能、产品、实施有一个较好的的框架性了解。
20.电子商务法规(32学时)
电子商务法是电子商务专业的主干课程之一。本课程的主要内容包括:一、电子商务法基础,主要论述什么是电子商务法、网站及其责任和电子商务的主体;二、电子商务基本法律制度,包括数据电文的法律制度、签名认证法律制度,电子合同及其不同类型的在线交易法律调控的法律制度;三、电子商务相关法律问题,主要涉及消费者保护、个人资料保护、不正当竞争、法律救济等与电子商务密切相关的法律问题。
21.电子商务项目运作(32学时)
本课程从项目管理的基本原理出发,介绍项目管理的基本原理、信息技术项目管理组织形式、人员配备及其相应职责的确定、项目经理的责任与权利等。使学生对信息技术项目管理有全面清晰的认识,用于公司的项目管理及项目管理信息化建设。主要内容有:国际、国内项目管理的现状,项目管理的主要方法和技术;IT项目的时间管理方法和技术;IT项目的规模、人工量、成本和缺陷的估算技术;IT项目的质量保证技术;IT项目的综合控制技术;IT项目配置管理技术。
实践性环节有:
1.C语言实训(二周)
通过C语言二周实训,掌握C语言语法规则,掌握常见的算法设计思路,熟悉C语言的环境和调试技术,达到国家二级C的考核要求。
2.微机组装与维修实训(一周)
通过计算机系统组装,掌握计算机组装、维护与故障维修的基本方法,并能熟练安装常用软件,进行各种系统配置和软件设置。
3.计算机应用基础实训(一周)
围绕全国计算机一级B进行实训教学。通过实训使学生熟练掌握操作系统、文字处理系统、电子表格软件、Internet操作等常用办公自动化软件。达到全国一级B考试要求。
4.网页制作实训(一周)
掌握网页的设计与规划;主页的结构安排与流程;编辑文档、图象、表单;创建表格、链接、层;时间轴的使用;制作交互页面。场景;角色;帧;层的概念;动画的流程设计;声音的插入与编辑;蒙板的使用;Action的应用。笔刷、纹理填充的用法、大图切割、动画生成、鼠标事件、图形优化转换输出。
5.数据库课程设计(二周)
进一步巩固掌握关系数据库的设计方法,熟练掌握SQL Server数据库开发方法。
6.面向对象课程设计(二周)
掌握面向对象的基本原理和方法,掌握工程化程序设计的基本知识,逐步培养工程化程序设计的基本素质。
7.电商模拟系统实训(三周)
通过“电子商务教学实验模拟系统”的模拟化环境学习,熟悉电子商务运作过程的所有环节,掌握电子商务运营的组织与管理。
8.电子商务专业综合实践(8周)
为培养学生综合应用专业知识的能力,在专业课程学完后,开设8周专业综合实践,要求学生完成一个小型项目研究。题目具有很强的专业针对性,所需专业技能与专业知识的涉及面较宽,以培养学生较强的综合应用能力。
9.生产(毕业)实习(24周)
通过生产(毕业)实习,一方面使学生较长时间地参加专业生产实践,培养学生独立操作能力,排除故障能力和解决问题能力,生产现场的组织、管理与指挥能力,从而能体现出应用型、技术型高职人材特色,另一方面搜集所需毕业设计资料及相关数据。
10.毕业设计(毕业论文)(10周)
毕业设计是总结性的一种实践性教学形式,通过毕业设计综合应用所学的各种理论知识和技能,按照培养目标规定的业务要求,进行基本能力的、全面的、系统的、严格的训练。设计题目可以是与生产任务相结合的现实设计,也可以是假拟题目,但每个学生都必须独立完成一定的任务,受到较全面的锻炼。

‘陆’ 数据压缩技术的数据压缩技术简史

电脑里的数据压缩其实类似于美眉们的瘦身运动,不外有两大功用。第一,可以节省空间。拿瘦身美眉来说,要是八个美眉可以挤进一辆出租车里,那该有多省钱啊!第二,可以减少对带宽的占用。例如,我们都想在不到 100Kbps 的 GPRS 网上观看 DVD 大片,这就好比瘦身美眉们总希望用一尺布裁出七件吊带衫,前者有待于数据压缩技术的突破性进展,后者则取决于美眉们的恒心和毅力。
简单地说,如果没有数据压缩技术,我们就没法用 WinRAR 为 Email 中的附件瘦身;如果没有数据压缩技术,市场上的数码录音笔就只能记录不到 20 分钟的语音;如果没有数据压缩技术,从 Internet 上下载一部电影也许要花半年的时间……可是这一切究竟是如何实现的呢?数据压缩技术又是怎样从无到有发展起来的呢? 一千多年前的中国学者就知道用“班马”这样的缩略语来指代班固和司马迁,这种崇尚简约的风俗一直延续到了今天的 Internet 时代:当我们在 BBS 上用“ 7456 ”代表“气死我了”,或是用“ B4 ”代表“ Before ”的时候,我们至少应该知道,这其实就是一种最简单的数据压缩呀。
严格意义上的数据压缩起源于人们对概率的认识。当我们对文字信息进行编码时,如果为出现概率较高的字母赋予较短的编码,为出现概率较低的字母赋予较长的编码,总的编码长度就能缩短不少。远在计算机出现之前,着名的 Morse 电码就已经成功地实践了这一准则。在 Morse 码表中,每个字母都对应于一个唯一的点划组合,出现概率最高的字母 e 被编码为一个点“ . ”,而出现概率较低的字母 z 则被编码为“ --.. ”。显然,这可以有效缩短最终的电码长度。
信息论之父 C. E. Shannon 第一次用数学语言阐明了概率与信息冗余度的关系。在 1948 年发表的论文“通信的数学理论( A Mathematical Theory of Communication )”中, Shannon 指出,任何信息都存在冗余,冗余大小与信息中每个符号(数字、字母或单词)的出现概率或者说不确定性有关。 Shannon 借鉴了热力学的概念,把信息中排除了冗余后的平均信息量称为“信息熵”,并给出了计算信息熵的数学表达式。这篇伟大的论文后来被誉为信息论的开山之作,信息熵也奠定了所有数据压缩算法的理论基础。从本质上讲,数据压缩的目的就是要消除信息中的冗余,而信息熵及相关的定理恰恰用数学手段精确地描述了信息冗余的程度。利用信息熵公式,人们可以计算出信息编码的极限,即在一定的概率模型下,无损压缩的编码长度不可能小于信息熵公式给出的结果。
有了完备的理论,接下来的事就是要想办法实现具体的算法,并尽量使算法的输出接近信息熵的极限了。当然,大多数工程技术人员都知道,要将一种理论从数学公式发展成实用技术,就像仅凭一个 E=mc 2 的公式就要去制造核武器一样,并不是一件很容易的事。 设计具体的压缩算法的过程通常更像是一场数学游戏。开发者首先要寻找一种能尽量精确地统计或估计信息中符号出现概率的方法,然后还要设计一套用最短的代码描述每个符号的编码规则。统计学知识对于前一项工作相当有效,迄今为止,人们已经陆续实现了静态模型、半静态模型、自适应模型、 Markov 模型、部分匹配预测模型等概率统计模型。相对而言,编码方法的发展历程更为曲折一些。
1948 年, Shannon 在提出信息熵理论的同时,也给出了一种简单的编码方法—— Shannon 编码。 1952 年, R. M. Fano 又进一步提出了 Fano 编码。这些早期的编码方法揭示了变长编码的基本规律,也确实可以取得一定的压缩效果,但离真正实用的压缩算法还相去甚远。
第一个实用的编码方法是由 D. A. Huffman 在 1952 年的论文“最小冗余度代码的构造方法( A Method for the Construction of Minimum Rendancy Codes )”中提出的。直到今天,许多《数据结构》教材在讨论二叉树时仍要提及这种被后人称为 Huffman 编码的方法。 Huffman 编码在计算机界是如此着名,以至于连编码的发明过程本身也成了人们津津乐道的话题。据说, 1952 年时,年轻的 Huffman 还是麻省理工学院的一名学生,他为了向老师证明自己可以不参加某门功课的期末考试,才设计了这个看似简单,但却影响深远的编码方法。
Huffman 编码效率高,运算速度快,实现方式灵活,从 20 世纪 60 年代至今,在数据压缩领域得到了广泛的应用。例如,早期 UNIX 系统上一个不太为现代人熟知的压缩程序 COMPACT 实际就是 Huffman 0 阶自适应编码的具体实现。 20 世纪 80 年代初, Huffman 编码又出现在 CP/M 和 DOS 系统中,其代表程序叫 SQ 。今天,在许多知名的压缩工具和压缩算法(如 WinRAR 、 gzip 和 JPEG )里,都有 Huffman 编码的身影。不过, Huffman 编码所得的编码长度只是对信息熵计算结果的一种近似,还无法真正逼近信息熵的极限。正因为如此,现代压缩技术通常只将 Huffman 视作最终的编码手段,而非数据压缩算法的全部。
科学家们一直没有放弃向信息熵极限挑战的理想。 1968 年前后, P. Elias 发展了 Shannon 和 Fano 的编码方法,构造出从数学角度看来更为完美的 Shannon-Fano-Elias 编码。沿着这一编码方法的思路, 1976 年, J. Rissanen 提出了一种可以成功地逼近信息熵极限的编码方法——算术编码。 1982 年, Rissanen 和 G. G. Langdon 一起改进了算术编码。之后,人们又将算术编码与 J. G. Cleary 和 I. H. Witten 于 1984 年提出的部分匹配预测模型( PPM )相结合,开发出了压缩效果近乎完美的算法。今天,那些名为 PPMC 、 PPMD 或 PPMZ 并号称压缩效果天下第一的通用压缩算法,实际上全都是这一思路的具体实现。
对于无损压缩而言, PPM 模型与算术编码相结合,已经可以最大程度地逼近信息熵的极限。看起来,压缩技术的发展可以到此为止了。不幸的是,事情往往不像想象中的那样简单:算术编码虽然可以获得最短的编码长度,但其本身的复杂性也使得算术编码的任何具体实现在运行时都慢如蜗牛。即使在摩尔定律大行其道, CPU 速度日新月异的今天,算术编码程序的运行速度也很难满足日常应用的需求。没办法,如果不是后文将要提到的那两个犹太人,我们还不知要到什么时候才能用上 WinZIP 这样方便实用的压缩工具呢。 逆向思维永远是科学和技术领域里出奇制胜的法宝。就在大多数人绞尽脑汁想改进 Huffman 或算术编码,以获得一种兼顾了运行速度和压缩效果的“完美”编码的时候,两个聪明的犹太人 J. Ziv 和 A. Lempel 独辟蹊径,完全脱离 Huffman 及算术编码的设计思路,创造出了一系列比 Huffman 编码更有效,比算术编码更快捷的压缩算法。我们通常用这两个犹太人姓氏的缩写,将这些算法统称为 LZ 系列算法。
按照时间顺序, LZ 系列算法的发展历程大致是: Ziv 和 Lempel 于 1977 年发表题为“顺序数据压缩的一个通用算法( A Universal Algorithm for Sequential Data Compression )”的论文,论文中描述的算法被后人称为 LZ77 算法。 1978 年,二人又发表了该论文的续篇“通过可变比率编码的独立序列的压缩( Compression of Indivial Sequences via Variable Rate Coding )”,描述了后来被命名为 LZ78 的压缩算法。 1984 年, T. A. Welch 发表了名为“高性能数据压缩技术( A Technique for High Performance Data Compression )”的论文,描述了他在 Sperry 研究中心(该研究中心后来并入了 Unisys 公司)的研究成果,这是 LZ78 算法的一个变种,也就是后来非常有名的 LZW 算法。 1990 年后, T. C. Bell 等人又陆续提出了许多 LZ 系列算法的变体或改进版本。
说实话, LZ 系列算法的思路并不新鲜,其中既没有高深的理论背景,也没有复杂的数学公式,它们只是简单地延续了千百年来人们对字典的追崇和喜好,并用一种极为巧妙的方式将字典技术应用于通用数据压缩领域。通俗地说,当你用字典中的页码和行号代替文章中每个单词的时候,你实际上已经掌握了 LZ 系列算法的真谛。这种基于字典模型的思路在表面上虽然和 Shannon 、 Huffman 等人开创的统计学方法大相径庭,但在效果上一样可以逼近信息熵的极限。而且,可以从理论上证明, LZ 系列算法在本质上仍然符合信息熵的基本规律。
LZ 系列算法的优越性很快就在数据压缩领域里体现 了 出来,使用 LZ 系列算法的工具软件数量呈爆炸式增长。 UNIX 系统上最先出现了使用 LZW 算法的 compress 程序,该程序很快成为了 UNIX 世界的压缩标准。紧随其后的是 MS-DOS 环境下的 ARC 程序,以及 PKWare 、 PKARC 等仿制品。 20 世纪 80 年代,着名的压缩工具 LHarc 和 ARJ 则是 LZ77 算法的杰出代表。
今天, LZ77 、 LZ78 、 LZW 算法以及它们的各种变体几乎垄断了整个通用数据压缩领域,我们熟悉的 PKZIP 、 WinZIP 、 WinRAR 、 gzip 等压缩工具以及 ZIP 、 GIF 、 PNG 等文件格式都是 LZ 系列算法的受益者,甚至连 PGP 这样的加密文件格式也选择了 LZ 系列算法作为其数据压缩的标准。
没有谁能否认两位犹太人对数据压缩技术的贡献。我想强调的只是,在工程技术领域,片面追求理论上的完美往往只会事倍功半,如果大家能像 Ziv 和 Lempel 那样,经常换个角度来思考问题,没准儿你我就能发明一种新的算法,就能在技术方展史上扬名立万呢。 LZ 系列算法基本解决了通用数据压缩中兼顾速度与压缩效果的难题。但是,数据压缩领域里还有另一片更为广阔的天地等待着我们去探索。 Shannon 的信息论告诉我们,对信息的先验知识越多,我们就可以把信息压缩得越小。换句话说,如果压缩算法的设计目标不是任意的数据源,而是基本属性已知的特种数据,压缩的效果就会进一步提高。这提醒我们,在发展通用压缩算法之余,还必须认真研究针对各种特殊数据的专用压缩算法。比方说,在今天的数码生活中,遍布于数码相机、数码录音笔、数码随身听、数码摄像机等各种数字设备中的图像、音频、视频信息,就必须经过有效的压缩才能在硬盘上存储或是通过 USB 电缆传输。实际上,多媒体信息的压缩一直是数据压缩领域里的重要课题,其中的每一个分支都有可能主导未来的某个技术潮流,并为数码产品、通信设备和应用软件开发商带来无限的商机。
让我们先从图像数据的压缩讲起。通常所说的图像可以被分为二值图像、灰度图像、彩色图像等不同的类型。每一类图像的压缩方法也不尽相同。
传真技术的发明和广泛使用促进了二值图像压缩算法的飞速发展。 CCITT (国际电报电话咨询委员会,是国际电信联盟 ITU 下属的一个机构)针对传真类应用建立了一系列图像压缩标准,专用于压缩和传递二值图像。这些标准大致包括 20 世纪 70 年代后期的 CCITT Group 1 和 Group 2 , 1980 年的 CCITT Group 3 ,以及 1984 年的 CCITT Group 4 。为了适应不同类型的传真图像,这些标准所用的编码方法包括了一维的 MH 编码和二维的 MR 编码,其中使用了行程编码( RLE )和 Huffman 编码等技术。今天,我们在办公室或家里收发传真时,使用的大多是 CCITT Group 3 压缩标准,一些基于数字网络的传真设备和存放二值图像的 TIFF 文件则使用了 CCITT Group 4 压缩标准。 1993 年, CCITT 和 ISO (国际标准化组织)共同成立的二值图像联合专家组( Joint Bi-level Image Experts Group , JBIG )又将二值图像的压缩进一步发展为更加通用的 JBIG 标准。
实际上,对于二值图像和非连续的灰度、彩色图像而言,包括 LZ 系列算法在内的许多通用压缩算法都能获得很好的压缩效果。例如,诞生于 1987 年的 GIF 图像文件格式使用的是 LZW 压缩算法, 1995 年出现的 PNG 格式比 GIF 格式更加完善,它选择了 LZ77 算法的变体 zlib 来压缩图像数据。此外,利用前面提到过的 Huffman 编码、算术编码以及 PPM 模型,人们事实上已经构造出了许多行之有效的图像压缩算法。
但是,对于生活中更加常见的,像素值在空间上连续变化的灰度或彩色图像(比如数码照片),通用压缩算法的优势就不那么明显了。幸运的是,科学家们发现,如果在压缩这一类图像数据时允许改变一些不太重要的像素值,或者说允许损失一些精度(在压缩通用数据时,我们绝不会容忍任何精度上的损失,但在压缩和显示一幅数码照片时,如果一片树林里某些树叶的颜色稍微变深了一些,看照片的人通常是察觉不到的),我们就有可能在压缩效果上获得突破性的进展。这一思想在数据压缩领域具有革命性的地位:通过在用户的忍耐范围内损失一些精度,我们可以把图像(也包括音频和视频)压缩到原大小的十分之一、百分之一甚至千分之一,这远远超出了通用压缩算法的能力极限。也许,这和生活中常说的“退一步海阔天空”的道理有异曲同工之妙吧。
这种允许精度损失的压缩也被称为有损压缩。在图像压缩领域,着名的 JPEG 标准是有损压缩算法中的经典。 JPEG 标准由静态图像联合专家组( Joint Photographic Experts Group , JPEG )于 1986 年开始制定, 1994 年后成为国际标准。 JPEG 以离散余弦变换( DCT )为核心算法,通过调整质量系数控制图像的精度和大小。对于照片等连续变化的灰度或彩色图像, JPEG 在保证图像质量的前提下,一般可以将图像压缩到原大小的十分之一到二十分之一。如果不考虑图像质量, JPEG 甚至可以将图像压缩到“无限小”。
JPEG 标准的最新进展是 1996 年开始制定, 2001 年正式成为国际标准的 JPEG 2000 。与 JPEG 相比, JPEG 2000 作了大幅改进,其中最重要的是用离散小波变换( DWT )替代了 JPEG 标准中的离散余弦变换。在文件大小相同的情况下, JPEG 2000 压缩的图像比 JPEG 质量更高,精度损失更小。作为一个新标准, JPEG 2000 暂时还没有得到广泛的应用,不过包括数码相机制造商在内的许多企业都对其应用前景表示乐观, JPEG 2000 在图像压缩领域里大显身手的那一天应该不会特别遥远。
JPEG 标准中通过损失精度来换取压缩效果的设计思想直接影响了视频数据的压缩技术。 CCITT 于 1988 年制定了电视电话和会议电视的 H.261 建议草案。 H.261 的基本思路是使用类似 JPEG 标准的算法压缩视频流中的每一帧图像,同时采用运动补偿的帧间预测来消除视频流在时间维度上的冗余信息。在此基础上, 1993 年, ISO 通过了动态图像专家组( Moving Picture Experts Group , MPEG )提出的 MPEG-1 标准。 MPEG-1 可以对普通质量的视频数据进行有效编码。我们现在看到的大多数 VCD 影碟,就是使用 MPEG-1 标准来压缩视频数据的。
为了支持更清晰的视频图像,特别是支持数字电视等高端应用, ISO 于 1994 年提出了新的 MPEG-2 标准(相当于 CCITT 的 H.262 标准)。 MPEG-2 对图像质量作了分级处理,可以适应普通电视节目、会议电视、高清晰数字电视等不同质量的视频应用。在我们的生活中,可以提供高清晰画面的 DVD 影碟所采用的正是 MPEG-2 标准。
Internet 的发展对视频压缩提出了更高的要求。在内容交互、对象编辑、随机存取等新需求的刺激下, ISO 于 1999 年通过了 MPEG-4 标准(相当于 CCITT 的 H.263 和 H.263+ 标准)。 MPEG-4 标准拥有更高的压缩比率,支持并发数据流的编码、基于内容的交互操作、增强的时间域随机存取、容错、基于内容的尺度可变性等先进特性。 Internet 上新兴的 DivX 和 XviD 文件格式就是采用 MPEG-4 标准来压缩视频数据的,它们可以用更小的存储空间或通信带宽提供与 DVD 不相上下的高清晰视频,这使我们在 Internet 上发布或下载数字电影的梦想成为了现实。
就像视频压缩和电视产业的发展密不可分一样,音频数据的压缩技术最早也是由无线电广播、语音通信等领域里的技术人员发展起来的。这其中又以语音编码和压缩技术的研究最为活跃。自从 1939 年 H. Dudley 发明声码器以来,人们陆续发明了脉冲编码调制( PCM )、线性预测( LPC )、矢量量化( VQ )、自适应变换编码( ATC )、子带编码( SBC )等语音分析与处理技术。这些语音技术在采集语音特征,获取数字信号的同时,通常也可以起到降低信息冗余度的作用。像图像压缩领域里的 JPEG 一样,为获得更高的编码效率,大多数语音编码技术都允许一定程度的精度损失。而且,为了更好地用二进制数据存储或传送语音信号,这些语音编码技术在将语音信号转换为数字信息之后又总会用 Huffman 编码、算术编码等通用压缩算法进一步减少数据流中的冗余信息。
对于电脑和数字电器(如数码录音笔、数码随身听)中存储的普通音频信息,我们最常使用的压缩方法主要是 MPEG 系列中的音频压缩标准。例如, MPEG-1 标准提供了 Layer I 、 Layer II 和 Layer III 共三种可选的音频压缩标准, MPEG-2 又进一步引入了 AAC ( Advanced Audio Coding )音频压缩标准, MPEG-4 标准中的音频部分则同时支持合成声音编码和自然声音编码等不同类型的应用。在这许多音频压缩标准中,声名最为显赫的恐怕要数 MPEG-1 Layer III ,也就是我们常说的 MP3 音频压缩标准了。从 MP3 播放器到 MP3 手机,从硬盘上堆积如山的 MP3 文件到 Internet 上版权纠纷不断的 MP3 下载, MP3 早已超出了数据压缩技术的范畴,而成了一种时尚文化的象征了。
很显然,在多媒体信息日益成为主流信息形态的数字化时代里,数据压缩技术特别是专用于图像、音频、视频的数据压缩技术还有相当大的发展空间——毕竟,人们对信息数量和信息质量的追求是永无止境的。 从信息熵到算术编码,从犹太人到 WinRAR ,从 JPEG 到 MP3 ,数据压缩技术的发展史就像是一个写满了“创新”、“挑战”、“突破”和“变革”的羊皮卷轴。也许,我们在这里不厌其烦地罗列年代、人物、标准和文献,其目的只是要告诉大家,前人的成果只不过是后人有望超越的目标而已,谁知道在未来的几年里,还会出现几个 Shannon ,几个 Huffman 呢?
谈到未来,我们还可以补充一些与数据压缩技术的发展趋势有关的话题。
1994年, M. Burrows 和 D. J. Wheeler 共同提出了一种全新的通用数据压缩算法。这种算法的核心思想是对字符串轮转后得到的字符矩阵进行排序和变换,类似的变换算法被称为 Burrows-Wheeler 变换,简称 BWT 。与 Ziv 和 Lempel 另辟蹊径的做法如出一辙, Burrows 和 Wheeler 设计的 BWT 算法与以往所有通用压缩算法的设计思路都迥然不同。如今, BWT 算法在开放源码的压缩工具 bzip 中获得了巨大的成功, bzip 对于文本文件的压缩效果要远好于使用 LZ 系列算法的工具软件。这至少可以表明,即便在日趋成熟的通用数据压缩领域,只要能在思路和技术上不断创新,我们仍然可以找到新的突破口。
分形压缩技术是图像压缩领域近几年来的一个热点。这一技术起源于 B. Mandelbrot 于 1977 年创建的分形几何学。 M. Barnsley 在 20 世纪 80 年代后期为分形压缩奠定了理论基础。从 20 世纪 90 年代开始, A. Jacquin 等人陆续提出了许多实验性的分形压缩算法。今天,很多人相信,分形压缩是图像压缩领域里最有潜力的一种技术体系,但也有很多人对此不屑一顾。无论其前景如何,分形压缩技术的研究与发展都提示我们,在经过了几十年的高速发展之后,也许,我们需要一种新的理论,或是几种更有效的数学模型,以支撑和推动数据压缩技术继续向前跃进。
人工智能是另一个可能对数据压缩的未来产生重大影响的关键词。既然 Shannon 认为,信息能否被压缩以及能在多大程度上被压缩与信息的不确定性有直接关系,假设人工智能技术在某一天成熟起来,假设计算机可以像人一样根据已知的少量上下文猜测后续的信息,那么,将信息压缩到原大小的万分之一乃至十万分之一,恐怕就不再是天方夜谭了。
回顾历史之后,人们总喜欢畅想一下未来。但未来终究是未来,如果仅凭你我几句话就可以理清未来的技术发展趋势,那技术创新的工作岂不就索然无味了吗?依我说,未来并不重要,重要的是,赶快到 Internet 上下载几部大片,然后躺在沙发里,好好享受一下数据压缩为我们带来的无限快乐吧。

‘柒’ 通常攻击密码都有什么方法

攻击密码系统的方法大概可以分为三种

对密码进行分析的尝试称为攻击。Kerckhoffs最早在19世纪阐明密码分析的一个基本假设,这个假设就是秘密必须完全寓于密钥中。Kerckhoffs假设密码分析者已有密码算法及其实现的全部详细资料。
密码分析者攻击密码系统的方法主要有以下三种。


穷举攻击

所谓穷举攻击是指密码分析者采用依次试遍所有可能的密钥,对所获密文进行解密,直至得到正确的明文;或者用一个确定的密钥对所有可能的明文进行加密,直至得到所获得的密文。显然,理论上对于任何实用密码,只要有足够的资源都可以用穷举攻击将其攻破。
穷举攻击所花费的时间等于尝试次数乘以一次解密(加密)所需的时间。显然可以通过增大密钥量或者加大解密(加密)算法的复杂性来对抗穷举攻击。当密钥量增大时,尝试的次数必然增大。当解密(加密)算法的复杂性增大时,完成一次解密(加密)所需的时间增大,从而使穷举攻击在实际上不能实现。穷举攻击是对密码的一种最基本的攻击方法。


统计分析攻击

所谓统计分析攻击就是指密码分析者通过分析密文和明文的统计规律来破译密码。统计分析攻击在历史上为破译密码做出过极大的贡献。许多古典密码都可以通过分析密文字母和字母组的频率和其他统计参数而破译。对抗统计分析攻击的方法是设法使明文的统计特性不带入密文。这样密文不带有明文的痕迹,从而使统计分析攻击成为不可能。能够抵抗统计分析攻击已成为近代密码的基本要求。


数学分析攻击

所谓数学分析攻击是指密码分析者针对加解密算法的数学基础和某些密码学特性,通过数学求解的方法来破译密码。数学分析攻击是对基于数学难题的各种密码的主要威胁。为了对抗这种数学分析攻击,应当选用具有坚实数学基础和足够复杂的加解密算法。

‘捌’ pass15统计学软件密码

咨询记录 · 回答于2021-11-15

‘玖’ 现有的对称密匙有哪些各个优缺点

第二次世界大战后计算机与电子学的发展促成了更复杂的密码,而且计算机可以加密任何二进制形式的资料,不再限于书写的文字,以语言学为基础的破密术因此失效。多数计算机加密的特色是在二进制字串上操作,而不像经典密码学那样直接地作用在传统字母数字上。然而,计算机同时也促进了破密分析的发展,抵消了某些加密法的优势。不过,优良的加密法仍保持领先,通常好的加密法都相当有效率(快速且使用少量资源),而破解它需要许多级数以上的资源,使得破密变得不可行。

虽然频率分析是很有效的技巧,实际上加密法通常还是有用的。不使用频率分析来破解一个信息需要知道目前是使用何种加密法,因此才会促成了谍报、贿赂、窃盗或背叛等行为。直到十九世纪学者们才体认到加密法的算法并非理智或实在的防护。实际上,适当的密码学机制(包含加解密法)应该保持安全,即使敌人知道了使用何种算法。对好的加密法来说,钥匙的秘密性理应足以保障资料的机密性。这个原则首先由奥古斯特�6�1柯克霍夫(en:Auguste Kerckhoffs)提出并被称为柯克霍夫原则(Kerckhoffs’ principle)。信息论始祖香农(Claude Shannon)重述:“敌人知道系统。”

大量的公开学术研究出现,是现代的事,这起源于一九七零年代中期,美国国家标准局(en:National Bureau of Standards, NBS;现称国家标准枝术研究所,en:National Institute of Standards and Technology, NIST)制定数字加密标准(DES),Diffie和Hellman提出的开创性论文,以及公开释出RSA。从那个时期开始,密码学成为通讯、电脑网络、电脑安全等上的重要工具。许多现代的密码技术的基础依赖于特定基算问题的困难度,例如因子分解问题或是离散对数问题。许多密码技术可被证明为只要特定的计算问题无法被有效的解出,那就安全。除了一个着名的例外:一次垫(en:one-time pad,OTP),这类证明是偶然的而非决定性的,但是是目前可用的最好的方式。

密码学算法与系统设计者不但要留意密码学历史,而且必须考虑到未来发展。例如,持续增加计算机处理速度会增进暴力攻击法(brute-force attacks)的速度。量子计算的潜在效应已经是部份密码学家的焦点。

二十世纪早期的密码学本质上主要考虑语言学上的模式。从此之后重心转移,现在密码学使用大量的数学,包括信息论、计算复杂性理论、统计学、组合学、抽象代数以及数论。密码学同时也是工程学的分支,但却是与别不同,因为它必须面对有智能且恶意的对手,大部分其他的工程仅需处理无恶意的自然力量。检视密码学问题与量子物理间的关连也是目前热门的研究。

[编辑] 现代密码学

现代密码学大致可被区分为数个领域。 对称钥匙密码学指的是传送方与接收方都拥有相同的钥匙。直到1976年这都还是唯一的公开加密法。

现代的研究主要在分组密码(Block Cipher)与流密码(Stream Cipher)及其应用。分组密码在某种意义上是阿伯提的多字符加密法的现代化。分组密码取用明文的一个区块和钥匙,输出相同大小的密文区块。由于信息通常比单一区块还长,因此有了各种方式将连续的区块编织在一起。 DES和AES是美国联邦政府核定的分组密码标准(AES将取代DES)。尽管将从标准上废除,DES依然很流行(triple-DES变形仍然相当安全),被使用在非常多的应用上,从自动交易机、电子邮件到远端存取。也有许多其他的区块加密被发明、释出,品质与应用上各有不同,其中不乏被破解者。

流密码,相对于区块加密,制造一段任意长的钥匙原料,与明文依位元或字符结合,有点类似一次垫(one-time pad)。输出的串流根据加密时的内部状态而定。在一些流密码上由钥匙控制状态的变化。RC4是相当有名的流密码。

密码杂凑函数(有时称作消息摘要函数,杂凑函数又称散列函数或哈希函数)不一定使用到钥匙,但和许多重要的密码算法相关。它将输入资料(通常是一整份文件)输出成较短的固定长度杂凑值,这个过程是单向的,逆向操作难以完成,而且碰撞(两个不同的输入产生相同的杂凑值)发生的机率非常小。

信息认证码或押码(Message authentication codes, MACs)很类似密码杂凑函数,除了接收方额外使用秘密钥匙来认证杂凑值。

[编辑] 公钥密码学

主条目:公钥密码学

公开钥匙密码学,简称公钥密码学,又称非对称钥匙密码学,相对于对称钥匙密码学,最大的特点在于加密和解密使用不同的钥匙。

在对称钥匙密码学中,加密和解密使用相同的钥匙,也许对不同的信息使用不同的钥匙,但都面临钥匙管理的难题。由于每对通讯方都必须使用异于他组的钥匙,当网络成员的数量增加时,钥匙数量成二次方增加。更尴尬的难题是:当安全的通道不存在于双方时,如何建立一个共有的钥匙以利安全的通讯?如果有通道可以安全地建立钥匙,何不使用现有的通道。这个‘鸡生蛋、蛋生鸡’的矛盾是长年以来密码学无法在真实世界应用的阻碍。

1976年, Whitfield Diffie与Martin Hellman发表开创性的论文,提出公开钥匙密码学的概念:一对不同值但数学相关的钥匙,公开钥匙(或公钥, public key)与私密钥匙(私钥,private key or secret key)。在公钥系统中,由公开钥匙推算出配对的私密钥匙于计算上是不可行的。历史学者David Kahn这样描述公开钥匙密码学;“从文艺复兴的多字符取代法后最革命性的概念。”

在公钥系统中,公钥可以随意流传,但私钥只有该人拥有。典型的用法是,其他人用公钥来加密给该接受者,接受者使用自己的私钥解密。Diffie与Hellman也展示了如何利用公开钥匙密码学来达成Diffie-Hellman钥匙交换协定。

1978年,MIT的Ron Rivest、Adi Shamir和Len Adleman发明另一个公开钥匙系统,RSA。

直到1997年的公开文件中大众才知道,早在1970年代早期,英国情报机构GCHQ的数学家James H. Ellis便已发明非对称钥匙密码学,而且Diffie-Hellman与RSA都曾被Malcolm J. Williamson与Clifford Cocks分别发明于前。 这两个最早的公钥系统提供优良的加密法基础,因而被大量使用。其他公钥系统还有Cramer-Shoup、Elgamal、以及椭圆曲线密码学等等。

除了加密外,公开钥匙密码学最显着的成就是实现了数字签名。数字签名名符其实是普通签章的数字化,他们的特性都是某人可以轻易制造签章,但他人却难以仿冒。数字签名可以永久地与被签署信息结合,无法自信息上移除。数字签名大致包含两个算法:一个是签署,使用私密钥匙处理信息或信息的杂凑值而产生签章;另一个是验证,使用公开钥匙验证签章的真实性。RSA和DSA是两种最流行的数字签名机制。数字签名是公开钥匙基础建设(public key infranstructures, PKI)以及许多网络安全机制(SSL/TLS, VPNs等)的基础。

公开钥匙算法大多基于计算复杂度上的难题,通常来自于数论。例如,RSA源于整数因子分解问题;DSA源于离散对数问题。近年发展快速的椭圆曲线密码学则基于和椭圆曲线相关的数学难题,与离散对数相当。由于这些底层的问题多涉及模数乘法或指数运算,相对于分组密码需要更多计算资源。因此,公开钥匙系统通常是复合式的,内含一个高效率的对称钥匙算法,用以加密信息,再以公开钥匙加密对称钥匙系统所使用的钥匙,以增进效率。

热点内容
密码器动态密码怎么弄 发布:2025-07-14 00:44:27 浏览:386
小米怎么把视频加密 发布:2025-07-14 00:42:59 浏览:406
在线申诉找回密码根本什么都没有 发布:2025-07-14 00:41:22 浏览:306
拉新用什么安卓手机可以 发布:2025-07-14 00:41:19 浏览:418
androidhome键退出 发布:2025-07-14 00:30:03 浏览:506
我都世界模组反编译教程 发布:2025-07-14 00:29:45 浏览:646
法因数控钻床编程手册 发布:2025-07-14 00:18:26 浏览:490
gcc编译怎么知道错误的行数 发布:2025-07-14 00:06:21 浏览:383
压强算法 发布:2025-07-14 00:02:52 浏览:552
dns怎么配置端口 发布:2025-07-13 23:49:16 浏览:761