F28388中CMAC怎么用
时间: 2023-11-29 07:03:56 浏览: 20
F28388是一款数字信号处理器,CMAC是一种基于神经网络的算法。要在F28388中使用CMAC,您需要按照以下步骤进行:
1. 了解CMAC算法的原理和实现方法。
2. 在F28388上安装适当的软件和开发工具,例如CCS或MATLAB。
3. 使用软件工具编写CMAC算法代码,并将其编译为适当的格式。
4. 将编译后的代码加载到F28388中,以便可以在DSP上运行。
5. 在DSP上运行CMAC算法,并使用适当的输入数据测试其性能和准确性。
请注意,在使用CMAC算法时,您需要确保输入数据与算法的要求相匹配,并遵守所有适用的法律和法规。同时,您还应该遵守F28388的使用说明和相关规定。
相关问题
python CMAC
Python中的CMAC是通过Crypto.Hash模块中的CMAC类来实现的。在使用CMAC算法之前,需要导入CMAC类和AES模块。可以通过以下代码进行导入:
```python
from Crypto.Hash import CMAC
from Crypto.Cipher import AES
```
在使用CMAC算法计算摘要之前,需要创建一个CMAC对象,使用指定的密钥和消息。例如,可以使用以下代码创建一个CMAC对象并计算摘要:
```python
c = CMAC.new(secret, message, ciphermod=AES)
digest = c.hexdigest()
```
其中,secret是密钥,message是要计算摘要的消息。hexdigest()方法用于获取摘要的十六进制表示。
CMAC实际上是一种智能查表技术,使用局部性原理用多个超平面拟合输出超曲面。虽然CMAC无法完全非线性逼近RBF和BPN,但它在前馈计算速度快、适合需要即时反射的智能应用场景方面具有优势。此外,CMAC的网络模型更简单、参数更少、计算速度更快。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [基于Python 的AES CMAC](https://blog.csdn.net/Jinglebin/article/details/121608568)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [CMAC小脑模型神经网络与Python实现](https://blog.csdn.net/qq_41858347/article/details/104520504)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
使用CMAC算法生成MAC的流程
使用CMAC算法生成MAC的流程如下:
1. 确定密钥:需要一个128位的密钥K。
2. 对数据进行填充:要求数据的长度必须是128位的整数倍,如果不是,则需要进行填充。填充的方式为最后一个分组不足128位时,将其填充为128位,填充方式为在末尾加上一个1,然后用0填充到末尾。
3. 分组:将填充后的数据按128位分组。
4. 计算subkey:根据密钥K,生成两个子密钥K1和K2。K1和K2的生成方式如下:
a. 对密钥K进行AES加密,得到结果L。
b. 如果L的最高位为0,K1的值为L左移1位;如果L的最高位为1,K1的值为(L左移1位)异或Rb。
c. 如果K1的最高位为0,K2的值为K1左移1位;如果K1的最高位为1,K2的值为(K1左移1位)异或Rb。
其中,Rb为固定的常量值,为0x87(十六进制)。
5. 计算MAC值:将第一个分组与K1进行XOR运算,得到结果Y0,然后对Y0进行AES加密,得到结果Y1;将Y1与下一个分组进行XOR运算,得到结果Y2,然后对Y2进行AES加密,得到结果Y3,以此类推,直到处理完所有分组。
6. 计算MAC:处理完所有分组后,将最后一个结果Yn与K2进行XOR运算,得到结果Z,再对Z进行AES加密,得到MAC值。
7. 输出MAC:将MAC值输出。
这就是使用CMAC算法生成MAC的流程。