资源简介
CCM是CTR加密模式和CMAC认证算法的混合使用,常用在需要同时加密和认证的领域,比如WiFi安全中的WPE协议,它就使用了AES-CCM模式。
代码片段和文件信息
/* This is an independent implementation of the encryption algorithm: */
/* */
/* RIJNDAEL by Joan Daemen and Vincent Rijmen */
/* */
/* which is a candidate algorithm in the Advanced Encryption Standard */
/* programme of the US National Institute of Standards and Technology. */
/* */
/* Copyright in this implementation is held by Dr B R Gladman but I */
/* hereby give permission for its free direct or derivative use subject */
/* to acknowledgment of its origin and compliance with any conditions */
/* that the originators of the algorithm place on its exploitation. */
/* */
/* Dr Brian Gladman (gladman@seven77.demon.co.uk) 14th January 1999 */
#include “aes_defs.h“
/*------------------ DLW debug code */
#if _VERBOSE_
#include
int rNum;
void ShowBlk(const u32b *bint final)
{
int ij;
u32b x;
u08b a;
printf(“%s %2d: “(final) ? “Final“ : “Round“rNum++);
for (i=0;i<4;i++)
{
printf(“ “);
x = b[i]; /* always used internally as “little-endian“ */
for (j=0;j<4;j++)
{
a = byte(xj);
printf(“ %02X“a);
}
}
printf(“\n“);
}
void ShowKeySched(const u32b *keyint cntconst char *hdrMsg)
{
int ij;
u32b x;
u08b a;
printf(“%s\n“hdrMsg);
for (i=0;i<4*cnt;i++)
{
x = key[i]; /* key always used as “little-endian“ */
printf(“ “);
for (j=0;j<4;j++)
{
a = byte(xj);
printf(“ %02X“a);
}
if ((i%4) == 3) printf(“\n“);
}
}
#define SetR(r) { rNum = r; }
#else
#define ShowBlk(bf)
#define SetR(r)
#define ShowKeySched(keycnthdrMsg)
#endif
/*---------------- end of DLW debug */
#define LARGE_TABLES
u08b pow_tab[256];
u08b log_tab[256];
u08b sbx_tab[256];
u08b isb_tab[256];
u32b rco_tab[ 10];
u32b ft_tab[4][256];
u32b it_tab[4][256];
#ifdef LARGE_TABLES
u32b fl_tab[4][256];
u32b il_tab[4][256];
#endif
u32b tab_gen = 0;
u32b k_len;
u32b e_key[60];
u32b d_key[60];
#define ff_mult(ab) (a && b ? pow_tab[(log_tab[a] + log_tab[b]) % 255] : 0)
#define f_rn(bo bi n k) \
bo[n] = ft_tab[0][byte(bi[n]0)] ^ \
ft_tab[1][byte(bi[(n + 1) & 3]1)] ^ \
ft_tab[2][byte(bi[(n + 2) & 3]2)] ^ \
ft_tab[3][byte(bi[(n + 3) & 3]3)] ^ *(k + n)
#define i_rn(bo bi n k) \
bo[n] = it_tab[0][byte(bi[n]0)] ^ \
it_tab[1][byte(bi[(n + 3) & 3]1)] ^ \
it_tab[2][byte(bi[(n + 2) & 3]2)] ^ \
it_tab[3][byte(bi[(n + 1) & 3]3)] ^ *(k + n)
#ifdef LARGE_TABLES
#define ls_box(x) \
(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 12704 2002-06-26 14:39 aes-ccm-1\aes.cpp
文件 2136 2002-06-26 14:38 aes-ccm-1\aes_defs.h
文件 42825 2002-06-26 10:07 aes-ccm-1\aes_vect.h
文件 12109 2006-07-24 09:53 aes-ccm-1\ccm.cpp
文件 14361 2007-07-04 14:42 aes-ccm-1\m_ccm.c
目录 0 2018-05-30 17:56 aes-ccm-1
----------- --------- ---------- ----- ----
84135 6
相关资源
- AES加密算法verilog实现
- AES加密程序
- AES256 c代码及demo例程
- qt可以使用的AES加密的类
- AES加密算法modelsim仿真-Verilog语言
- RSADSAAESDES加解密
- SCCM-1602-1606-1610-1702-1706-1710-1802-1806-安
- sccm.txt序列号.txt
- 8taesy.rar
- 用aes算法对任意长度数据进行加密解
- CCMS通用内容管理系统 功能白皮书
- qt aes加密 源代码
- (AES算法)能对文件进行加密解密
- 编程实现Simplified-AES算法加密过程和解
- AES算法优化 PDF
- 使用C51实现128位AES加密算法
- aes加密算法源代码.rar
- STM32 IAP程序代码,固件AES256 加密,
-
苹果CMS V10 播放器pla
yer.js去广告文件 - AES算法标准C程序源代码
- AES的verilog实现
- maccmsv10仿优酷模版最新修复bug完美版
- AES加解密算法66330
- AES加密解密文档.doc
- FPGA实现AES256位加密算法和解密算法
- AES加密解密与代码实现详解
- AES加解密算法以及五种工作模式的实
- GCM-AES-128加解密及密钥打包aes_wrap
- 苹果CMSV10模板_自适应模板,电脑、平
- aes最后一轮5个候选算法之一MARS实现源
评论
共有 条评论