2025-09-09 10:36:33 +08:00
2025-09-09 10:36:33 +08:00
2025-09-09 10:36:33 +08:00
2025-09-09 10:36:33 +08:00
2025-09-08 13:28:19 +08:00
2025-09-09 10:36:33 +08:00

算法c语言代码

📦 环境准备

确保本地已安装:

  • scons 构建工具,用于自动化编译流程。
  • build-essential 包含 gcc、make 等基础编译工具的依赖包
# Ubuntu/Debian
sudo apt-get install scons
sudo apt-get install build-essential

0909 位置加密applet调用说明

  1. E2 密钥存储接口 说明: 密钥长度为16或32B加上密钥信息(4B)最多36B按每个密钥40B存储在flash中。目前共分配了120B空间。可存3个密钥 遇相同(算法类型, 密钥ID, 密钥版本)密钥,覆盖存储; 新密钥存储在新空间; 密钥长度超长会报错,空间满会报错。 返回A1+5字节密文+9000

样例1 存储一个长度16算法A1id01version02的Key[1122..FF00] 80 E2 00 01 14 13 A1 01 02 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00

/send 80E200011413A10102112233445566778899AABBCCDDEEFF00 -> 90 00

样例2 存储一个长度32算法A2id02version02的Key[0102..1F20] 80 E2 00 02 24 23 A2 02 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20

/send 80E200022423A202020102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20 -> 90 00

样例3 存储一个长度FF算法A2id02version02的Key[0102..1F20] 80 E2 00 02 24 FF A2 02 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 /send 80E2000224FFA202020102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20 -> 69 84 (超长 FF)

样例4 存储一个长度32算法A2id01version02的Key[0102..1F20] 80 E2 00 02 24 23 A2 01 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20

/send 80E200022423A202020102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20 -> 90 00

样例4 存储一个长度16算法A3id02version02的Key[0102..0F10],执行后空间满 120B 80 E2 00 02 14 13 A3 02 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10

/send 80E200021413A302020102030405060708090A0B0C0D0E0F10 -> 90 00

样例5 存储一个长度16算法A3id09version02的Key[0102..0F10] 80 E2 00 02 14 13 A3 09 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10

/send 80E200021413A309020102030405060708090A0B0C0D0E0F10 -> 6A 84 空间满

样例6 存储一个长度16算法A2id02version02的Key0102..0F10 80 E2 00 02 14 13 A2 02 02 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10

/send 80E200021413A202020102030405060708090A0B0C0D0E0F10 -> 90 00


  1. CA 位置加密 数据为1字节随机数6字节STMSI5字节数据 目前随机数和STMSI未使用此接口用固定Key IV对数据进行Zuc256加密返回加密后数据。

// Key: 32字节 private static final byte[] KEY32 = { (byte)0x30,(byte)0x31,(byte)0x32,(byte)0x33,(byte)0x34,(byte)0x35,(byte)0x36,(byte)0x37, (byte)0x38,(byte)0x39,(byte)0x61,(byte)0x62,(byte)0x63,(byte)0x64,(byte)0x65,(byte)0x66, (byte)0x30,(byte)0x31,(byte)0x32,(byte)0x33,(byte)0x34,(byte)0x35,(byte)0x36,(byte)0x37, (byte)0x38,(byte)0x39,(byte)0x61,(byte)0x62,(byte)0x63,(byte)0x64,(byte)0x65,(byte)0x66 }; // IV: 25字节 private static final byte[] IV25 = { (byte)0x30,(byte)0x31,(byte)0x32,(byte)0x33,(byte)0x34,(byte)0x35,(byte)0x36,(byte)0x37, (byte)0x38,(byte)0x39,(byte)0x61,(byte)0x62,(byte)0x63,(byte)0x64,(byte)0x65,(byte)0x66, (byte)0x67,(byte)0x30,(byte)0x31,(byte)0x32,(byte)0x33,(byte)0x34,(byte)0x35,(byte)0x36, (byte)0x37 };

样例1 80 CA 00 00 0E A1 0C 00 11 22 33 44 55 66 AA BB CC DD EE

/send 80CA00000EA10C00112233445566AABBCCDDEE

-> A1 06 01 9C 00 B3 15 05 90 00

样例2 80 CA 00 00 0E A1 0C 00 11 22 33 44 55 66 FF 00 FF 00 FF

/send 80CA00000EA10C00112233445566FF00FF00FF

-> A1 06 01 C9 BB 80 C8 14 90 00

样例3 80 CA 00 00 0E A1 0C 00 11 22 33 44 55 66 31 32 33 34 35

/send 80CA00000EA10C001122334455663132333435

-> A1 06 01 07 89 4C FC DE 90 00


com.zuc.zuc256代码结构说明

com.zuc.zuc256:
  Zuc256Tables.java算法常量S 盒、D 数组)。
  Zuc256State.java内部状态LFSR、R1、R2。
  Zuc256Util.java工具方法整数转换、位运算、线性变换、调试输出。
  Zuc256Core.java算法核心初始化、密钥字生成、密钥流生成。
  Zuc256EncryptCtx.java加解密上下文。
  Zuc256MacCtx.javaMAC上下文。
  Zuc256Demo.java演示程序明文加密、解密与结果验证

Description
No description provided
Readme 67 MiB
Languages
Rich Text Format 40.1%
Java 38%
C 14.9%
C++ 6%
Batchfile 0.9%