DAA和CMAC

数据认证算法(DAA)  Data Authentication Algorithm

  DAA建立在DES之上,该算法比较陈旧,人们已经发现了这个算法的安全弱点,目前已经被废止。

  

  DAA采用DES运算的CBC工作模式,其初始向量为0,需要认证的数据分成连续的64位分组D1,D2,...,DN,若最后分组不足64位,则在其后填充0补足。

  DAA的安全隐患

    给定一个消息分组X的CBC MAC码,如T = MAC(K , X),则攻击者马上就知道对于两个消息分组 X || (T⊕X) 的CBC MAC码还是T。显然,对于短消息,攻击者可以很容易就找到符合条件的M‘使得MAC(K , M‘) = MAC(K , M)。

基于密码的消息认证吗(CMAC)  Cipher-based Message Authentication Code

  CMAC的加密对于AES和3DES都适用。

  

  为消除DAA存在的安全隐患,CMAC在DAA基础上做了一个改进,在最后一步加密的前后均作了数学处理

     Cn = E(K , [Mn⊕Cn-1⊕K1])

     T = MSBTlen(Cn)

          Tlen是T的长度,MSBs(X)是取位串X最左边的s位

  两位n位的密钥K1和K2由K按照如下方式导出:

    L = E(K , 0n)      //将分组密码应用到一个全0分组上

    K1 = L • x        

    K2 = L • x2 = (L • x) • x

    乘法(•)在域GF(2n)内进行,x和x2是域GF(2n)的一次和二次多项式

  

时间: 2024-08-26 16:51:47

DAA和CMAC的相关文章

汇编--AAD,DAA,DAS详解

AAD   为下面的除法做准备   ,把AL 和 AH 两个单BCD码组成一个十进制数 1.AAD(调整除) 5.2该指令是在作除法前用于调整寄存器AH和AL之值,它是把二个寄存器中单BCD码组成一个十进制数值,其调整规则如下: AL←AH*10+AL,AH←0 受影响的标志位:PF.SF和ZF(AF.CF和OF等都是无定义) MOV AX, 0502H MOV BL, 10D AAD ;AH=0, AL=52H DIV BL ;AH=2(余数), AL=5(商) 2.DAA(调整加十) 该指令

基于直接地址映射的CMAC神经网络

紧锣密鼓的项目又开始了,经过一番研究准备融合神经网络与增强学习来实现基于FPGA的XX路径规划,越来越觉得这里边需要学的东西太多了,特别是机器学习好深邃啊.之前要在FPGA上实现的BP神经网络准备换成CMAC神经网络了,一开始以为CMAC神经网络挺容易,后来才发现理解起来也不是那么简单,而且与具体应用联系起来时实现起来还是问题重重,主要是在高维输入环境下权值的存取如何来解决,看了Jar-Shone Ker的直接权值地址映射CMAC法(线性收缩阵列法)困扰算是解决了.它采用一种多重权值的存储层接口

移动匿名支付购物方案 A Lightweight Anonymous Mobile Shopping Scheme Based on DAA for Trusted Mobile Platform

在线考试系统(Online Exam System)--ASP.NET

用户设计 -|学生 -|老师 -|管理员 学生结构设计 -|个人信息管理 -|修改个人信息 -|修改登录密码 -|选课中心 -|显示所有老师所开课的信息可进行选课 -|显示自己已选课程 -|在线考试 -|对已选老师开设的课程选择进行考试 -|成绩查询 -|查看自己考试成绩   老师结构设计 -|个人信息管理 -|修改个人信息 -|修改登录密码 -|课程管理 -|显示学校开设的课程(老师可选择添加课程) -|显示老师开设的课程 -|考试管理 -|显示老师自己开设的课程 -|对课程添加试题(选择.填

汇编速查表

指令 功能 AAA 调整加 AAD 调整除 AAM 调整乘 AAS 调整减 ADC 进位加 ADD 加 AND 与 ARPL 调整优先级 BOUND 检查数组 BSF 位右扫描 BSR 位左扫描 BSWAP 交换字节 BT 位测试 BTC 位测试求反 BTR 位测试清零 BTS 位测试置一 CALL 过程调用 CBW 转换字节 CDQ 转换双字 CLC 进位清零 CLD 方向清零 CLI 中断清零 CLTS 任务清除 CMC 进位求反 CMOVA 高于传送 CMOVB 低于传送 CMOVE 相等

GCC内嵌AT&T汇编语法

一 基本语法 1 寄存器引用 引用寄存器要在寄存器号前加百分号%,如"movl %eax, %ebx". 80386有如下寄存器: 1.8个32-bit寄存器 %eax,%ebx,%ecx,%edx,%edi,%esi,%ebp,%esp: 2.8个16-bit寄存器,它们事实上是上面8个32-bit寄存器的低16位:%ax,%bx,%cx,%dx,%di,%si,%bp,%sp: 3.8个8-bit寄存器:%ah,%al,%bh,%bl,%ch,%cl,%dh,%dl.它们事实上是寄

Java web(html/js/jq/css/京东项目)京东网页高仿

登录部分HTML+CSS: <!DOCTYPE html><html>    <head>        <meta charset="UTF-8">        <title>京东-欢迎登录</title>        <link rel="shortcut icon" href="favicon.ico"/>         <style type=

SpringMVC框架下数据的增删改查,数据类型转换,数据格式化,数据校验,错误输入的消息回显

在eclipse中javaEE环境下: 这儿并没有连接数据库,而是将数据存放在map集合中: 将各种架包导入lib下... web.xml文件配置为 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/

Android 5.0 进程A和APK B依赖关系问题的研究

(本文来自于和博客上一个朋友的聊天,但可惜我回复后一直没收到这位朋友的回答.故在此把这个问题和大家介绍下,希望能抛砖引玉) 这位朋友的问题是这样的: 应用程序A运行时跑在进程A中,它可以在运行时通过ClassLoader加载另外一个应用程序B. 当然,应用程序B也是可以运行的,它运行在进程B中. 在Android 5.0以前,进程B和进程A是没有关系.但是5.0以后,如果进程B被stop的话,进程A一样会被干掉. 这就是Android 5.0带来的进程A/B依赖关系. 这个问题有几个关键技术点: