Atsha204a使用心得

article/2025/10/2 4:10:06

       最近公司要用到Atsha204a做软件和硬件的绑定加密,于是就调了它的驱动,将使用过程中遇到的坑整理下,也好让各位同仁少加点班;废话少说,直接入正题。

0.加密原理:

主控端和Atsha204a端有相同的16 组密码,用一串明文(一般生成一组32byte随机数),主控端用约定的一组密码使用sha256()加密算法将明文生成Hash值(32 byte),同时主控将明文传递给Atsha204a端,用与主控约定好的一组(SlotNum)密码内部生成sha256  Hash值。然后主控读取Atsha204a生成的hash,与自身生成的hash进行对比,若相同则成功。

注意:通讯线路中(iic)不传递密码,Atsha204a端密码区先烧录好16组密码(根据配置,密码可以设置不可读,就算出来的,也是0xff),只传递加密前的明文和约定密码的组号即可。

1.往Atsha204a里写密钥:

1.1 配置 config zone:

主要是16组密码的属性(如是否明文显示,是否可读,是否可写),如下的几个配置:

int8_t data1[4]={0x80,0x80,0x80,0x80}; //data锁定后不可读,也不可写
uint8_t data2[4]={0x80,0x00,0x80,0x00}; //
uint8_t data3[4]={0x00,0x00,0x00,0x00};//data锁定可明文读,也可写
uint8_t data4[4]={0xC0,0x80,0xC0,0x80};//
uint8_t data5[4]={0xC0,0x00,0xC0,0x00};//

设备16组密码的属性:

    Set_Zone_4byte(0,20,data1);
    Set_Zone_4byte(0,24,data2);
    Set_Zone_4byte(0,28,data3);
    Set_Zone_4byte(0,32,data4);
    Set_Zone_4byte(0,36,data5);

    Set_Zone_4byte(0,40,data3);
    Set_Zone_4byte(0,44,data3);
    Set_Zone_4byte(0,48,data3);

1.2:lock config zone;一旦lock无法无法解锁;

Lock(0x80);
1.3:  write opt zone(我的没有使用);


1.4:  确保2后可以进行 slot zone 密码区进行读写;

在zone 3写入16组密码(每组32byte)
1.5: lock slot zone;一旦lock无法无法解锁;

Lock(0x81);

6.操作完成,可以进入2的加密和验证操作。

2.加密和验证:

char ch;
    static   int  slotNum = 0;
    unsigned char recBuf[35]={0};           //接收ATSHA204计算结果
    unsigned char randomNum[35]={0};        //随机数BUF
    CATsha204();                     //定义一个类    
    ch = GenerateRandomNum(randomNum);  //产生随机数
    if(ch != 0){
        printk("==atsha204 iic com failed,exit==\n");
        return -1;
    }
    printk("slotNum =%d\n",slotNum);
    if(check_lock() != 1){
        printk("\n this is a new atsha204,will fac_lock_atsha204\n");
        //fac_lock_atsha204();
    }
    ch=Mac(slotNum,randomNum+1,recBuf);   //进行密码验证
    if(ch)
    {
        printk("-------------mac ok---------------\n");
    }
    else
    {
        printk("-------------mac fail---------------\n");
    }
    slotNum++;
    if(slotNum >=16)
        slotNum = 0;
    return 0;


http://chatgpt.dhexx.cn/article/2ueKapHw.shtml

相关文章

JESD204B接口调试记录3 - 总结

目录 一、介绍下项目历史情况 二、为什么要用fs4模式? 三、为什么要将采样率改成2.5Gsps? 四、时钟芯片参数如何设置? 五、AD芯片参数如何设置? 六、FPGA工程里JESD204 IP如何设置? 七、传输层如何解包&#xff…

【JESD204B】基于JESD204B协议的ADC、DAC数据传输

1、JESD204协议概述 ADC、DAC技术即模数、数模转换技术,在军用和民用领域广泛应用,如现在常用的有微信语音、网络电话、其典型数据处理流程: 语音输入->ADC采样->调制->基站->无线传输->基站->解调->DAC->语音输出…

理解JESD204B链路参数 Understanding JESD204B Link Parameters

想要彻底理解参数意义要先看JESD协议标准原文,再看看这文章。这是我花了很久才意识到的道理,不过这篇文章对理解也有一定意义。 这个文章是我看的一篇英文文章的大体翻译,并不是逐行的。文章名《Understanding JESD204B Link Parameters》 L…

FPGA之JESD204B接口——总体概要 首片

1. 简介 JESD204是一种连接数据转换器(ADC和DAC)和逻辑器件的高速串行接口,该标准的 B 修订版支持高达 12.5 Gbps串行数据速率(目前C修订版已经发布,即JESD204C),并可确保 JESD204 链路具有可重…

JESD204B 参数理解

