gf(2 4)有限域的乘法c语言实现,有限域GF(2^n)的C语言实现浅析

news/2024/11/15 17:48:00/

由于项目的需要,在网上扒了半天,没有找到域GF(2^n)的C语言实现的系统的介绍。本文试图解释偶特征有限域的实现,让读者不必像我一样浪费太多时间在搜索中。本文以GF(2^8)为例。转载请注明出处,谢谢!

甲、有限域的加法实现

简单的异或运算即可:

unsigned char add(unsigned

char a, unsigned char b) {

return a ^ b;

}

乙、有限域的减法实现

与加法相同

unsigned char sub(unsigned char a, unsigned

char b) {

return a ^ b;

}

丙、有限域的乘法实现

算法简介

输入:8-bit数a,b,

输出:8-bit数c

1、 设定c的初始值为0

2、 执行以下循环8次

(1) 如果b的最低位是1,则c与a做异或运算。

(2) 检查a的最高位是否为1.

(3) a左移一位,即舍弃最高位,最低位以0补充。

(4) 如果在上一步左移前,a的最高位是1,则a与十六进制数0x1b做异或运算。

(5) b右移1位,即舍弃最低位,最高位以0补充。

3、c

就是a和b的乘积。

乘法伪代码:

unsigned char mul(unsigned char a, unsigned char b) {

unsigned char p =


http://www.ppmy.cn/news/284350.html

相关文章

NVIDIA显卡、显卡驱动、可安装的CUDA版本、Pytorch

1. NVIDIA显卡: 随着显卡的发展,GPU越来越强大,而且GPU为显示图像做了优化。在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVIDIA推出CUDA,让显卡可以用于图像计算以外的目的。 只有G…

GF1信息整理

GF1卫星信息整理 高分1号高分1 BCD星pitch yaw roll解析经纬度坐标生成多边形kml,shp文件aircas内网上GF1号卫星命名方式,metadata里是否包含satellite roll angel(matlab程序)GDAL bigtiff注册中国资源卫星应用中心爬取数据遥感所…

window下C++怎么安装boost库

在Windows下使用NuGet安装的Boost库,需要在Visual Studio中进行配置才能使用。 以下是一些简单的步骤: 使用NuGet安装Boost库。在Visual Studio中打开NuGet包管理器控制台,执行以下命令: Install-Package boost配置Visual Stud…

属性动画实现旋转入场效果

属性动画和硬件加速 日常杂谈 06月07日 首先,我感觉这部分内容真的挺无聊的,没有什么让人新奇的感觉。不过为了博客的整体性,我还是想随便整理一下相关的知识和内容。 一如既往,聊聊我的日常生活,最近可能比较忙&a…

IP2723中文规格书

IP2723T 是一款集成多种协议、用于 USB 输出端口的快充协议 IC。支持多种快充协议,包括 USBTypeC DFP,PD2.0/PD3.0/PPS,HVDCPQC4/QC4/QC3.0/QC2.0 ( Quick Charge ), FCP(Hisilicon Fast Charge Protocol&a…

Linux下安装TP-LINK WN 725N无线网卡驱动

新买了个TP-LINK无线USB网卡,但纠结的是居然没提供Linux驱动。各种Google后终于找到解决方案,希望为后来人提供一点线索,少走点儿弯路。 首先请确认你的无线网卡型号:TL-WN725N 122TE1。 系统环境:ubuntu 12.04.2 64位…

STM32驱动NRF24L01

前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。 1. 简介 NRF24L01是 nordic 的无线通信芯片,它具有以…

nRF24L01无线介绍

CE:RX或TX模式选择 CSN:SPI片选信号 SCK:SPI时钟 MOSI:SPI数据输入 MISO:SPI数据输出 IRQ:可屏蔽中断脚 51测试程序 实测可用! #define TX_ADR_WIDTH 5 #define RX_ADR_WIDTH 5 #define TX_PLOAD_WI…