网络数据加密

一下是我整理的数据加密的一些基础知识,囊括数据加密的所有种类概括以及大部分常用数据加密的介绍;

前提:

加密技术是电子商务采取的主要安全保密措施,是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术的应用是多方面的,但最为广泛的还是在电子商务和VPN上的应用,深受广大用户的喜爱。

分类:

一、按照加密时对明文的处理方式,密码算法可分为序列密码和分组密码算法.

1、序列密码算法是对明文消息按字符逐位进行处理,它利用少量的密钥通过某种复杂的运算产生大量的伪随机位流,用于对明文位流的加密;密钥在每次使用之前必须更换,一般存储在密码设备内部或是从外部输入密码设备的;它的优点在于运算速度快,适合干线信息加密:其缺点是密钥变换过于频繁,密钥分配较难,密钥同步问题严重。

2、分组密码算法是把密文分成等长的组分别加密,由于它适应了网络数据成块处理的需要以及易于解决密码同步问题,成为了商用密码的主流。

二、按照加解密时密钥是否相同来分类,可以将加密算法分为对称密码算法(或称单钥制密码算法)和公钥制密码算法Hash算法.

1、对称算法在日称密码算法中,收信方和发信方使用相同的密钥(简称密钥).即加密密钥和解密密钥是相同或等价的.比较著名的对称密码算法是美国的DES及其各种变形,比如DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6、AESTriple、FEAL-N、LOKI-91、Skipjack等。对称密码的缺点是密钥分配问题严重,因为它需要一个单独的安全信道,对N个用户相互通信而言,需要N(N-1)/2组密钥。

AES

随着对称密码的发展,DES数据加密标准算法由于密钥长度较小(56位),已经不适应当今分布式开放网络对数据加密安全性的要求,因此1997年NIST公开征集新的数据加密标准,即AES[1]。经过三轮的筛选,比利时Joan
Daeman和VincetRijmen提交的Rijndael算法被提议为AES的最终算法。此算法将成为美国新的数据加密标准而被广泛应用在各个领域中。尽管人们对AES还有不同的看法,但总体来说,AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。

BLOWFISH

BlowFish算法用来加密64Bit长度的字符串。

BlowFish算法使用两个“盒”——ungigned long
pbox[18]和unsigned long sbox[4,256]。

BlowFish算法中,有一个核心加密函数:BF_En(后文详细介绍)。该函数输入64位信息,运算后,
以64位密文的形式输出。 用BlowFish算法加密信

息,需要两个过程: 1.密钥预处理  
2.信息加密

DES

