0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AMD MPSoC R5 AES示例

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-07-10 16:56 次阅读

测试环境

测试单板
ZCU106

测试工具
Vitis 2021.2

R5 AES 测试流程

创建Platform
在Vitis的 “File - New ” 中,选择“Platform Project”, 指定名称如“zcu106_r5”, 再选择对应的XSA文件和 Processor 如 “psu_cortexr5_0”。

使能AES库

1. 打开hw_platform工程。

2. 双击“platform.spr”文件。

3. 双击“psu_cortexr5_0”的 “board support package”。

4. 点击 “Modif BSP Settings”。

5. 在“Supported Libraries”中选择xilsecure。

100570888-302272-01.png
100570888-302273-02.png

导入AES示例

1. 打开hw_platform工程。

2. 双击“platform.spr”文件。

3. 双击“psu_cortexr5_0”的 “board support package”。

4. 等待Libraries窗口显示

5. 点击xilsecure行右边的import examples

6. 选择"xilsecure_aes_example"

100570888-302274-03.png
100570888-302275-04.png

定制

导入example, 创建的工程里有文件xilsecure_aes_example.c。 打开文件,确认AES 密钥和数据地址。

AES密钥

AES密钥如下:

/*
* The hard coded aes key for decryption, in case user given key is being used
* it will be loaded in KUP before decryption
*/
static const u8 CsuKey[] = {
0xf8, 0x78, 0xb8, 0x38, 0xd8, 0x58, 0x98, 0x18,
0xe8, 0x68, 0xa8, 0x28, 0xc8, 0x48, 0x88, 0x08,
0xf0, 0x70, 0xb0, 0x30, 0xd0, 0x50, 0x90, 0x10,
0xe0, 0x60, 0xa0, 0x20, 0xc0, 0x40, 0x80, 0x00
};

/*
* The hard coded iv used for decryption secure header and block 0
*/
u8 CsuIv[] = {
0xD2, 0x45, 0x0E, 0x07, 0xEA, 0x5D, 0xE0, 0x42, 0x6C, 0x0F, 0xA1, 0x33,
0x00, 0x00, 0x00, 0x00
};

内存地址

默认保存密文和明文的内存地址都是0x04000000,需要和代码中的地址对应,可以根据自己需要更改。

static u32 ImageOffset = 0x04000000;
static u32 DestinationAddr = 0x04000000;

创建密文

AMD提供工具bootgen,加密数据,创建密文。

bootgen的配置文件user_data_example.bif如下:

the_ROM_image:
{
[keysrc_encryption]kup_key
[encryption=aes, aeskeyfile=user_data_kup_key_example.nky, load=0x04000000]data.bin
}

上面的data.bin是明文文件; user_data_kup_key_example.nky是AES的密钥。如果不存在AES的密钥, 工具bootgen会自动生成密钥。 生成密钥后,需要更新文件xilsecure_aes_example.c。

在“Xilinx Software Command Line Tool 2021.2”中执行命令,“ bootgen -arch zynqmp -p userdata -image user_data_example.bif -o data.bin.enc -w on -log error”,可以得到密文文件data.bin.enc。

xsct% bootgen -arch zynqmp -p userdata -image user_data_example.bif -o data.bin.enc -w on -log error
WARNING: [Common 17-259] Unknown Tcl command 'bootgen -arch zynqmp -p userdata -image user_data_example.bif -o data.bin.enc -w on -log error' sending command to the OS shell for execution. It is recommended to use 'exec' to send the command to the OS shell.

****** Xilinx Bootgen v2021.2
**** Build date : Oct 19 2021-03:13:27
** Copyright 1986-2021 Xilinx, Inc. All Rights Reserved.

[INFO] : Bootimage generated successfully

运行AES

以调试模式运行工程xilsecure_aes_example_1。当Vitis SDK停在main()入口时,在xsct界面里下载密文到0x4000000。下载完成后,再继续运行xilsecure_aes_example_1。 运行完XSecure_AesDecrypt()后,暂停程序,显示存储器0x4000000的内容,可以看到它的内容和明文的16进制值一样。

AES解码成功。

xsct%

Info: Cortex-R5 #0 (target 6) Stopped at 0x0 (Suspended)

Downloading Program -- C:/prj/zcu102/v212/vitis_space_r5_csu2/xilsecure_aes_example_1/Debug/xilsecure_aes_example_1.elf
section, .vectors: 0x00000000 - 0x00000467
.................
section, .stack: 0x001044f0 - 0x00107cef
0% 0MB 0.0MB/s ??:?? ETA
100% 0MB 0.5MB/s 00:00
Setting PC to Program Start Address 0x000001d0
Successfully downloaded C:/prj/zcu102/v212/vitis_space_r5_csu2/xilsecure_aes_example_1/Debug/xilsecure_aes_example_1.elf
Info: Cortex-R5 #0 (target 6) Running
Info: Cortex-R5 #0 (target 6) Stopped at 0x1001b8 (Breakpoint)
main() at ../src/xilsecure_aes_example.c: 123
123: Status = SecureAesExample();

xsct% dow -data data.bin.enc 0x04000000
0% 0MB 0.0MB/s ??:?? ETA
100% 0MB 0.4MB/s 00:00

Successfully downloaded C:/prj/zcu102/v212/vitis_space_r5_csu2/xilsecure_aes_example_1/data.bin.enc
xsct% Info: Cortex-R5 #0 (target 6) Running
xsct% Info: Cortex-R5 #0 (target 6) Stopped at 0x100204 (Step)
SecureAesExample() at ../src/xilsecure_aes_example.c: 153
153: u8 *Dst = (u8 *)(UINTPTR)DestinationAddr;
xsct% Info: Cortex-R5 #0 (target 6) Running
xsct% Info: Cortex-R5 #0 (target 6) Stopped at 0x100214 (Step)
....................
xsct% Info: Cortex-R5 #0 (target 6) Stopped at 0x100370 (Breakpoint)
189: Status = XSecure_AesDecrypt(&Secure_Aes, Dst,
xsct% Info: Cortex-R5 #0 (target 6) Running
xsct% Info: Cortex-R5 #0 (target 6) Stopped at 0x10038c (Step)
194: if(Status != XST_SUCCESS)

xsct% mrd 0x04000000
4000000: 6D783F3C

xsct% mrd 0x04000000 20
4000000: 6D783F3C
4000004: 6576206C
4000008: 6F697372
400000C: 31223D6E
4000010: 2022302E
4000014: 6F636E65
4000018: 676E6964
400001C: 5455223D
4000020: 22382D46
4000024: 61747320
4000028: 6C61646E
400002C: 3D656E6F
4000030: 226F6E22
4000034: 0A0D3E3F
4000038: 69663F3C
400003C: 6556656C
4000040: 6F697372
4000044: 2E34206E
4000048: 3F302E30
400004C: 70633C3E
xsct%


审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • amd
    amd
    +关注

    关注

    25

    文章

    5419

    浏览量

    133789
  • AES
    AES
    +关注

    关注

    0

    文章

    100

    浏览量

    33187
  • MPSoC
    +关注

    关注

    0

    文章

    195

    浏览量

    24230
  • Vitis
    +关注

    关注

    0

    文章

    145

    浏览量

    7378
收藏 人收藏

    评论

    相关推荐

    为什么要接上拉电阻R5???

    接上拉电阻R5是因为芯片IO口开漏输出要求吗?还有没有其他原因?
    发表于 10-31 21:07

    R5作用是什么

    R5作用是什么
    发表于 11-21 17:42

    AD9742 R4和R5的作用是什么?

    请教各位前辈,R4和R5的作用,以及添加DVDD的作用
    发表于 12-18 07:18

    WCDMA中的R5版本

    新获取移动网络运营牌照的运营商,其决定部署UMTS网络是面临的第一个问题就是选择标准的哪一个版本。3GPP WCDMA标准历经多年的努力,目前已有R99,R4,R5三个版本完成定稿,其中
    发表于 06-20 08:45 2378次阅读

    BUFFALO HD-H1.OTGL/R5网络存储器评测

    BUFFALO HD-H1.OTGL/R5网络存储器评测
    发表于 11-03 18:28 19次下载

    AMD推出R9 3900和R5 3500X两款处理器

    根据消息报道,AMD昨天正式发布了R9 3900和R5 3500X这两款处理器,其中R5 3500X为中国独占。
    的头像 发表于 10-09 15:51 6196次阅读

    AMD R5 4500U处理器跑分曝光,多核比i5-1035G1领先8%

    在1月份的CES 上,AMD 推出了新款的7nm移动低压处理器,其中R5 有两个版本,分别是6核6线程的R5 4500U和6核12线程的R5 4600U。现在,搭载
    的头像 发表于 02-03 16:42 14.4w次阅读
    <b class='flag-5'>AMD</b> <b class='flag-5'>R5</b> 4500U处理器跑分曝光,多核比i<b class='flag-5'>5</b>-1035G1领先8%

    佳能EOS R5和索尼A7R4的对比,高画质之间的对决

    佳能EOS R5,最新一代的全画幅无反相机,由于它的视频能力太强大,因此被大家先入为主。实际上,佳能EOS R5主要还是一款高像素、高画质相机,4500万像素让它和尼康Z7、松下S1R处于同一像素
    的头像 发表于 09-07 14:57 1.6w次阅读

    AMD R5 5600X 最新跑分:单核性能超 i9-10900K

    AMD R5 5600X 是首批上市 Ryzen 5000 系列处理器中规格最低的一款,6 核 12 线程,299 美元。现在,PassMark 网站更新了其 CPU 跑分排名,Ryzen 5
    的头像 发表于 10-23 16:46 8876次阅读
    <b class='flag-5'>AMD</b> <b class='flag-5'>R5</b> 5600X 最新跑分:单核性能超 i9-10900K

    AMD R5 5600X 外媒测试出炉:性能大幅提升,功耗温度更低

    R5 5600X 与 10 核的 i9-10850K、6 核的 R5 3600X 和 i5-10400F 进行了对比。 游戏测试: 温度和功耗 在功耗测试中,配备 Noctuda NH-D14 散热器的 Ryzen
    的头像 发表于 11-05 17:46 1.3w次阅读

    AMD R5 5500U现身:参数与4600U一致

    根据爆料者 @APISAK 的消息,AMD 新一代移动处理器 R5 5500U 已经出现在了 Geekbench 中,参数与 R5 4600U 相同。 如上图所示,R5 5500 为
    的头像 发表于 11-20 10:43 4w次阅读

    锐龙R5和i5哪个好,11代酷睿棋高一着

    锐龙R5和i5哪个好? 不管是选购笔记本还是组装台式机时,不少消费者都会在挑选处理器的时候纠结这个问题。锐龙R5和酷睿i5分别是AMD和英特
    的头像 发表于 08-10 14:33 19.1w次阅读
    锐龙<b class='flag-5'>R5</b>和i<b class='flag-5'>5</b>哪个好,11代酷睿棋高一着

    Vivado里关闭R5/A53/GPU

    在SDK/Vitis里创建FSBL和Standalone程序,启动后,在XSCT命令后窗口下,检查R5/A53状态,可以看到设置为0的R5/A53的状态是No Power。
    的头像 发表于 05-09 10:45 1841次阅读

    AMD-Xilinx MPSoC的Watchdog在Linux中使用的简明教程

    AMD-Xilinx MPSoC的器件里,提供了内置的Watchdog
    的头像 发表于 07-07 14:15 1021次阅读

    Zynq UltraScale+ MPSoC的隔离设计示例

    电子发烧友网站提供《Zynq UltraScale+ MPSoC的隔离设计示例.pdf》资料免费下载
    发表于 09-13 11:28 3次下载
    Zynq UltraScale+ <b class='flag-5'>MPSoC</b>的隔离设计<b class='flag-5'>示例</b>