BRC20科普——关于Brc20的相关问题

资讯 2024-06-19 阅读:50 评论:0
以下是ZUC算法的C语言实现代码,包括密码流生成和机密性算法,以及验证函数和数据: ```c #include <stdio.h> #include <stdlib.h> #include <string.h...
以下是ZUC算法的C语言实现代码,包括密码流生成和机密性算法,以及验证函数和数据: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define R1 0x9e3779b9 #define R2 0x3c6ef373 #define R3 0x78dde6e6 #define R4 0xf1bbcdcc #define R5 0xe3779b99 #define R6 0xc6ef3733 #define R7 0x8dde6e67 #define R8 0x1bbcdccf #define ROTL32(x, n) (((x) << (n)) | ((x) >> (32 - (n)))) #define ROTR32(x, n) (((x) >> (n)) | ((x) << (32 - (n)))) #define L1(x) (ROTL32((x), 2) ^ ROTL32((x), 10) ^ ROTL32((x), 18) ^ ROTL32((x), 24)) #define L2(x) (ROTL32((x), 8) ^ ROTL32((x), 14) ^ ROTL32((x), 22) ^ ROTL32((x), 30)) #define ZUC_ROUNDS 32 typedef unsigned char u8; typedef unsigned int u32; u32 LFSR_S[16]; u32 LFSR_R[16]; u32 BRC_X[16]; u32 BRC_N[16]; u32 ZUC(u32 *LFSR_S, u32 *LFSR_R, u32 *BRC_X, u32 *BRC_N, u32 *key, u32 *iv, u32 len, u32 *out) { u32 i, j, k, m; u32 F, W, U, V; u32 LFSR_S16, LFSR_R16; u32 BRC_X16, BRC_N16; for (i=0; i < 16; i++) { LFSR_S[i]=0; LFSR_R[i]=0; BRC_X[i]=0; BRC_N[i]=0; } for (i=0; i < 16; i++) { LFSR_S[i]=key[i] ^ iv[i]; LFSR_R[i]=key[i] ^ iv[i]; } for (i=0; i < 32; i++) { LFSR_S16=LFSR_S[15] >> 16; LFSR_R16=LFSR_R[15] >> 16; BRC_X16=BRC_X[15] >> 16; BRC_N16=BRC_N[15] >> 16; F=(LFSR_S16 + BRC_X16) & 0xffffffff; W=(LFSR_R16 + BRC_N16 + R1) & 0xffffffff; U=L1(LFSR_S[0] ^ LFSR_S[2] ^ LFSR_S[15]); V=L2(LFSR_R[0] ^ LFSR_R[8] ^ LFSR_R[13]); for (j=0; j < 15; j++) { LFSR_S[j]=LFSR_S[j + 1]; LFSR_R[j]=LFSR_R[j + 1]; BRC_X[j]=BRC_X[j + 1]; BRC_N[j]=BRC_N[j + 1]; } LFSR_S[15]=U; LFSR_R[15]=V; BRC_X[15]=ROTL32(F, 9); BRC_N[15]=ROTR32(W, 5); if (i >=16) { m=i - 16; out[m]=LFSR_R[0] ^ LFSR_S[0] ^ BRC_X[(m + 13) & 0x0f]; } } return len; } int main() { u32 key[4]={0x12345678, 0x9abcdef0, 0x23456789, 0xabcdef01}; u32 iv[4]={0x56789abc, 0xdef01234, 0x6789abcd, 0xef012345}; u32 len=16; u32 out[16]; ZUC(LFSR_S, LFSR_R, BRC_X, BRC_N, key, iv, len, out); for (int i=0; i < len; i++) { printf("%08x ", out[i]); } printf(" "); return 0; } ```
文字格式和图片示例

注册有任何问题请添加 微信:MVIP619 拉你进入群

弹窗与图片大小一致 文章转载注明

分享:

扫一扫在手机阅读、分享本文

发表评论
热门文章
  • 以太坊区块链浏览器的搭建

    以太坊区块链浏览器的搭建
    环境;Ubuntu 首先需要下载git 参考链接:?http://www.360bchain.com/article/156.html??Environment; Ubuntu first needs to download git reference link: ˂a rel="noformlow" href="http://www.360bchai.com/article/156.html"? http://www.360bchai.com/article/156.htm...
  • 百度元宇宙希壤app官方下载

    百度元宇宙希壤app官方下载
    希壤元宇宙是一款非常好玩的休闲手游,这款游戏采用了元宇宙的游戏概念,超级自由的游戏玩法,在这里没有什么标准限定,你可以自由的在这里进行着一切你想做的事情,游戏比较的休闲和放松,没有什么操作难度,感兴趣的小伙伴们可以来007游戏网下载这款非常有趣的希壤元宇宙吧!˂a href=http://m.yx007.com/key/xxsy" target="_blank" , a game that uses the concept of meta-cosm, super-free p...
  • 【CoinCentral 合作內容】加密貨幣 Decred 正式推出 2018 發展路段線圖

    【CoinCentral 合作內容】加密貨幣 Decred 正式推出 2018 發展路段線圖
    早些時候,加密貨幣Decred發表了一篇博客文章,概述了他們2018年的正式發展路線圖。Earlier, encrypt currency Decred published a blog article outlining their official road map for development in 2018.在這個路線圖中,團隊在為他們制定營銷宣傳之前,明確地表明他們於建立和發布可交付物品的成果,同時將他們的營銷集中在項目的核心組成部分。Decred團隊正在研究一些...
  • 跨接在两个网络间的语音记录仪设计

    跨接在两个网络间的语音记录仪设计
      摘  要: 设计了语音记录仪。该语音记录仪桥接在通信设备之间,同时提供3种桥接接口:以太网接口,支持在IP通信方式下的各通话组的直通及录音功能;二线接口,支持模拟二线方式下的直通及录音功能;音频接口,支持模拟音频方式下的直通及录音功能。同时话音记录仪提供FTP服务器,可以通过局域网对语音记录仪保存的语音文件进行下载和管理。此外,该设备支持语音回放功能。 extracts & nbsp; to : The voice record...
  • 元宇宙概念股有哪些 元宇宙概念股一览表

    元宇宙概念股有哪些 元宇宙概念股一览表
    元宇宙概念股排行精选 元宇宙概念股一览表(2022/11/08),下文就随小蔡来简单的了解一下吧。The contours of the meta-cosmology unit are in the list of the meta-cosmological concept units (2022/11/08), so let's get to the bottom of this with Little Choi. 元宇宙概念股龙头有:The contou...
标签列表