论加密算法原理及其重要性

为什么要进行数据加密?

   数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。

加密算法分类:

  • 加密操作类型:
  1. 代换
  2. 置换
  3. 多重加密
  • 所用的密钥个数
  1. 对称加密算法
  2. 公开加密算法

一:对称加密算法

亦称为常规/单密加密

发送方和接收方共享相同的密钥

所有经典加密都是对称加密,是在20世纪70年代公钥加密之前仅有的加密类型

针对数据加密的攻击手段

  • 密码分析

    从数学的角度分析密码算法

  • 强力攻击

    逐次试用每个密钥进行解密,直至有意义的信息出现

    

加密算法的安全性

  • 无条件安全
  1. 无论提供的密文有多少,如果由一个加密方案产生的密文中包含的信息不足以唯一地决定对应的明文
  2. 除了一次一密的方案外,没有无条件安全的算法
  • 计算上安全
  1. 破译密码的代价超出密文信息的价值
  2. 破译密码的事件超出密文信息的有效生命期

密钥设置建议:

足够长,包含数字、字母和其他符号 ,经常更换

DES加密算法过程:

其他现代对称加密算法:三重DES、Blowfish、RC5、IDEA、AES(对于几种加密算法的内部实现原理,我不想研究的太透彻,这些问题就留给科学家们去研究吧).

对称加密算法存在的问题:

    无法保护发送方,如果接收方伪造一个消息并宣称是由发送方发送的

    密钥的分配:在建立安全通道前,如何安全交换密钥?(先有鸡,?还是先有蛋的问题)

二:公钥(非对称)加密算法算法

  使用两个密钥:一个公钥、一个私钥

  不对称:因为双方是不平等的

  巧妙使用了数论概念

  与对称加密是互相补充,而不是替代

  需要使用很大的数和较复杂的运算,因此与对称密钥相比,较慢

对称加密与公钥加密比较

三:加密算法在实际开发中使用

因为对称加密算法在传输的过程中,不能保证私钥的安全,同时非对称加密在性能上又比较耗时。所以这两类算法恰恰起到了互补的作用。

一般涉及到安全问题的时候,这两类加密算法都会结合在一起使用。

