暂无个人介绍
好久没写新的加密算法的原理了, 这次所选取的加密算法结构比较简单, 一起来看一下吧。
本文来聊聊RSA, 这是一个非对称密码,和之前所提到的AES与DES不同的是,这个加密方式有两个密钥,一个是公钥,一个是私钥,公钥用来加密,私钥用来解密。相比于对称密码,非对称密码大多基于某个数学难题,比如接下来要谈论的RSA即基于大整数分解的困难性来的,因此为了说明白这个加密算法,首先要先补充"一"点点数学知识。
分组密码只能处理固定长度的分组,但是对于如何把每个分组组合起来,这里面也会有多种方案,一个非常简单的做法便是每个分组单独处理,然后把每个分组的结果拼接起来,这种方式其实也就是「ECB」模式,这个模式实际上是非常不安全的,各位读者在生产环境千万不要使用,本文在加下将描述几种模式。
在对于数据进行加密的时候,某些加密算法需要明文满足某些长度的要求,比如DES和AES等分组加密需要明文满足是分组的倍数,但是大多数情况下,明文恰好满足需求的概率是非常低的,在之前的实现中,我的实现均没有考虑不满足加密长度的情况,也就是我自己保证了我传入的内容就是满足需求的,本文将聊一聊在不满足的情况下如何进行「Padding」。
SM4(原名SMS4)是中华人民共和国政府采用的一种分组密码标准,由国家密码管理局于2012年3月21日发布,相关标准为“GM/T 0002-2012《SM4分组密码算法》(原SMS4分组密码算法)”。
AES加密算法 本文将不会讲述过多有关AES的数学知识, 如果有兴趣的可以自行了解。
SM3是中华人民共和国政府采用的一种密码散列函数标准,前身为SCH4杂凑算法,由国家密码管理局于2010年12月17日发布,相关标准为"GM/T 0004-2012 《SM3密码杂凑算法》"。
MD4是麻省理工学院教授Ronald Rivest于1990年设计的一种信息摘要算法。它是一种用来测试信息完整性的密码散列函数的实行。其摘要长度为128位。这个算法影响了后来的算法如MD5、SHA家族和RIPEMD等。
MD2是Ranald Rivest在1989年提出的哈希函数,本文主要介绍一下MD2算法的基本原理,尽管现在MD2已经并不安全,作为一个结构比较简单的哈希函数,学习一下还是十分有必要的。
SHA-2安全散列算法2(Secure Hash Algorithm 2)一种密码散列函数算法标准,由美国国家安全局研发,由美国国家标准与技术研究院(NIST)在2001年发布。属于SHA算法之一,是SHA-1的后继者。其下又可再分为六个不同的算法标准,包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。
SHA-1(Secure Hash Algorithm 1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦资料处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
本文来聊一聊Base64, 我个人感觉这个不应该算是加密,而应该是编码,相比于加密算法和哈希函数而言,今天要聊的还是比较轻松的(个人感觉)。
曾经沧海难为水,除却巫山不是云。-- 元稹
DES是一种使用56位秘钥对64位长分组进行加密的加密算法。
我画蓝江水悠悠,爱晚亭上枫叶愁。秋月溶溶照佛寺,香烟袅袅绕经楼。【唐伯虎】
出师一表真名世,千载谁堪伯仲间!-- 陆游
RC4是 Ron Rivest 在1987年为RSA数据安全公司开发的可变密钥长度的序列密码。