精华内容
下载资源
问答
  • 信息加密技术

    千次阅读 2012-09-24 15:24:42
    信息加密的目的是保护网内的数据、文件、口令和控制信息,保护网上传输的数据。数据加密技术主要分为数据传输加密和数据存储加密。数据传输加密技术主要是对传输中的数据流进行加密,常用的有链路加密、节点加密和...
    信息加密的目的是保护网内的数据、文件、口令和控制信息,保护网上传输的数据。数据加密技术主要分为数据传输加密和数据存储加密。数据传输加密技术主要是对传输中的数据流进行加密,常用的有链路加密、节点加密和端到端加密三种方式。链路加密的目的是保护网络节点之间的链路信息安全;节点加密的目的是对源节点到目的节点之间的传输链路提供保护;端--端加密的目的是对源端用户到目的端用户的数据提供保护。在保障信息安全各种功能特性的诸多技术中,密码技术是信息安全的核心和关键技术,通过数据加密技术,可以在一定程度上提高数据传输的安全性,保证传输数据的完整性。一个数据加密系统包括加密算法、明文、密文以及密钥,密钥控制加密和解密过程,一个加密系统的全部安全性是基于密钥的,而不是基于算法,所以加密系统的密钥管理是一个非常重要的问题。数据加密过程就是通过加密系统把原始的数字信息(明文),按照加密算法变换成与明文完全不同得数字信息(密文)的过程。
      假设E为加密算法,D为解密算法,则数据的加密解密数学表达式为:P=D(KD,E(KE,P))。
      数据加密算法有很多种,密码算法标准化是信息化社会发展得必然趋势,是世界各国保密通信领域的一个重要课题。按照发展进程来分,经历了古典密码、对称密钥密码和公开密钥密码阶段,古典密码算法有替代加密、置换加密;对称加密算法包括DES和AES;非对称加密算法包括RSA 、背包密码、McEliece密码、Rabin、椭圆曲线、EIGamal算法等。目前在数据通信中使用最普遍的算法有DES算法、RSA算法和PGP算法。
      根据收发双方密钥是否相同来分类,可以将这些加密算法分为常规密码算法和公钥密码算法。在常规密码中,收信方和发信方使用相同的密钥,即加密密钥和解密密钥是相同或等价的。常规密码的优点是有很强的保密强度,且经受住时间的检验和攻击,但其密钥必须通过安全的途径传送。在公钥密码中,收信方和发信方使用的密钥互不相同,而且几乎不可能从加密密钥推导出解密密钥。最有影响的公钥密码算法是RSA,它能抵抗到目前为止已知的所有密码攻击。在实际应用中通常将常规密码和公钥密码结合在一起使用,利用DES或者IDEA来加密信息,而采用RSA来传递会话密钥。
      防火墙技术
      防火墙的本义原是指古代人们房屋之间修建的那道墙,这道墙可以防止火灾发生的时候蔓延到别的房屋。防火墙技术是指隔离在本地网络与外界网络之间的一道防御系统的总称。在互联网上防火墙是一种非常有效的网络安全模型,通过它可以隔离风险区域与安全区域的连接,同时不会妨碍人们对风险区域的访问。防火墙可以监控进出网络的通信量,仅让安全、核准了的信息进入,同时又抵制对企业构成威胁的数据。目前的防火墙主要有包过滤防火墙、代理防火墙和双穴主机防火墙3种类型,并在计算机网络得到了广泛的应用。
      一套完整的防火墙系统通常是由屏蔽路由器和代理服务器组成。屏蔽路由器是一个多端口的IP路由器,它通过对每一个到来的IP包依据组规则进行检查来判断是否对之进行转发。屏蔽路由器从包头取得信息,例如协议号、收发报文的IP地址和端口号、连接标志以至另外一些IP选项,对IP包进行过滤。代理服务器是防火墙中的一个服务器进程,它能够代替网络用户完成特定的TCP/TP功能。一个代理服务器本质上是一个应用层的网关,一个为特定网络应用而连接两个网络的网关。用户就一项TCP/TP应用,比如Telnet或者FTP,同代理服务器打交道,代理服务器要求用户提供其要访问的远程主机名。当用户答复并提供了正确的用户身份及认证信息后,代理服务器连通远程主机,为两个通信点充当中继。整个过程可以对用户完全透明。用户提供的用户身份及认证信息可用于用户级的认证。
      随着安全性问题上的失误和缺陷越来越普遍,对网络的入侵不仅来自高超的攻击手段,也有可能来自配置上的低级错误或不合适的口令选择。因此,防火墙的作用是防止不希望的、未授权的通信进出被保护的网络。防火墙可以达到以下目的:一是可以限制他人进入内部网络,过滤掉不安全服务和非法用户;二是防止入侵者接近你的防御设施;三是限定用户访问特殊站点;四是为监视Internet安全提供方便。由于防火墙假设了网络边界和服务,因此更适合于相对独立的网络,例如Intranet等种类相对集中的网络。
      入侵检测技术
      随着网络安全风险系数不断提高,作为对防火墙及其有益的补充,IDS(入侵检测系统)能够帮助网络系统快速发现攻击的发生,它扩展了系统管理员的安全管理能力(包括安全审计、监视、进攻识别和响应),提高了信息安全基础结构的完整性。
      入侵检测系统是一种对网络活动进行实时监测的专用系统,该系统处于防火墙之后,可以和防火墙及路由器配合工作,用来检查一个LAN网段上的所有通信,记录和禁止网络活动,可以通过重新配置来禁止从防火墙外部进入的恶意流量。入侵检测系统能够对网络上的信息进行快速分析或在主机上对用户进行审计分析,通过集中控制台来管理、检测。
      理想的入侵检测系统的功能主要有:
      (1)用户和系统活动的监视与分析;
      (2)系统配置极其脆弱性分析和审计;
      (3)异常行为模式的统计分析;
      (4)重要系统和数据文件的完整性监测和评估;
      (5)操作系统的安全审计和管理;
      (6)入侵模式的识别与响应,包括切断网络连接、记录事件和报警等。
      本质上,入侵检测系统是一种典型的“窥探设备”。它不跨接多个物理网段(通常只有一个监听端口),无须转发任何流量,而只需要在网络上被动地、无声息地收集它所关心的报文即可。目前,IDS分析及检测入侵阶段一般通过以下几种技术手段进行分析:特征库匹配、基于统计的分析和完整性分析。其中前两种方法用于实时的入侵检测,而完整性分析则用于事后分析。
      各种相关网络安全的黑客和病毒都是依赖网络平台进行的,而如果在网络平台上就能切断黑客和病毒的传播途径,那么就能更好地保证安全。这样,就出现了网络设备与IDS设备的联动。IDS与网络交换设备联动,是指交换机或防火墙在运行的过程中,将各种数据流的信息上报给安全设备,IDS系统可根据上报信息和数据流内容进行检测,在发现网络安全事件的时候,进行有针对性的动作,并将这些对安全事件反应的动作发送到交换机或防火墙上,由交换机或防火墙来实现精确端口的关闭和断开,这就是入侵防御系统(IPS)。IPS技术是在IDS监测的功能上又增加了主动响应的功能,力求做到一旦发现有攻击行为,立即响应,主动切断连接。
      系统容灾技术
      一个完整的网络安全体系,只有“防范”和“检测”措施是不够的,还必须具有灾难容忍和系统恢复能力。因为任何一种网络安全设施都不可能做到万无一失,一旦发生漏防漏检事件,其后果将是灾难性的。此外,天灾人祸、不可抗力等所导致的事故也会对信息系统造成毁灭性的破坏。这就要求即使发生系统灾难,也能快速地恢复系统和数据,才能完整地保护网络信息系统的安全。主要有基于数据备份和基于系统容错的系统容灾技术。
      数据备份是数据保护的最后屏障,不允许有任何闪失。但离线介质不能保证安全。数据容灾通过IP 容灾技术来保证数据的安全。数据容灾使用两个存储器,在两者之间建立复制关系,一个放在本地,另一个放在异地。本地存储器供本地备份系统使用,异地容灾备份存储器实时复制本地备份存储器的关键数据。二者通过IP相连,构成完整的数据容灾系统,也能提供数据库容灾功能。
      集群技术是一种系统级的系统容错技术,通过对系统的整体冗余和容错来解决系统任何部件实效而引起的系统死机和不可用问题。集群系统可以采用双机热备份、本地集群网络和异地集群网络等多种形式实现,分别提供不同的系统可用性和容灾性。其中异地集群网络的容灾性是最好的。
      存储、备份和容灾技术的充分结合,构成一体化的数据容灾备份存储系统,是数据技术发展的重要阶段。随着存储网络化时代的发展,传统的功能单一的存储器,将越来越让位于一体化的多功能网络存储器。
    展开全文
  • 分享信息加密技术

    千次阅读 2018-12-10 18:47:58
    所以大型网站已经越来越注重自身数据库的安全,维护敏感数据的安全更是重中之重,信息加密技术的发展也趋于完善。加密技术可以大致分为三类:1.单项三列加密,2.对称加密,3.非对称加密。  一.单项散...

           2011年CSDN由于网站安全措施不给力,导致的密码泄露事故,使用户数据库被黑客“拖库”,而当时CSDN对于密码的存储方式是以明文的方式存储,导致密码泄露,成为地下黑市交易的商品。所以大型网站已经越来越注重自身数据库的安全,维护敏感数据的安全更是重中之重,信息加密技术的发展也趋于完善。加密技术可以大致分为三类:1.单项三列加密,2.对称加密,3.非对称加密。

          一.单项散列加密算法,又称hash函数,是指通过对不同输入长度的信息进行散列计算从而得到固定长度的输出,这个散列计算是单项的,不能对定长的输出进行计算后得到输入的信息。常用的单项散列加密算法有:MD5(Message Digest Algorithm 5),SHA(Secure Hash Algorithm),MAC(Message Authentication Code,消息认证代码),CRC(Cyclic Redundancy Check)。

          1.MD5:被广泛使用的密码散列函数,可以用来把不同长度的数据块进行暗码运算成一个128位的数值,用于确保信息传输完整一致。算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值(图片来源与百度百科)。

                                                         

        2.SHA(Secure Hash Algorithm)一种较新的散列算法,可以对任意长度的数据运算生成一个160位的数值。是一个密码列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不同,它们对应到不同字符串的机率很高。对于SHA之间的一些区别,丢个简书链接感觉不错:https://www.jianshu.com/p/68c664b663f4

        3.MAC(Message Authentication Code):消息认证代码,是一种使用秘钥的单向函数,可以用它们在系统上或用户之间认证文件或消息。老套路,丢链接https://blog.csdn.net/qq_30505673/article/details/82432454

      二:对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密秘钥(mi yao)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。通常用在信息需要安全交换或存储的场合,例如Cookie加密,通信加密等。简单理解为:对称加密是指加密和解密使用的秘钥是同一个秘钥(或者可以相互推算)。对称加密过程大致如下图所示:

    对称加密算法主要有:DES算法,3DES算法,TDEA算法,BLOWFISH算法,RC5算法,主要讲一下DES算法和3DES算法。

           (1)DES算法:为密码体制中的对称密码体制,被称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。 明文按64位进行分组,秘钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1,即其中包括了8位奇偶校验位)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。其入口参数有三个:key、data、mode。key为加密解密使用的秘钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。其算法结构如下图所示:

                                                           

    算法流程如下图所示:

                                                    

        缺点:因为此算法自用到了64位秘钥中的恶6位,而8的倍数位并没有参加DES运算,所以在使用时应当避开8的倍数位设置为有效位,因为此算法安全性由其他56位组合变化才得以保障。如果将这些数位当做有效数据位进行处理,那么将不会保证数据的正确性,产生被破译的危险。

         DES特点:DES算法具有极高安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的秘钥的穷举空间为2^56,这意味着如果一台计算机的速度是每一秒钟检测一百万个密钥,则它搜索完全部密钥就需要将近2285年的时间,可见,这是难以实现的。然而,这并不等于说DES是不可破解的。而实际上,随着硬件技术和Internet的发展,其破解的可能性越来越大,而且,所需要的时间越来越少。使用经过特殊设计的硬件并行处理要几个小时。

         因为DES也会存在某些缺点,从而3DES算法应运而生。

         (2)3DES算法:3DES是针对DES算法密钥过短、存在安全性的问题而改进的一个措施,被称为“3DES”。其实只是通过简单的执行3次DES来达到增加密钥长度和安全而已。例如DES过程与3DES过程进行对比:

                                                   

                                                                                   DES过程    

                                  

                                                                                   3DES过程

           图中3DES算法在对明文进行加密时,采用了三次加密过程,其中第一次和第三次是采用DES的加密算法,第二次采用的则是解密算法,从而得到最终的密文。这种加密过程为“加密-解密-加密”,所以又称为EDE(Encrypt-Decrypt-Encrypt)方案。

    三、非对称加密算法是一种密钥的保密方法。

           非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:信息发送者A通过公开渠道获得信息接收者B的公钥,对提交信息进行加密,然后通过非安全传输通道将密文信息发送给B,B得到密文信息后用自己的私钥进行解密,获得原始明文信息。好处在于即使秘钥遭到窃取,但是因为没有解密的秘钥也不可能还原明文。

         数字签名的过程正好相反,签名这用自己的私钥对信息进行加密,然后发送给对方,接收方用签名者的公钥对信息进行解密,获得原始明文信息,由于私钥只有签名者拥有,因此该信息是不可抵赖的,具有签名的性质。而实际应用时,常常会混合使用对称加密和非对称加密。先使用非对称加密技术对对称秘钥进行安全传输,然后使用对称加密技术进行安全传输,然后使用对称加密技术进行信息加密解密与交换。而有时对同一个数据两次使用非对称加密,可同时实现安全传输与数字签名的目的。(常用的非对称加密技术有RSA算法等,https传输中浏览器使用的数字证书实质上是经过权威机构认证的非对称加密的公钥。

     

    文章来源:大型网站技术架构核心原理与案例分析(李智慧),百度百科资料即其他博主的博客。转载请标明出处。    

     

    展开全文
  • 信息加密技术简介

    千次阅读 2018-03-27 11:44:48
    信息加密技术简介 随着互联网的快速发展,计算机信息的保密问题显得越来越重要。数据保密变换,或密码技术,是对计算机信息进行保护的最实用和最可靠的方法,本文拟对信息加密技术作一简要介绍。一、信息加密概述 ...

    信息加密技术简介

    随着互联网的快速发展,计算机信息的保密问题显得越来越重要。数据保密变换,或密码技术,是对计算机信息进行保护的最实用和最可靠的方法,本文拟对信息加密技术作一简要介绍。

    一、信息加密概述

    密码学是一门古老而深奥的学科,它对一般人来说是莫生的,因为长期以来,它只在很少的范围内,如军事、外交、情报等部门使用。计算机密码学是研究计算机信息加密、解密及其变换的科学,是数学和计算机的交义学科,也是一门新兴的学科。随着计算机网络和计算机通讯技术的发展,计算机密码学得到前所未有的重视并迅速普及和发展起来。在国外,它已成为计算机安全主要的研究方向,也是计算机安全课程教学中的主要内容。

    密码是实现秘密通讯的主要手段,是隐蔽语言、文字、图象的特种符号。凡是用特种符号按照通讯双方约定的方法把电文的原形隐蔽起来,不为第三者所识别的通讯方式称为密码通讯。在计算机通讯中,采用密码技术将信息隐蔽起来,再将隐蔽后的信息传输出去,使信息在传输过程中即使被窃取或载获,窃取者也不能了解信息的内容,从而保证信息传输的安全。

    任何一个加密系统至少包括下面四个组成部分:

    (1)、未加密的报文,也称明文。

    (2)、加密后的报文,也称密文。

    (3)、加密解密设备或算法。

    (4)、加密解密的密钥。

    发送方用加密密钥,通过加密设备或算法,将信息加密后发送出去。接收方在收到密文后,用解密密钥将密文解密,恢复为明文。如果传输中有人窃取,他只能得到无法理解的密文,从而对信息起到保密作用。

    二、密码的分类

    从不同的角度根据不同的标准,可以把密码分成若干类。

    (一)按应用技术或历史发展阶段划分:

    1. 手工密码。以手工完成加密作业,或者以简单器具辅助操作的密码,叫作手工密码。第一次世界大战前主要是这种作业形式。
    2. 机械密码。以机械密码机或电动密码机来完成加解密作业的密码,叫作机械密码。这种密码从第一次世界大战出现到第二次世界大战中得到普遍应用。
    3. 电子机内乱密码。通过电子电路,以严格的程序进行逻辑运算,以少量制乱元素生产大量的加密乱数,因为其制乱是在加解密过程中完成的而不需预先制作,所以称为电子机内乱密码。从五十年代末期出现到七十年代广泛应用。
    4. 计算机密码,是以计算机软件编程进行算法加密为特点,适用于计算机数据保护和网络通讯等广泛用途的密码。

    (二)按保密程度划分:

    1. 理论上保密的密码。不管获取多少密文和有多大的计算能力,对明文始终不能得到唯一解的密码,叫作理论上保密的密码。也叫理论不可破的密码。如客观随机一次一密的密码就属于这种。
    2. 实际上保密的密码。在理论上可破,但在现有客观条件下,无法通过计算来确定唯一解的密码,叫作实际上保密的密码。
    3. 不保密的密码。在获取一定数量的密文后可以得到唯一解的密码,叫作不保密密码。如早期单表代替密码,后来的多表代替密码,以及明文加少量密钥等密码,现在都成为不保密的密码。

    (三)、按密钥方式划分:

    1. 对称式密码。收发双方使用相同密钥的密码,叫作对称式密码。传统的密码都属此类。
    2. 非对称式密码。收发双方使用不同密钥的密码,叫作非对称式密码。如现代密码中的公共密钥密码就属此类。

    (四)按明文形态:

    1. 模拟型密码。用以加密模拟信息。如对动态范围之内,连续变化的语音信号加密的密码,叫作模拟式密码。
    2. 数字型密码。用于加密数字信息。对两个离散电平构成0、1二进制关系的电报信息加密的密码叫作数字型密码。

    (五)按编制原理划分:

    可分为移位、代替和置换三种以及它们的组合形式。古今中外的密码,不论其形态多么繁杂,变化多么巧妙,都是按照这三种基本原理编制出来的。移位、代替和置换这三种原理在密码编制和使用中相互结合,灵活应用。

    三、近代加密技术

    (一)、数据加密标准

    数据加密标准(DES)是美国经长时间征集和筛选后,于1977年由美国国家标准局颁布的一种加密算法。它主要用于民用敏感信息的加密,后来被国际标准化组织接受作为国际标准。DES主要采用替换和移位的方法加密。它用56位密钥对64位二进制数据块进行加密,每次加密可对64位的输入数据进行16轮编码,经一系列替换和移位后,输入的64位原始数据转换成完全不同的64位输出数据。DES算法仅使用最大为64位的标准算术和逻辑运算,运算速度快,密钥生产容易,适合于在当前大多数计算机上用软件方法实现,同时也适合于在专用芯片上实现。

    DES主要的应用范围有:

    1. 计算机网络通信:对计算机网络通信中的数据提供保护是DES的一项重要应用。但这些被保护的数据一般只限于民用敏感信息,即不在政府确定的保密范围之内的信息。
    2. 电子资金传送系统:采用DES的方法加密电子资金传送系统中的信息,可准确、快速地传送数据,并可较好地解决信息安全的问题。
    3. 保护用户文件:用户可自选密钥对重要文件加密,防止未授权用户窃密。
    4. 用户识别:DES还可用于计算机用户识别系统中。

    DES是一种世界公认的较好的加密算法。自它问世20多年来,成为密码界研究的重点,经受住了许多科学家的研究和破译,在民用密码领域得到了广泛的应用。它曾为全球贸易、金融等非官方部门提供了可靠的通信安全保障。但是任何加密算法都不可能是十全十美的。它的缺点是密钥太短(56位),影响了它的保密强度。此外,由于DES算法完全公开,其安全性完全依赖于对密钥的保护,必须有可靠的信道来分发密钥。如采用信使递送密钥等。因此,它不适合在网络环境下单独使用。

    针对它密钥短的问题,科学家又研制了 80位的密钥,以及在DES的基础上采用三重DES和双密钥加密的方法。即用两个56位的密钥K1、K2,发送方用K1加密,K2解密,再使用K1加密。接收方则使用K1解密,K2加密,再使用K1解密,其效果相当于将密钥长度加倍。

    (二)国际数据加密算法

    国际数据加密算法 IDEA是瑞士的著名学者提出的。它在1990年正式公布并在以后得到增强。这种算法是在DES算法的基础上发展出来的,类似于三重DES。发展IDEA也是因为感到DES具有密钥太短等缺点,已经过时。IDEA的密钥为128位,这么长的密钥在今后若干年内应该是安全的。

    类似于 DES,IDEA算法也是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。与DES的不同处在于,它采用软件实现和采用硬件实现同样快速。

    由于 IDEA是在美国之外提出并发展起来的,避开了美国法律上对加密技术的诸多限制,因此,有关IDEA算法和实现技术的书籍都可以自由出版和交流,可极大地促进IDEA的发展和完善。但由于该算法出现的时间不长,针对它的攻击也还不多,还未经过较长时间的考验。因此,尚不能判断出它的优势和缺陷。

    (三) clipper加密芯片

    密码虽然可为私人提供信息保密服务,但是它首先是维护国家利益的工具。正是基于这个出发点,考虑到 DES算法公开后带来的种种问题,美国国家保密局(NSA)从1985年起开始着手制定新的商用数据加密标准,以取代DES。1990年开始试用,1993年正式使用,主要用于通信交换系统中电话、传真和计算机通信信息的安全保护。

    新的数据加密标准完全改变了过去的政策,密码算法不再公开,对用户提供加密芯片( clipper)和硬件设备。新算法的安全性远高于DES,其密钥量比DES多1000多万倍。据估算,穷举破译至少需要10亿年。为确保安全,clipper芯片由一个公司制造裸片,再由另一公司编程后方可使用。

    由于完全是官方的封闭控制,该算法除可提供高强度的密码报密外,还可对保密通信进行监听,以防止不法分子利用保密通信进行非法活动,但这种监听是在法律允许的范围内进行的。官方控制也成为美国民间反对该方案的一个重要原因。

    Clipper芯片主要用于商业活动的计算机通信网。NSA同时在着手进行政府和军事通信网中数据加密芯片的研究,并作为clipper的换代产品。它除了具有clipper的全部功能外,还将实现美国数字签名标准(DSS)和保密的哈稀函数标准以及用纯噪声源产生随机数据的算法等。

    (四)公开密钥密码体制

    传统的加密方法是加密、解密使用同样的密钥,由发送者和接收者分别保存,在加密和解密时使用,采用这种方法的主要问题是密钥的生成、注入、存储、管理、分发等很复杂,特别是随着用户的增加,密钥的需求量成倍增加。在网络通信中,大量密钥的分配是一个难以解决的问题。

    例如,若系统中有 n 个用户,其中每两个用户之间需要建立密码通信,则系统中每个用户须掌握 (n-1)/2 个密钥,而系统中所需的密钥总数为 n*(n-1)/2 个。对 10 个用户的情况,每个用户必须有 9 个密钥,系统中密钥的总数为 45 个。对 100 个用户来说,每个用户必须有 99 个密钥,系统中密钥的总数为 4950 个。这还仅考虑用户之间的通信只使用一种会话密钥的情况。如此庞大数量的密钥生成、管理、分发确实是一个难处理的问题。

    本世纪 70 年代,美国斯坦福大学的两名学者迪菲和赫尔曼提出了一种新的加密方法 -- 公开密钥加密队 PKE 方法。与传统的加密方法不同,该技术采用两个不同的密钥来对信息加密和解密,它也称为 “ 非对称式加密方法”。每个用户有一个对外公开的加密算法 E 和对外保密的解密算法 D ,

    它们须满足条件:

    1. D 是 E 的逆,即 D[E ( X ) ]=X ;
    2. E 和 D 都容易计算;
    3. 由 E 出发去求解 D 十分困难。

    从上述条件可看出,公开密钥密码体制下,加密密钥不等于解密密钥。加密密钥可对外公开,使任何用户都可将传送给此用户的信息用公开密钥加密发送,而该用户唯一保存的私人密钥是保密的,也只有它能将密文复原、解密。虽然解密密钥理论上可由加密密钥推算出来,但这种算法设计在实际上是不可能的,或者虽然能够推算出,但要花费很长的时间而成为不可行的。所以将加密密钥公开也不会危害密钥的安全。

    数学上的单向陷门函数的特点是一个方向求值很容易,但其逆向计算却很困难。许多形式为 Y=f ( x )的函数,对于给定的自变量 x 值,很容易计算出函数 Y 的值;而由给定的 Y 值,在很多情况下依照函数关系 f(x) 计算 x 值十分困难。例如,两个大素数 p 和 q 相乘得到乘积 n 比较容易计算,但从它们的乘积 n 分解为两个大素数 p 和 q 则十分困难。如果 n 为足够大,当前的算法不可能在有效的时间内实现。

    正是基于这种理论, 1978 年出现了著名的 RSA 算法。这种算法为公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对 RSA 密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度, RSA 密钥至少为 500 位长,一般推荐使用 1024 位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的 DES 或 IDEA 对话密钥加密,然后使用 RSA 密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。

    RSA 算法的加密密钥和加密算法分开,使得密钥分配更为方便。它特别符合计算机网络环境。对于网上的大量用户,可以将加密密钥用电话簿的方式印出。如果某用户想与另一用户进行保密通信,只需从公钥簿上查出对方的加密密钥,用它对所传送的信息加密发出即可。对方收到信息后,用仅为自己所知的解密密钥将信息脱密,了解报文的内容。由此可看出, RSA 算法解决了大量网络用户密钥管理的难题。

    RSA 并不能替代 DES ,它们的优缺点正好互补。 RSA 的密钥很长,加密速度慢,而采用 DES ,正好弥补了 RSA 的缺点。即 DES 用于明文加密, RSA 用于 DES 密钥的加密。由于 DES 加密速度快,适合加密较长的报文;而 RSA 可解决 DES 密钥分配的问题。美国的保密增强邮件( PEM )就是采用了 RSA 和 DES 结合的方法,目前已成为 E-MAIL 保密通信标准。

    四、网络通信安全措施

    对于网络通信,可采用以下两种具体措施进行加密传输。这些措施的加、解密功能都可以采用上述算法实现:

    ( 1 )链路加密

    链路加密是传输数据仅在物理层前的数据链路层进行加密。接收方是传送路径上的各台节点机,信息在每台节点机内都要被解密和再加密,依次进行,直至到达目的地。

    使用链路加密装置能为某链路上的所有报文提供传输服务。即经过一台节点机的所有网络信息传输均需加、解密,每一个经过的节点都必须有密码装置,以便解密、加密报文。如果报文仅在一部分链路上加密而在另一部分链路上不加密,则相当于未加密,仍然是不安全的。与链路加密类似的节点加密方法,是在节点处采用一个与节点机相连的密码装置(被保护的外围设备), 密文在该装置中被解密并被重新加密,明文不通过节点机,避免了链路加密关节点处易受攻击的缺点。

    ( 2 )端 - 端加密

    端 - 端加密是为数据从一端传送到另一端提供的加密方式。数据在发送端被加密,在最终目的地(接收端)解密,中间节点处不以明文的形式出现。

    采用端 - 端加密是在应用层完成,即传输前的高层中完成。除报头外的的报文均以密文的形式贯穿于全部传输过程。只是在发送端和最终端才有加、解密设备,而在中间任何节点报文均不解密,因此,不需要有密码设备。同链路加密相比,可减少密码设备的数量。另一方面,信息是由报头和报文组成的,报文为要传送的信息,报头为路由选择信息。由于网络传输中要涉及到路由选择,在链路加密时,报文和报头两者均须加密。而在端 -- 端加密时,由于通道上的每一个中间节点虽不对报文解密,但为将报文传送到目的地,必须检查路由选择信息,因此,只能加密报文,而不能对报头加密。这样就容易被某些通信分析发觉,而从中获取某些敏感信息。

    ( 3 )加密传输方式的比较

    数据保密变换使数据通信更安全,但不能保证在传输过程中绝对不会泄密。因为在传输过程中,还有泄密的隐患。

    采用链路加密方式,从起点到终点,要经过许多中间节点,在每个节点地均要暴露明文(节点加密方法除外),如果链路上的某一节点安全防护比较薄弱,那么按照木桶原理(木桶水量是由最低一块木板决定),虽然采取了加密措施,但整个链路的安全只相当于最薄弱的节点处的安全状况。

    采用端 - 端加密方式,只是发送方加密报文,接收方解密报文,中间节点不必加、解密,也就不需要密码装置。此外,加密可采用软件实现,使用起来很方便。在端 -- 端加密方式下,每对用户之间都存在一条虚拟的保密信道,每对用户应共享密钥(传统密码保密体制,非公钥体制下),所需的密钥总数等于用户对的数目。对于几个用户,若两两通信,共需密钥 n*(n-1)/2 种,每个用户需 (n-1) 种。这个数目将随网上通信用户的增加而增加。为安全起见,每隔一段时间还要更换密钥,有时甚至只能使用一次密钥,密钥的用量很大。

    链路加密,每条物理链路上,不管用户多少,可使用一种密钥。在极限情况下,每个节点都与另外一个单独的节点相连,密钥的数目也只是 n*(n-1)/2 种。这里 n 是节点数而非用户数,一个节点一般有多个用户。

    从身份认证的角度看,链路加密只能认证节点,而不是用户。使用节点 A 密钥的报文仅保证它来自节点 A 。报文可能来自 A 的任何用户,也可能来自另一个路过节点 A 的用户。因此链路加密不能提供用户鉴别。端 -- 端加密对用户是可见的,可以看到加密后的结果,起点、终点很明确,可以进行用户认证。

    总之,链路加密对用户来说比较容易,使用的密钥较少,而端 - 端加密比较灵活,用户可见。对链路加密中各节点安全状况不放心的用户也可使用端 - 端加密方式。

    当然,对于互联网中应用最广泛的WWW服务器的信息加密,最简单又最安全的加密方式是为服务器部署 SSL数字证书,充分利用现有的服务器和客户端软件广泛支持的PKI技术来轻松实现信息加密。

    展开全文
  • JWT登录信息加密

    千次阅读 2018-04-11 17:58:59
    对于传统的单点登录系统,使用cookie和session的方式存储用户登录信息,但是对于安全性要求较高的企业–金融企业,就需要对用户的信息进行加密存储,防止客户信息泄露。 2、JWT构成 JWT—-JSON Web Token ...

    1、背景

    对于传统的单点登录系统,使用cookie和session的方式存储用户登录信息,但是对于安全性要求较高的企业–金融企业,就需要对用户的信息进行加密存储,防止客户信息泄露。

    2、JWT构成

    JWT—-JSON Web Token

    第一部分我们称它为头部(header)

    完整的头部就像下面这样的JSON:
    
    {
    
    "typ": "JWT",  //声明类型,这里是jwt
    
    "alg": "HS256" //声明加密的算法 通常直接使用 HMAC SHA256
    
    }

    第二部分我们称其为载荷(payload)

    载荷就是存放有效信息的地方。
    这个名字像是特指飞机上承载的货品,这些有效信息包含三个部分
    
    标准中注册的声明
    
    公共的声明
    
    私有的声明
    
    标准中注册的声明 (建议但不强制使用) :
    
    iss: jwt签发者
    
    sub: jwt所面向的用户
    
    aud: 接收jwt的一方
    
    exp: jwt的过期时间,这个过期时间必须要大于签发时间
    
    nbf: 定义在什么时间之前,该jwt都是不可用的.
    
    iat: jwt的签发时间
    
    jti: jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击。
    公共的声明 :
    
    公共的声明可以添加任何的信息,一般添加用户的相关信息或其他业务需要的必要信息.但不建议添加敏感信息,因为该部分在客户端可解密.
    
    私有的声明 :
    
    私有声明是提供者和消费者所共同定义的声明,一般不建议存放敏感信息,因为base64是对称解密的,意味着该部分信息可以归类为明文信息。
    
    定义一个payload:
    
    {
    
    "name":"MiChong",
    
    "age":"23",
    
    "org":"天王盖地虎"
    
    } 

    第三部分是签证(signature)

    jwt的第三部分是一个签证信息,这个签证信息由三部分组成:
    
    header (base64后的)
    
    payload (base64后的)
    
    secret
    

    3、Java实现

    添加依赖
            <dependency>
                <groupId>com.auth0</groupId>
                <artifactId>java-jwt</artifactId>
                <version>3.3.0</version>
            </dependency>
    
    加密解密实现
    
    package cn.buildworld.daliy;
    
    import com.auth0.jwt.JWT;
    import com.auth0.jwt.JWTVerifier;
    import com.auth0.jwt.algorithms.Algorithm;
    import com.auth0.jwt.interfaces.Claim;
    import com.auth0.jwt.interfaces.DecodedJWT;
    
    import java.io.UnsupportedEncodingException;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * jwt加密解密工具
     *
     * @Author MiChong
     * @Email: 1564666023@qq.com
     * @Create 2018-04-11 16:16
     * @Version: V1.0
     */
    
    public class JwtToken {
    
    
        /**
         * 公共密钥
         */
        public static final String SECRET = "michong";
    
    
        /**
         * 创建token
         * @return
         * @throws UnsupportedEncodingException
         */
        public static String createToken() throws UnsupportedEncodingException {
    
            //签发时间
            Date date = new Date();
    
            //过期时间- 1分钟过期
            Calendar nowTime = Calendar.getInstance();
            nowTime.add(Calendar.MINUTE,1);
            Date expiresDate = nowTime.getTime();
    
            Map<String,Object> map = new HashMap<>();
            map.put("alg","HS256");
            map.put("typ","JWT");
            String token = JWT.create()
                    .withClaim("name", "michong")
                    //设置过期时间
                    .withExpiresAt(expiresDate)
                    //设置签发时间
                    .withIssuedAt(date)
                    .sign(Algorithm.HMAC256(SECRET));
    
            return token;
        }
    
    
        /**
         * 解密
         * @param token
         * @return
         * @throws UnsupportedEncodingException
         */
        public static Map<String,Claim> verifyToken(String token) throws UnsupportedEncodingException {
    
            JWTVerifier verifier = JWT.require(Algorithm.HMAC256(SECRET))
            .build();
    
            DecodedJWT jwt = null;
    
            try{
    
                //解密
                jwt = verifier.verify(token);
    
            }catch (Exception e){
                throw new RuntimeException("token已经失效");
            }
    
            return jwt.getClaims();
    
        }
    
    }
    
    

    四、测试

    public class Auth0WithJWT {
        public static void main(String[] args) throws UnsupportedEncodingException {
    
            String token = JwtToken.createToken();
            System.out.println(token);
    
            Map<String, Claim> stringClaimMap = JwtToken.verifyToken(token);
            System.out.println(stringClaimMap.get("name").asString());
        }
    }
    结果

    展开全文
  • 信息加密系统概述

    千次阅读 2008-08-02 16:36:00
    一.系统预览1. 系统的主界面,见下图 2. 系统的菜单栏说明:1) 文件菜单:包含两个子菜单,DES文件加密,DES文件解密。...3) 算法演示说明:RSA信息加密解密,AES文件加密与解密,大文件加密与解密4) 数字签
  • 加密

    千次阅读 2012-06-23 07:46:52
    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://joshuafan.blogbus.com/logs/10767265.html 私钥加密(对称加密 symmetric cryptography):私钥加密算法使用单个私钥来加密和...
  • 某互联网金融公司程序员做登录验证,先来一发md5加密,然后就自豪的说我的登录是加密的,外人无法破解,绝对保障用户的信息安全。事后博主发现,my gold,全站http协议,仅仅登录使用了md5加密。 ps: 偷偷笑...  ...
  • 加密芯片、专有电子钥匙、硬盘一一对应到一起时,加密芯片将把加密芯片信息、专有钥匙信息、硬盘信息进行对应并做加密运算,同时写入硬盘的主分区表。 2、软件加密就是用户在发送信息前,先调用信息安全模块对...
  • 对称加密和非对称加密什么

    千次阅读 2019-12-28 19:48:41
    在当今的网络世界中,存在着未经...风险最大的是财务和支付系统数据,这些数据可能会暴露客户和客户的个人识别信息(PII)或支付卡详细信息加密对于保护PII和减轻进行支付交易的企业每天每一分钟面临的风险至关重要。
  • Discuz 用户信息加密算法

    千次阅读 2007-06-23 19:51:00
    Discuz论坛是国内广泛使用的开源论坛,论坛的安全体系构筑严谨,尤其是对用户信息加密的部分。 用户信息包括用户名、密码、所属组别等,这些信息经过加密并保存在Cookie里面 ,服务器端读取Cookie信息,并解迷。 ...
  • 信息安全技术及应用 常规加密技术

    千次阅读 2016-06-21 11:36:52
    一、密码技术与常规加密概述1.1 密码...明文:加密变换前的原始信息加密算法:加密变换时使用的算法。 密文:经过加密变换后的信息。 解密算法:解密变换时使用的算法,是加密算法的逆过程。加密和解密算法是相
  • 如何对网站信息进行加密

    千次阅读 2019-09-18 06:43:41
    网站信息加密已经成为网站安全的最低标准了,对用户数据进行加密,以保证用户数据不被泄漏,是对你的客户最起码的尊重。那么应该采用哪一种技术来去实现网站信息加密呢?答案是HTTPS,HTTPS是网站信息加密的最佳实现...
  • 信息安全之公钥私钥加密解密

    千次阅读 2017-10-13 17:39:33
    信息安全之公钥私钥加密解密公钥与私钥(是通过一种算法得到的一个密钥对,公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。通过这种...
  • 非对称加密,与对称加密的算法是有所不同的,非对称加密算法需要两个密钥,即公开密钥和私有密钥,非对称加密算法在加密和解密过程使用了不同的密钥,非对称密钥也称为公钥加密,在密钥对中,其中一个密钥是对外公开...
  • 通常,为了保护网站的敏感数据,应用需要对这些信息进行加密处理,信息加密技术可分为三类:单项散列加密、对称加密和非对称加密。今天小弟就介绍下关于三种常用信息加密技术:单向散列加密、对称加密、非对称加密...
  • 数据加密过程就是通过加密系统把原始的数字信息(明文),按照加密算法变换成与明文完全不同的数字信息(密文)的过程,如下图所示。 screen.width-screen.width*0.4)this.width=screen.width-screen.width*0.4" ...
  • 网络信息安全第二讲 信息加密技术基础 一 信息加密理论基础 1.信息熵基本知识 信息熵(information entropy)是对信息状态“无序”与“不确定”的度量(从本质上讲,熵不是对信息的度量,但信息的增加而使产生的熵...
  • jasypt是国外开发者(@author Daniel Fernández)写的一个对PropertySource资源进行加密保护的依赖工具。我们可以使用其来对一些敏感信息(如:配置文件中的各种账号密码)进行加密保护。 jasypt原理及加解密密钥位置...
  • 什么加密货币?

    千次阅读 2019-08-12 09:25:45
    加密货币是一种可交易的数字资产或数字形式的货币,建立在仅在线存在的区块链技术之上。加密货币使用加密来验证和保护交易,这就是它名字的由来。目前世界上有超过一千种不同的加密货币,很多人认为它们是更公平的...
  • 将文字信息加密到图像中

    千次阅读 2018-11-26 10:49:28
    首先请大家看两张图片,一定要擦亮眼睛呦呦呦---&gt;   ... 我想即使擦亮了您那钛合金闪闪发亮的...其实我是将一段文字信息隐藏在了第二张图片中,到底是隐藏了什么,下面会提到。  整个程序用到了pytho...
  • 信息加密技术及密钥安全管理

    万次阅读 2016-05-24 12:07:59
     单向散列加密是通过对不同输入长度的信息进行散列计算,得到固定长度的输出,单向的(不可逆)。  用户的密码通过此加密将密文存在数据库当中,登录时根据用户输入的密码进行加密后与数据库中的密文进行对比。  ...
  • c# 读取硬件信息并进行加密绑定

    千次阅读 2018-12-13 15:51:41
    磁盘信息包括插入的移动硬盘或U盘,如果将此信息也绑定,那么插入外部存储设备比如U盘的时候会误导加密程序。2.加密和解密采用通用的加密算法,需要添加用户自己的字段参与运算以增加加密可靠性,此例程中采用...
  • 漫谈数据保护和个人信息加密

    千次阅读 2018-05-27 09:07:59
    相信诸位同学最近收到了不少大厂的Privacy Update类似的消息吧,没错,前两天,也就是...且不论GDPR的具体执行效率如何,我们先探讨一下数据保护的话题,数据保护问题由来已久,而加密就是常见的手段,但是有加密,...
  • 加密利器——加密狗

    千次阅读 热门讨论 2016-01-22 14:24:33
    加密狗是外形酷似U盘的一种硬件设备,正名加密锁,后来发展成如今的一个软件保护的通俗行业名词,"加密狗"是一种插在计算机并行口上的软硬件结合的加密产品(新型加密狗也有usb口的)。 加密狗通过在软件执行过程...
  • 对称加密算法  Blowfish 加密解密 Blowfish 加密算法介绍:BlowFish是对称加密算法的其中一种,加密后的数据是可逆的。由于BlowFish加密/解密速度快,更重要的是任何人都可以免费使用不需要缴纳版权费,所以有...
  • 前端时间有研究多款加密芯片,加密算法实现,以及破解可能,也有一些个人的观点,仅供参考; 一,加密芯片的来源及工作流程: 市面上的加密芯片,基本都是基于某款单片机,使用I2C或SPI等通讯,使用复杂加密算法...
  • 关于SDP中协商SRTP加密信息

    千次阅读 2018-04-21 16:36:58
    字段用于描述加密信息,格式如下: a=crypto:&lt;tag&gt; &lt;crypto-suite&gt; &lt;key-params&gt; [&lt;session-params&gt;]其中: l tag为十进制数字,用于标...
  • 信息安全技术——加密解密

    千次阅读 2018-01-30 09:43:40
    加密的消息是明文,用 M 表示,加密的消息是密文,用C 表示。  C=E(M)表示加密,M=D(C)表示解密 密钥:C=E{k}(M),M=D{k}(C)  对称与不对称加密  若等式 M=D{k1}(E{k1}(M)成立,加密和解密...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 377,200
精华内容 150,880
关键字:

信息的加密包括什么