如下是一个用户登录服务器的一个过程:使用了3Des和RSA两种算法。

     //用户信息3Des加密
    NSString *userInfoDataWithEncode = [TXTSignEncrypt stringBy3DesEncoding:encodingContent withKey:(char *)[keyData bytes]];
    NSData *userInfoData = [NSString stringToByte:userInfoDataWithEncode];

    //通过对3DES key进行RSA加密
    NSString *tripleKeyEncodeWithRSA = [TXTSignEncrypt stringByRsaEncodingWith:threeDeskey WithKey:K_API_KEY];

    NSData *tripleKeyData = [NSString stringToByte:tripleKeyEncodeWithRSA];
    //将两者信息整合在一起
    NSData *dataToServer = [SFCTLVForLogin  PAIMTLVForLoginWithUserInfoData:userInfoData withEncryptKey:tripleKeyData];
    //发送给后端服务器
    loginRequest = [PAHTTPRequest sendRequestWithURL:url
                                              bodyData:dataToServer
                                               withTag:tag
                                              httpType:HTTP_RSA
时间: 2024-10-07 03:18:13

论加密算法原理及其重要性的相关文章

DES加密算法原理

DES的每个分组是64位,既明文和密钥都是64位(密钥实际用56位,每字节第8位为校验).这个算法的核心是Feistel密码,由于其设计的巧妙,加密解密都用一个函数,具体原理请查阅其他资料.DES的流程基本是执行16轮下面的运算: 1 初始变换Initial Permutation 2 右边32位f函数 2.1 E置换 2.2 与轮密钥XOR 2.3 S盒替换 2.4 P置换 2.5 和左边32位XOR 3 左右交换,最终变换final permutation 需要特别注意的是,最后一轮是不需要

轻松学习RSA加密算法原理

以前也接触过RSA加密算法,感觉这个东西太神秘了,是数学家的事,和我无关.但是,看了很多关于RSA加密算法原理的资料之后,我发现其实原理并不是我们想象中那么复杂,弄懂之后发现原来就只是这样而已.. 学过算法的朋友都知道,计算机中的算法其实就是数学运算.所以,再讲解RSA加密算法之前,有必要了解一下一些必备的数学知识.我们就从数学知识开始讲解. 必备数学知识 RSA加密算法中,只用到素数.互质数.指数运算.模运算等几个简单的数学知识.所以,我们也需要了解这几个概念即可. 素数 素数又称质数,指在一

加密算法原理及DNS服务原理

1.简述常见加密算法及常见加密算法原理,最好使用图例解说在安全领域,利用密钥加密算法来对通信的过程进行加密是一种常见的安全手段.利用该手段能够保障数据安全通信的三个目标 1.数据的保密性,防止用户的数据被窃取或泄露: 2.保证数据的完整性,防止用户传输的数据被篡改: 3.通信双方的身份确认,确保数据来源与合法的用户: 而常见的密钥加密算法类型大体可以分为三类:对称加密.非对称加密.单向加密. 对称加密 对称加密算法采用单密钥加密,在通信过程中,数据发送方将原始数据分割成固定大小的块,经过密钥和加

[转载]MD5加密算法原理

本文转载自: http://blog.csdn.net/forgotaboutgirl/article/details/7258109 需要视频版的可以看一下泰克老林讲的MD5原理 下载地址: 网速太卡,周末上传后补上.... MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权费用. MD5功能: 输入任意长度的信息,经过处理,输出为128位的信息(数字指纹): 不同的输入得到

数据加密--详解 RSA加密算法 原理与实现

RSA算法简介 RSA是最流行的非对称加密算法之一.也被称为公钥加密.它是由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)在1977年一起提出的.当时他们三人都在麻省理工学院工作.RSA就是他们三人姓氏开头字母拼在一起组成的. RSA是非对称的,也就是用来加密的密钥和用来解密的密钥不是同一个. 和DES一样的是,RSA也是分组加密算法,不同的是分组大小可以根据密钥的大小而改变.如果加密的数据不是分组大小的整数倍,则

AES对称加密算法原理

原著:James McCaffrey 翻译:小刀人 原文出处:MSDN Magazine November 2003 (Encrypt It) 本文的代码下载:msdnmag200311AES.exe (143KB) 本文假设你熟悉 C# 和 位(bit)操作. 摘要 AES(The Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范.它被预期能成为人们公认的加密包括金融.电信和政府数字信息的方法.本文展示了AES的概貌并解析了它使用的算法

AES加密算法原理

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

[转载]CRC32加密算法原理

本文转载自: http://blog.163.com/yucheng_xiao/blog/static/76600192201393092918776/ 一.基本原理 CRC检验原理实际上就是在一个p位二进制数据序列之后附加一个r位二进制检验码(序列),从而构成一个总长为n=p+r位的二进制序列:附加在数据序列之后的这个检验码与数据序列的内容之间存在着某种特定的关系.如果因干扰等原因使数据序列中的某一位或某些位发生错误,这种特定关系就会被破坏.因此,通过检查这一关系,就可以实现对数据正确性的检验

HTTPS 加密算法原理机制解析

当你在浏览器的地址栏上输入https开头的网址后,浏览器和服务器之间会在接下来的几百毫秒内进行大量的通信.InfoQ的这篇文章对此有非常详细的描述.这些复杂的步骤的第一步,就是浏览器与服务器之间协商一个在后续通信中使用的密钥算法.这个过程简单来说是这样的: 浏览器把自身支持的一系列Cipher Suite(密钥算法套件,后文简称Cipher)[C1,C2,C3, …]发给服务器: 服务器接收到浏览器的所有Cipher后,与自己支持的套件作对比,如果找到双方都支持的Cipher,则告知浏览器: 浏