From 130635e266f3495bfe2692031d8126b28206eab2 Mon Sep 17 00:00:00 2001 From: Sun Yimin Date: Fri, 22 Sep 2023 15:42:40 +0800 Subject: [PATCH] =?UTF-8?q?Updated=20SM3=E4=B8=AD=E7=9A=84FF2=E5=92=8CGG2?= =?UTF-8?q?=E5=87=BD=E6=95=B0=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SM3中的FF2和GG2函数.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/SM3中的FF2和GG2函数.md b/SM3中的FF2和GG2函数.md index b361774..dbc5dcc 100644 --- a/SM3中的FF2和GG2函数.md +++ b/SM3中的FF2和GG2函数.md @@ -7,7 +7,21 @@ $FF2(X, Y, Z) = (X \land Y) \bigoplus (X \land Z) \bigoplus (Y \land Z)$ $GG2(X, Y, Z) = (Y \bigoplus Z) \land X \bigoplus Z$ # 应用 -特别是GG2,其等价公式相比原来的公式,因其简单,具有一定的性能优势。 +特别是GG2,其等价公式相比原来的公式,因其简单,具有一定的性能优势。 +原公式: +```asm + MOVL f, y3; \ + ANDL e, y3; \ // y3 = e AND f + ANDNL g, e, y1; \ // y1 = NOT(e) AND g + ORL y3, y1; \ // y1 = (e AND f) OR (NOT(e) AND g) +``` +等价公式: +```asm + MOVL f, y1; \ + XORL g, y1; \ + ANDL e, y1; \ + XORL g, y1; \ // y1 = GG2(e, f, g) +``` # 验证