M和N M表示单片芯片上转换器的个数。 N表示转换器的分辨率。 比如一个4通道14位的ADC器件,M为4,N为14. N’ N’ 定位为word 长度。N’的计算为首先把N打散成一个个的nibble,每个nibble为4bit.对于14bit和16bit的分辨率,都是4个nibble,12…

Atmel ATSHA204应用总结

1 ACES软件安装 Atmel Crypto Evaluation Studio (ACES) https://www.microchip.com/DevelopmentTools/ProductDetails/PartNO/Atmel%20Crypto%20%20Studio%20(ACES) 2 基本概念 ACES CE:Atmel Crypto Evalution Studio Configuration Environment(基于加…

加密芯片ATSHA204之使用

目录 看手册Command PacketsConfiguration ZoneLock CommandNonce CommandGenDig CommandWrite CommandRead CommandMAC CommandDeriveKey Command相关参考 本文旨在记录 ATSHA204 的使用过程。ATSHA204 是一个安全认证和验证设备,可防止设备被抄袭,应该…

ATSHA204芯片手册阅读笔记

使用心得: (1)配置好IIC,访问芯片之前先唤醒。 (2)按个人需求配置好Config区域,配置好之后锁住Config。只有锁住了Config,才能去操作Data区。 (3)开始写数据区&#xff0…

JESD204标准概述

此篇是我在学习中做的归纳与总结,其中如果存在版权或知识错误请直接联系我,欢迎留言。 PS:本着知识共享的原则,此篇博客可以随意转载,但请标明出处! 目录 JESD204协议标准的分类和区别: JESD204A JESD20…

【JESD204系列】二、JESD204概述

在JESD204B 版本中,引入了确定性延时这一关键同步机制,并根据确定性延迟的不同实现方式划分了三个子类。通过实现确定性延迟,系统在两次上电之间,或者重新建立链路的时候,有了一个可以重复的延迟,为系统在处…

JESD204B学习之关键点问答

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/u014586651/article/details/86744263 JESD204B学习之关键点问答 1.概述 本文是用于记录JESD20…

jesd204B

调试ADI_JESD204B: 问题描述 卡在CGS阶段。 rx_204B 收到了连续的K码bcbcbcbc,但是SYNC一直不能拉高。 sdk的串口打印报错。initial frame synchronization:NO ? 原因分析: 可能收发的配置问题? sysref频率有问题? 复…

JESD204B 使用说明

JESD204B IP核作为接收端时,单独使用,作为发送端时,可以单独使用,也可以配合JESD204b phy使用。 JESD204B通常配合AD或DA使用,替代LVDS,提供更高的通讯速率,抗干扰能力更强,布线数量更少。 本…

http中的204和205

基本概念 http协议的200,301,302,304,404,503这些常用的状态码就不再介绍了。这里主要说一下不常见的204和205吧。 204代表响应报文中包含若干首部和一个状态行,但是没有实体的主体内容。主要用于在浏览器…

火狐firefox快速切换代理插件:Proxy Switcher

简介 l利用Firefox下的Proxy Switcher插件可以实现快速切换代理 安装 两种方式进入拓展和主题页面 方式一 寻找更多扩展的搜索栏输入Proxy Switcher 选择添加到Firefox 方式二 语言设置为中文的火狐浏览器直接打开地址:https://addons.mozilla.org/zh-CN/f…

关于proxy代理

之前一直有个问题,就是它到底是只代理那部分带有/api的,还是全都代理掉 答案是,只会代理api那部分,也就是你配置了代理的部分 发请求的时候,包括axios发完后,vue会检测你的所有请求,把符合你代理的那部分正则匹配到,然后代理,再发请求 这个地方是我搞错了,其实这个proxy好像…

AnyProxy代理

背景:当一个公司测试团队有多个人的时候,只需搭建一个AnyProxy服务,其它小伙伴浏览器上打开AnyProxy页面,手机上设置代理就能抓到http、https请求了。解决了部分人电脑不正经的小伙伴fiddler死活抓不到https请求的问题&#xff0c…

代理器Proxy

基本概念 一.代理器Proxy 1.用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”,即对编程语言进行编程。 2.Proxy可以理解为,在目标对象之前架设一层“拦截”,外界对该对象的访问&#xff…

代理(Proxy)

-代理模式(Proxy Pattern),23个经典模式中的一个,又称之为委托模式,就是为目标对象提供了一个代理,这个代理可以控制对目标对象的访问。代理对象可以添加审查和监控功能。 在java中的代理有静态代理以及动态…

Proxy-Server

一、摘录 二、背景 由于某些原因,在我们国内无法访问google、facebook等外国网站,如果你想使用外网来学习,聊天,那么就可以使用一些翻墙代理。 三、原理 1.要想翻墙,首先得知道墙是什么东西?墙是看不见摸…