- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 resnet-18的实现学习,用于MNIST数字识别
这里# 第一层卷积和池化的输入通道数默认是3,可以根据自己的情况修改self.conv1 = nn.Conv2d(3, 64, kernel_size=7, stride=2, padding=3, bias=False)。还有比如我用的MNIST就是改成1,对应的分类个数num_classes=10。今天学习一下了resnet-18的实现,虽然现在很多可以直接调用这个模型,但还是希望自己搭建一下学习一下这个的层次。上面是colab的共享,里面的代码可以直接运行。结果:一个epoch精度就到了96%了。
2025-01-08 17:35:29
231
原创 非2次幂(也可2次幂)的异步fifo的verilog实现
4.testbench的值的提供不用延时,采用always模块根据full和empty状态提供输入,而且我的是边写边读验证,一般人都是先写后读验证;1.2.3.4.5...写入,同时写,同时读,可以看到rddate是1.2.3.4.5....读出的,同时full了会等待,不会一直写。5.修改tb文件的 FIFO_DEPTH_COMPLE为0,可以实现2次幂整数的异步fifo,也就是这个代码是兼容的。2.二进制计数器的范围大小,以及到ram的地址映射。3.bram修改为不是ip,方便移植。
2024-12-02 20:53:42
313
1
原创 线性移位寄存器用于加扰与解扰的verilog实现
注意:descrambler.sv是system verilog,其他两个是verilog文件。LFSR广泛应用于通信系统、加密、错误检测等领域,因其高效、可逆且具有较强的抗干扰能力。总结一下:本质就是加解扰的时候的内部寄存器状态是一样的,同时异或两次又回到了初始值。
2024-11-28 19:05:02
539
1
原创 一个python实现的淘宝可用-游戏(csgo)辅助密钥管理系统
要达到这个效果,我们还需要把刚才客服端的server.py代码运行得到的keys.db已经我们的辅助可执行文件xxx.exe还有我们的client.py通过下面打包成一个可执行文件。csgopy因此如果能找到这个打包后的可执行文件运行过程中的临时文件名称,可以直接越过验证过程,因此,你的游戏辅助界面不能透露这个xxx.exe的名称,不然一搜就搜出来了。最近在淘宝上,搜到过csgo的黑科技,买了之后老板会给你发1天的,7天的,包年的密钥。我在想,我把别人做好的辅助,外面套一个壳,管理系统,那我不也可以卖挂?
2024-10-29 20:15:06
370
原创 SM2中点乘操作的verilog实现
点乘操作是SM2里面最重要,耗时最长的操作。模块的输入Gx,Gy是正常仿射坐标,最终的结果x2,y2,z2是jacobin坐标下面的。链接: https://pan.baidu.com/s/1ZCYyts2kghgrYEQjh_HxFA?或者看我的分析文件里面的guid_elliptic_curve_crypyography这本书的3.2节。点v文件再final_v文件夹下,国密标准在GM-standard下,还有刚刚那本书,其他东西可以不下。我把他的修改了一下,后面我同学调用我的,验证了是正确的。
2024-08-26 16:19:55
568
1
原创 针对后量子密码dilithium的多项式环域上多项式求逆
多项式域上的拓展欧几里得算法和整数域上的拓展欧几里得算法在原理上是相似的,但在具体实现上有一些区别。而在多项式域上,系数一般是属于某个数域(如有理数域、有限域)的元素,需要使用该数域上的运算规则。上个学期帮助师兄实现针对后量子密码dilithium的多项式环域上的多项式求逆的软件实现,今天回顾一下,整理出来。我的python实现,只需要满足最小公因多项式是常数即可。因为系数也在一个环上,被除数多项式f的最高次数系数乘以除数多项式m的最高项系数的逆就是对应的商的一个系数,这与整数域上的除法有所不同。
2024-08-25 21:08:59
303
原创 同时支持三种安全等级的AES硬件实现
我的BRAM里面64bits位宽,0-3地址放256bits密钥,4-33放最多15*128bits扩展密钥,34-35放128bits明文/密文,加密/解密完后密文/明文128bits覆盖到34-35的地址。加载密文,解密,读明文。往BRAM里面写数据的流程图如上图所示,也放在other文件下面的.json文件,可以用vs code的ctrl k再ctrl+d打开。,我之前写过AES-128,现在在他的基础上实现三种安全等级128,192,256的复用。所有的文件都在下面了,嘻嘻。
2024-08-24 18:12:02
220
原创 针对kyber中q=3329多项式乘法的verilog实现
最近整理之前的多项式乘法的硬件实现代码,今天又回顾了一下。记录一下之前多项式乘法的硬件实现,对于kyber中的q=3329,所以没有512次的原根无法对256阶的进行预处理操作,需要把256阶的NTT转成128阶的NTT计算。清华的文章里面理论有一些小瑕疵,但是结果是对的,中间的证明很不清楚,还存在一些问题。链接:https://pan.baidu.com/s/1PExUGmmW9BLpWeVoz3a-JA?最终软硬件结果一致。上面提到的文件都放在百度网盘里面了。
2024-08-14 17:42:30
474
原创 AES-128的verilog实现
原理部分可以参考废话不多说直接上代码:主要模块:aes_main模块aes_mainplaintextround_keysstateclkrstciphertext整数k和reg数组round_key用于存储轮密钥。always块用于将round_keys分解成各轮的密钥存储在round_key数组中。mid_value和是用于存储中间数据的寄存器。data和data_1数组用于存储每轮的数据。
2023-09-10 15:59:20
2058
12
原创 A5/1流密码的python实现
总的来说,这段代码实现了一个密钥生成器,使用了三个LFSR以钟控方式生成密钥流,并将生成的密钥流和帧号写入文本文件 "output.txt" 中,以便进一步的使用。密钥的生成受到初始密钥和帧号的影响,因此可以用于加密或解密通信。函数用于模拟一个LFSR的时钟控制动作,根据参数a、b、c、d对T列表进行更新,实现LFSR的移位操作。函数是主要的程序入口点:生成一个随机的64位密钥,用于初始化LFSR的状态寄存器。函数类似于上一个函数,但它在移位时还考虑了密钥位k,即异或了k和LFSR的输出。
2023-09-06 15:59:04
448
4
AES-128,高吞吐量流水线设计
2024-05-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人