---
title: SHA256优化
description: "ARMv8指令集新增密码学指令，其中包含了AES加解密算法、SHA1和SHA256安全散列算法相关的硬件加速指令，可以显著提升计算性能。SHA256优化算法主要使用的指令如下表 SHA256优化算法指令所示。"
url: https://www.hikunpeng.com/document/detail/zh/perftuning/tuningtip/kunpengtuning_12_0087.html
sourcePath: /source/zh/perftuning/tuningtip/kunpengtuning_12_0087.html
indexId: 24b0dfbfe1c11558126cd95a51067b8d09542450e406da7204b6047b3ecb0e1858
---
# SHA256优化

#### 原理

ARMv8指令集新增密码学指令，其中包含了AES加解密算法、SHA1和SHA256安全散列算法相关的硬件加速指令，可以显著提升计算性能。SHA256优化算法主要使用的指令如下表 SHA256优化算法指令所示。


**表1 SHA256优化算法指令**

| 指令 | 功能 | 使用示例 |
| --- | --- | --- |
| SHA256H | SHA256哈希更新(part 1) | SHA256H q0, q1, v2.4s |
| SHA256H2 | SHA256哈希更新(part 2) | SHA256H2 q0, q1, v2.4s |
| SHA256SU0 | SHA256消息块更新0 | SHA256SU0 v0.4s, v1.4s |
| SHA256SU1 | SHA256消息块更新1 | SHA256SU1 v0.4s, v1.4s, v2.4s |


#### 修改方式

使用sha256_aarch64.S文件替换原本的实现，并在sha256.c文件中调用原有sha256_compress函数的位置添加鲲鹏的sha256_compress函数。

具体实现方法请参见华为鲲鹏论坛(https://bbs.huaweicloud.com/forum/thread-138517-1-1.html)。
