zoukankan      html  css  js  c++  java
  • AES SHA-1 SM3 MD5

    AES是美国国家标准技术研究所NIST旨在代替DES的21世纪的加密标准。

    输入:128bit 的消息分组
    输出:128bit 的密文分组
    密钥长度及圈数
    128 10
    192 12
    256 14
    消息 与 密钥
    addroundkey//加入轮密钥  每一个字节与轮密钥的相应字节进行异或运算

    subbytes//  字替代  经过s盒,即对每一个字节进行替换。非线性部件。16个字节採用同样的s-盒
    shiftrow//  行变换   每一行按字节循环以为。第一行移动0位,第二行<<<1,.....第四行《《3
    mixcolumn// 列混合
    addroundkey
    !!!!!!!!!!上面为循环进行!!!!!!!!!!!!!!

    subbutes
    shiftrow
    addroundkey
    AES加密数据块分组长度必须为128比特。密钥长度能够是128比特、192比特、256比特中的随意一个(假设数据块及密钥长度不足时,会补齐)。

    AES加密有非常多轮的反复和变换。大致步骤如

    下:1、密钥扩展(KeyExpansion),2、初始轮(Initial Round),3、反复轮(Rounds)。每一轮又包含:SubBytes、ShiftRows、MixColumns、AddRoundKey,4、终于轮(Final Round)

    。终于轮没有MixColumns。

    MD5算法
    MD5以512位分组来处理输入的信息。且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
     

     

    SHA-1
    SHA (Secure Hash Algorithm。译作安全散列算法) 是美国国家安全局 (NSA) 设计。美国国家标准与技术研究院(NIST) 公布的一系列password散列函数。


    SHA-0 和 SHA-1 会从一个最大 2^64 位元的讯息中产生一串 160 位元的摘要

    SM3算法:
    国家password管理局编制的商用算法,用于password应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成。可满足多种password应用的安全需求。对长度为l(l< 264) 比特的消息m,SM3

    杂凑算法经过填充和迭代压缩,生成杂凑值。杂凑值长度为256比特。

  • 相关阅读:
    zookeeper
    linux命令大全
    多态1
    单例模式
    java this
    java 构造代码块
    java return
    mapreduce实现分组求最大
    数据相关脚本
    mapreduce实现社交中共同好友
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5166781.html
Copyright © 2011-2022 走看看