数据加密算法(Data
Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初

开发的DEA是嵌入硬件中的。通常,自动取款机(Automated Teller
Machine,ATM)都使用DEA。它出自IBM的研究工作,IBM也曾对它拥有几年的专利

权,但是在1983年已到期后,处于公有范围中,允许在特定条件下可以免除专利使用费而使用。1977年被美国政府正式采纳。

还有DES2和DES3等算法。

3DES

3DES(即Triple
DES)是DES向AES过渡的加密算法,它使用3条64位的密钥对数据进行三次加密。是DES的一个更安全的变形。它以DES为基本模块,通

过组合分组方法设计出分组加密算法。比起最初的DES,3DES更为安全。

RC2

RC2是由著名密码学家Ron
Rivest设计的一种传统对称分组加密算法,它可作为DES算法的建议替代算法。它的输入和输出都是64比特。密钥的长度是

从8字节到128字节可变,但目前的实现是8字节(1998年)。

RC4

RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ron
Rivest在1987年设计的密钥长度可变的流加密算法簇。之所以称其为簇,是由于其核心部分的

S-box长度可为任意,但一般为256字节。该算法的速度可以达到DES加密的10倍左右,且具有很高级别的非线性。RC4起初是用于保护商业机密的。但

是在1994年9月,它的算法被发布在互联网上,也就不再有什么商业机密了。RC4也被叫做ARC4(Alleged
RC4——所谓的RC4),因为RSA从来就没有

正式发布过这个算法。

RC5

RC5密码是1994由麻萨诸塞技术研究所的RonaldL.Rivest教授发明的。它是一种非常快速且简单的算法由块尺寸,轮数,和密钥长度参数化。这些参数

能被调整以满足不同的安全目的,性能和出口能力。合并的RSA数据安全已经归档了RC5密码的专利的申请和RC5,RC5-CBC,RC5-CBC-Pad,RC5-CTS并

分类了各种变更

ECDSA

椭圆曲线数字签名算法(ECDSA)设计的数学原理是基于椭圆曲线离散对数问题的难解性。EC点上离散对数的研究现状表明:所使用的ECDSA密钥至少需

要192比特,才能保证有足够的中长期安全。

SKIPJACK

Skipjack分组加密算法是由美国国家安全局(NSA)从1985年开始设计,1990年完成评估,于1993年由美国政府正式对外宣布的,是"Capstone"(美国政

府根据1987年国会通过的计算机安全法案所订立的长远计划)中的一个项目(另外三个项目分别是数字签名标准(DSA)、安全散列函数(SHA)及密钥交换

方法)。Skipjack算法曾经被列为“机密”等级。

2、在公钥密码中,收信方和发信方使用的密钥互不相同,而且几乎不可能由解密密钥(简称公钥)推导出加密密钥(简称私钥)。比较著名的公钥密码算法有:RSA、McEliece密码、Diffe-Hcllman、Rabin、Ong-Fiat
Shamir、零知识证明的算法、ECC、EIGamal算法等公钥制密码算法的优点在于它密钥分配很方便.不需要单独的安全密钥信道,并且N个用户相互通信时只要N组密钥(公钥和私钥),从公钥到私钥的过程是不可逆的。同时它还具有身份的认证性,可满足当前数字签名等认证的需受.例如RSA
DSA(数字签名)

RSA

RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA公钥加密算法是1977年由Ron
Rivest、Adi Shamirh和LenAdleman在(美

国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,

已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困

难,因此可以将乘积公开作为加密密钥。

DSA

Digital
Signature Algorithm
(DSA)是Schnorr和ElGamal签名算法的变种,被美国NIST(美国国家标准局)作为数字签名标准(DigitalSignature

Standard)。同样属于公匙密码体系,并使用Secure Hash Algorithm(SHA/SHA-1)作为中间单向计算算法。

DH

Diffie-Hellman算法(D-H算法),密钥一致协议。是由公开密钥密码体制的奠基人Diffie和Hellman所提出的一种思想。简单的说就是允许两名用户在

公开媒体上交换信息以生成"一致"的、可以共享的密钥。换句话说,就是由甲方产出一对密钥(公钥、私钥),乙方依照甲方公钥产生乙方密钥对

(公钥、私钥)。以此为基线,作为数据传输保密基础,同时双方使用同一种对称加密算法构建本地密钥(SecretKey)对数据加密。这样,在互通了

本地密(SecretKey)算法后,甲乙双方公开自己的公钥,使用对方的公钥和刚才产生的私钥加密数据,同时可以使用对方的公钥和自己的私钥对数据

解密。不单单是甲乙双方两方,可以扩展为多方共享数据通讯,这样就完成了网络交互数据的安全通讯!该算法源于中国的同余定理—中国馀数定理

ECC

2000年10月,国际密码学界在德国ESSEN召开了学术大会(ECC2000),在这次会议上,来自世界各国的密码学家、数学家证明了对ECC算法的最快破解

效率是高于亚指数级的,而RSA算法的最快破解效率是亚指数级的。ECC2000的召开进一步从学术上奠定了ECC算法的安全性,极大的推动了它在世界各

国的应用。

3、HASH 算法:HASH算法是一种单向算法。通过单项三列函数,一类特殊的加密算法,一般用来认证,输入变长的数据可获得定长的输出,输入数据发生变化输出数据立即发生变化。通过特定HASH算法可以对原始数据生成特定的HASH值数据,但是反向不可逆的;例如MD5
,主要用于密码存储。例如各大型门户网站存储的用户密码的数据形式应该是HASH算法之后的形式。有:MD5、RSA、MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1

SHA

SHA(即Secure
Hash Algorlthm,安全散列算法)是一种常用的数据加密算法.它由美国国家标准与技术局(Natlonal Instituteof Standards
and

Technology)于1993年作为联邦信息处理标准公布(即第一代SHA算法——SHA-0)。在1995年和2002年.其改进版本SHA-1、SHA-2也分别正式公布

(SHA-1和SHA-2具有比SHA-0更高的安全性)。SHA算法与MD5算法的设计原理类似.同样也按2blt数据块为单位来处理输入

SHA-1

SHA-1杂凑算法起初是针对DSA算法而设计的,其设计原理与Ron
Rivest提出的MD2,MD4,尤其是MD5杂凑函数的设计原理类似。

MD2

Rivest在1989年开发出MD2算法。在这个算法中,首先对信息进行数据补位,使信息的字节长度是16的倍数。然后,以一个16位的检验和追加到信息

末尾。并且根据这个新产生的信息计算出散列值。后来,Rogier和Chauvaud发现如果忽略了检验将和MD2产生冲突。MD2算法加密后结果是唯一

的-----即没有重复。

MD4

MD4是麻省理工学院教授Ronald
Rivest于1990年设计的一种信息摘要算法。它是一种用来测试信息完整性的密码散列函数的实行。其摘要长度为128

位。这个算法影响了后来的算法如MD5、SHA 家族和RIPEMD等。

MD5

MD5的全称是Message-Digest
Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for ComputerScience和RSA Data
Security Inc的

Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。

HAMC

HAMC是密钥相关的哈希运算消息认证码(keyed-Hash Message
Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成

一个消息摘要作为输出。HMAC引擎提供HMAC运算功能,发挥两方面的作用:

(1)验证TPM接受的授权数据和认证数据;   

(2)确认TPM接受到的命令请求是已授权的请求,并且,命令在传送的过程中没有被改动过。

HMAC_SHA1

HMAC_SHA1(Hashed Message
Authentication Code, Secure Hash Algorithm)是一种安全的基于加密hash函数和共享密钥的消息认证协议。它可以有

效地防止数据在传输过程中被截获和篡改,维护了数据的完整性、可靠性和安全性。HMAC_SHA1消息认证机制的成功在于一个加密的hash函数、一个加

密的随机密钥和一个安全的密钥交换机制。HMAC_SHA1 其实还是一种散列算法,只不过是用密钥来求取摘要值的散列算法。

HMAC_SHA1算法在身份验证和数据完整性方面可以得到很好的应用,在目前网络安全也得到较好的实现

三、 除了以上几类密码外,近些年米,国内外还在研究的多种其他新型密码,

如量子密码(Quantum
Cryptography).热流密码(Heat Flow Cryptography).混沌密码(Chaos Cryptography)和图视密码(Visual
Cryptography)。

这些都还处于预研段,特别是其安全性和可靠性需要研究.离实用尚有距离.

时间: 2024-10-10 02:08:02

网络数据加密的相关文章

iOS开发——网络编程OC篇&总结

网络开发总结 一.一个HTTP请求的基本要素 1.请求URL:客户端通过哪个路径找到服务器 2.请求参数:客户端发送给服务器的数据 * 比如登录时需要发送的用户名和密码 3.返回结果:服务器返回给客户端的数据 * 一般是JSON数据或者XML数据 二.基本的HTTP请求的步骤(移动客户端)1.拼接"请求URL" + "?" + "请求参数" * 请求参数的格式:参数名=参数值 * 多个请求参数之间用&隔开:参数名1=参数值1&参数

iOS开发 - 网络数据安全加密(MD5)

提交用户的隐私数据 一定要使用POST请求提交用户的隐私数据GET请求的所有参数都直接暴露在URL中请求的URL一般会记录在服务器的访问日志中服务器的访问日志是黑客攻击的重点对象之一 用户的隐私数据登录密码银行账号- - 数据安全 仅仅用POST请求提交用户的隐私数据,还是不能完全解决安全问题可以利用软件(比如Charles)设置代理服务器,拦截查看手机的请求数据因此:提交用户的隐私数据时,一定不要明文提交,要加密处理后再提交 常见的加密算法 <code class="hljs tex&q

一个最简单的通过WireShark破解SSL加密网络数据包的方法

原文地址: http://article.yeeyan.org/view/530101/444688 一般来说,我们用WireShark来抓取包进行分析是没有多大问题的.但这里有个问题是,如果你碰到的是用SSL/TLS等加密手段加密过的网络数据的时候,往往我们只能束手无策.在过去的话,如果我们拥有的该传输会话的私钥的话我们还是可以将它提供给WireShark来让其对这些加密数据包进行解密的 1. 简介 相信能访问到这篇文章的同行基本上都会用过流行的网络抓包工具WireShark,用它来抓取相应的

iOS 数据加密方案

提交用户的隐私数据 一定要使用POST请求提交用户的隐私数据GET请求的所有参数都直接暴露在URL中请求的URL一般会记录在服务器的访问日志中服务器的访问日志是黑客攻击的重点对象之一 用户的隐私数据登录密码银行账号- - 数据安全 仅仅用POST请求提交用户的隐私数据,还是不能完全解决安全问题可以利用软件(比如Charles)设置代理服务器,拦截查看手机的请求数据因此:提交用户的隐私数据时,一定不要明文提交,要加密处理后再提交 常见的加密算法 MD5 \ SHA \ DES \ 3DES \ R

网络HTTP、JSON、XML解析等 复习

一.一个HTTP请求的基本要素1.请求URL:客户端通过哪个路径找到服务器 2.请求参数:客户端发送给服务器的数据* 比如登录时需要发送的用户名和密码 3.返回结果:服务器返回给客户端的数据* 一般是JSON数据或者XML数据 二.基本的HTTP请求的步骤(移动客户端)1.拼接"请求URL" + "?" + "请求参数"* 请求参数的格式:参数名=参数值* 多个请求参数之间用&隔开:参数名1=参数值1&参数名2=参数值2* 比如:

发现新大陆:一个最简单的破解SSL加密网络数据包的方法

1. 简介 相信能访问到这篇文章的同行基本上都会用过流行的网络抓包工具WireShark,用它来抓取相应的网络数据包来进行问题分析或者其他你懂的之类的事情. 一般来说,我们用WireShark来抓取包进行分析是没有多大问题的.但这里有个问题是,如果你碰到的是用SSL/TLS等加密手段加密过的网络数据的时候,往往我们只能束手无策.在过去的话,如果我们拥有的该传输会话的私钥的话我们还是可以将它提供给WireShark来让其对这些加密数据包进行解密的,但这已经是想当年还用RSA进行网络数据加密的年代的

我的Android进阶之旅------&gt;Android采用AES+RSA的加密机制对http请求进行加密

前言 未加密的抓包截图 加密之后的抓包截图 基本需求及概念 AES算法 AES基本原理及算法流程 AES算法流程 RSA算法 RSA算法基本原理及流程 RSA算法实现流程 AES与RSA相结合数据加密方案 Android端 AESRSA结合实践 基本要求 基本流程 Android端 服务器端 java版示例 更多参考 前言 最近维护公司APP应用的登录模块,由于测试人员用Fiddler抓包工具抓取到了公司关于登录时候的明文登录信息.虽然使用的是HTTPS的方式进行http请求的,但还是被Fidd

史上最全的IOS电子书PDF制作

本人背靠海量纸质图书,可以制作各种纸质书籍的电子化,有需要可以Q:1481449626 <iOS编程 第3版 针对Xcode 4.3 Big Nerd Ranch培训系列>作者:JoeConway,AaronHillegass著:夏伟频译 页数:589 出版社:武汉市:华中科技大学出版社 出版日期:2013.01 简介:<iOS编程(第3版)>更新了iOS5和Xcode4.3的内容.全书涵盖了开发iOS应用的方方面面.从Objective-C基础知识到新增加的语言特性:从AppKi

Androidhttp请求加密机制详解

Android开发中,难免会遇到需要加解密一些数据内容存到本地文件.或者通过网络传输到其他服务器和设备的问题,但并不是使用了加密就绝对安全了,如果加密函数使用不正确,加密数据很容易受到逆向破解攻击.还有很多开发者没有意识到的加密算法的问题. 1.需要了解的基本概念 密码学的三大作用:加密( Encryption).认证(Authentication),鉴定(Identification) 加密:防止坏人获取你的数据. 鉴权:防止坏人假冒你的身份. 明文.密文.密钥.对称加密算法.非对称加密算法,