共200辆汽车,其中,汽车类型(EV_type)包含两个参数:(E,PE),具体数据如下:(80,0.186),(45,0.116),(30,0.1332),三种类型的车的数量占比分别为0.2,0.4,0.4.用matlab代码描述,
时间: 2024-05-01 09:22:15 浏览: 11
根据题意,我们可以定义一个包含三个元素的结构体数组,每个元素包含两个 K1[i + 4] = K1[i] ^ F(K1[i + 1] ^ K1[i + 2] ^ K1[i + 3] ^ CK[i + 4], CK[i + 4]);
rk[i] = K1[i + 4];
}
}
// Encrypt
void SM4Encrypt(unsigned char in[16], unsigned char out[16], unsigned int rk[32]) {
unsigned int X[4] = {0};
memcpy(X, in, 16);
for (int i = 0; i < 32; ++i) {
unsigned int Y = F(X[1] ^ X[2] ^ X[3] ^ rk[i], rk[i]);
X[0] ^= Y;
std::swap(X[0], X[1]);
std::swap(X[1], X[2]);
std::swap(X[2], X[3]);
}
memcpy(out, X, 16);
}
// Decrypt
void SM4Decrypt(unsigned char in[16], unsigned char out[16], unsigned int rk[32]) {
unsigned int X[4] = {0};
memcpy(X, in, 16);
for (int i = 31; i >= 0; --i) {
unsigned int Y = F(X[1] ^ X[2] ^ X[3] ^ rk[i], rk[i]);
X[0] ^= Y;
std::swap(X[0], X[1]);
std::swap(X[1], X[2]);
std::swap(X[2], X[3]);
}
memcpy(out, X, 16);
}
int main() {
unsigned int K[4] = {0x01234567, 0x89abcdef, 0xfedcba98, 0x76543210};
unsigned int rk[32] = {0};
unsigned char in[16] = {0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef, 0xfe, 0xdc, 0xba, 0x98, 0x76, 0x54, 0x32, 0x10};
unsigned char out[16] = {0};
KeySchedule(K, rk);
SM4Encrypt(in, out, rk);
std::cout << "Encrypt Result: ";
for (int i = 0; i < 16; ++i) {
printf("%02X", out[i]);
}
std::cout << std::endl;
SM4Decrypt(out, in, rk);
std::cout "Decrypt Result: ";
for (int i = 0; i < 16; ++i) {
printf("%02X", in[i]);
}
std::cout << std::endl;
return 0;
}
```
其中,SBox 表示 S 盒,LT 表示线性变换矩阵,LeftRotate 表示循环左移操作,S 表示 S 盒置换操作,L 表示线性变换操作,F 表示 SM4 的轮函数,KeySchedule 表示 SM4 的密钥扩展函数,SM4Encrypt 和 SM4Decrypt 分别表示 SM4 的加密和解密操作。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)