TW202326410A - 節省進位加法器、安全加法器以及執行安全節省進位加法的方法 - Google Patents

節省進位加法器、安全加法器以及執行安全節省進位加法的方法 Download PDF

Info

Publication number
TW202326410A
TW202326410A TW110149614A TW110149614A TW202326410A TW 202326410 A TW202326410 A TW 202326410A TW 110149614 A TW110149614 A TW 110149614A TW 110149614 A TW110149614 A TW 110149614A TW 202326410 A TW202326410 A TW 202326410A
Authority
TW
Taiwan
Prior art keywords
mask
data
mask value
carry
variable
Prior art date
Application number
TW110149614A
Other languages
English (en)
Other versions
TWI785954B (zh
Inventor
吳坤益
李鈺珊
Original Assignee
新唐科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 新唐科技股份有限公司 filed Critical 新唐科技股份有限公司
Priority to TW110149614A priority Critical patent/TWI785954B/zh
Priority to CN202211176891.7A priority patent/CN116414347A/zh
Application granted granted Critical
Publication of TWI785954B publication Critical patent/TWI785954B/zh
Publication of TW202326410A publication Critical patent/TW202326410A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/501Half or full adders, i.e. basic adder cells for one denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)
  • Electrotherapy Devices (AREA)
  • Image Analysis (AREA)
  • Picture Signal Circuits (AREA)
  • Image Processing (AREA)

Abstract

本發明提供預看節省進位加法器。一第一遮罩單元根據一第一遮罩值和一輸入變數對第一遮罩值所對應的一第一輸入資料執行一第一遮罩運算,以得到一第一變數。一第二遮罩單元根據第一遮罩值和一第二遮罩值對第二遮罩值所對應的一第二輸入資料執行一第二遮罩運算,以得到一第一已遮罩資料。一第三遮罩單元根據第一遮罩值和一第三遮罩值對第三遮罩值所對應的一第三資料執行一第三遮罩運算,以得到一第二已遮罩資料。一互斥或閘接收第一和第二已遮罩資料以及第一變數,以提供第一、第二和第三輸入資料的一總和輸出。

Description

節省進位加法器、安全加法器以及執行安全節省進位加法的方法
本發明係有關於一種安全加法器,且特別係有關於安全節省進位加法器。
加法為許多運算之重要函數,故加法器被廣泛地用於信號處理、資料保護等應用中。近年來,加解密應用非常重視如何保護機密資訊,以避免運算資料被分析而遭竊取。一般而言,常見且有效的保護機制為互斥或遮罩技術,其利用亂數和加解密演算法內的重要資料(或變數)執行互斥或運算,以完成遮罩保護機制。因此,加解密應用需一種能夠執行安全加法運算的安全加法器。
安全加法運算是指在不移除輸入資料之遮罩的情況下,安全加法器能夠完成加法運算,且在計算過程中不會透漏輸入資料的原始值,並能提供已被遮罩值保護的輸出。在應用在加解密操作的各種積體電路或電子產品中,能執行安全加法運算的安全加法器會被大量使用。
因此,需要一種低製造成本的安全加法器。
本發明提供一種節省進位加法器。上述節省進位加法器包括一第一遮罩單元、一第二遮罩單元、一第三遮罩單元以及一第一互斥或閘。上述第一遮罩單元根據一第一遮罩值和一輸入變數對上述第一遮罩值所對應的一第一輸入資料執行一第一遮罩運算,以得到一第一變數。上述第二遮罩單元 根據上述第一遮罩值和一第二遮罩值對上述第二遮罩值所對應的一第二輸入資料執行一第二遮罩運算,以得到一第一已遮罩資料。上述第三遮罩單元根據上述第一遮罩值和一第三遮罩值對上述第三遮罩值所對應的一第三輸入資料執行一第三遮罩運算,以得到一第二已遮罩資料。上述第一互斥或閘接收上述第一已遮罩資料、上述第二已遮罩資料以及上述第一變數,以提供上述第一輸入資料、上述第二輸入資料和上述第三輸入資料的一總和輸出。
再者,本發明提供一種安全加法器。上述安全加法器包括一遮罩產生器以及一節省進位加法器。上述遮罩產生器包括一亂數產生器,用以隨機地產生一第一遮罩值、一第二遮罩值、一第三遮罩值以及一輸入變數。上述節省進位加法器包括一第一遮罩單元、一第二遮罩單元、一第三遮罩單元以及一第一互斥或閘。上述第一遮罩單元根據上述第一遮罩值和上述輸入變數對上述第一遮罩值所對應的一第一輸入資料執行一第一遮罩運算,以得到一第一變數。上述第二遮罩單元根據上述第一遮罩值和上述第二遮罩值對上述第二遮罩值所對應的一第二輸入資料執行一第二遮罩運算,以得到一第一已遮罩資料。上述第三遮罩單元根據上述第一遮罩值和上述第三遮罩值對上述第三遮罩值所對應的一第三輸入資料執行一第三遮罩運算,以得到一第二已遮罩資料。上述第一互斥或閘接收上述第一已遮罩資料、上述第二已遮罩資料以及上述第一變數,以提供上述第一輸入資料、上述第二輸入資料和上述第三輸入資料的一總和輸出。
再者,本發明提供一種執行安全節省進位加法的方法。根據一第一遮罩值和一輸入變數對上述第一遮罩值所對應的一第一輸入資料執行一第一遮罩運算,以得到一第一變數。根據上述第一遮罩值和一第二遮罩值對上述第二遮罩值所對應的一第二輸入資料執行一第二遮罩運算,以得到一第一已遮罩資料。根據上述第一遮罩值和一第三遮罩值對上述第三遮罩值所對應的一第三輸入資料執行一第三遮罩運算,以得到一第二已遮罩資料。使用一互斥或閘,對上述第一已遮罩資料、上述第二已遮罩資料以及上述第一變數執行一互斥或運算,以提供上述第一輸入資料、上述第二輸入資料和上述第三輸入資料的一總和輸出。
為讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉出較佳實施例,並配合所附圖式,作詳細說明如下:
第1圖係顯示根據本發明一些實施例所述之安全加法器100。安全加法器100可實施於積體電路(未顯示)中。此外,安全加法器100可在不透漏運算元的情況下完成加法運算,並對輸出結果提供遮罩(mask)保護。在一些實施例中,安全加法器100可透過匯流排10與積體電路內的其他電路(未顯示)執行資料傳送。例如,處理器(未顯示)可經由匯流排10提供多個輸入資料(或運算元)至安全加法器100以執行加法運算。在一些實施例中,輸入資料可以是未被遮罩的原始資料。在一些實施例中,輸入資料可以是已被遮罩的資料。此外,在完成加法運算之後,安全加法器100會經由匯流排10提供已遮罩之運算結果至處理器。
在第1圖中,安全加法器100包括匯流排介面110、遮罩產生器120、選擇電路130、儲存電路140、安全節省進位加法器(carry-save adder,簡稱CSA)150以及安全預看進位(secure carry-lookahead adder,簡稱SCLA)加法器160。匯流排介面110耦接於匯流排10,並配置以將來自匯流排10的各種輸入資料(例如運算元、遮罩值、控制信號等)提供至遮罩產生器120、選擇電路130以及安全預看進位加法器160。此外,在完成加法運算之後,匯流排介面110被配置以將來自安全預看進位加法器160的輸出資料(例如運算結果)提供至匯流排10。
遮罩產生器120包括亂數產生器(random number generator,簡稱RNG)122以及遮罩單元124。亂數產生器122會根據來自匯流排介面110的控制信號Ctrl1而產生多個亂數,以作為遮罩值rx_int、ry_int與rz_int以及遮罩值Rsum_int。在一些實施利中,遮罩值rx_int是不同於遮罩值ry_int和遮罩值rz_int。在一些實施例中,遮罩值rx_int是相同於遮罩值ry_int或遮罩值rz_int。亂數產生器122被配置以提供遮罩值rx_int、ry_int與rz_int至遮罩單元124,並提供遮罩值rx_int、ry_int與rz_int以及遮罩值Rsum_int至選擇電路130。在一些實施例中,控制信號Ctrl1是由外部電路(即積體電路內的其他電路)經由匯流排10所提供。在一些實施例中,匯流排介面110是根據來自匯流排10的輸入資料而產生控制信號Ctrl1至遮罩產生器120。
遮罩單元124會根據遮罩值rx_int、遮罩值ry_int與遮罩值rz_int分別對來自匯流排介面110的資料x、資料y和資料z執行遮罩運算,以得到已遮罩資料x'_int、已遮罩資料y'_int和已遮罩資料z'_int。一般而言,遮罩運算是表示將多位元的資料與多位元的遮罩值執行互斥或運算(Exclusive-OR或XOR),以便將資料中的一部分的位元遮掉並提供已遮罩的資料,於是可避免資料被竊取。此外,遮罩單元124亦會提供已遮罩資料x'_int、已遮罩資料y'_int和已遮罩資料z'_int至選擇電路130。再者,資料x、資料y和資料z是由外部電路透過匯流排10所提供。
選擇電路130包括多工器(multiplexer,簡稱MUX)131至137。在此實施例中,多工器131至137是由相同的選擇信號SEL所控制。在一些實施例中,選擇信號SEL是由外部電路經由匯流排10所提供。在一些實施例中,匯流排介面110是根據來自匯流排10的輸入資料而產生選擇信號SEL至選擇電路130。當選擇信號SEL具有第一邏輯位準時,選擇信號SEL會控制多工器131至137將來自匯流排介面110的已遮罩資料x'_ext、y'_ext和z'_ext、遮罩值rx_ext、ry_ext、rz_ext以及遮罩值Rsum_ext提供至儲存電路140,並儲存在對應的暫存器(或記憶體)內。遮罩值rx_ext、ry_ext、rz_ext、遮罩值Rsum_ext以及已遮罩資料x'_ext、y'_ext和z'_ext是由外部電路經由匯流排10所提供。另一方面,當選擇信號SEL具有第二邏輯位準時,選擇信號SEL會控制多工器131-137將來自遮罩產生器120的已遮罩資料x'_int、y'_int和z'_int、遮罩值rx_int、ry_int、rz_int以及遮罩值Rsum_int提供至儲存電路140,並儲存在對應的暫存器(或儲存器)內。
對安全加法器100而言,已遮罩資料x'_int、y'_int和z'_int、遮罩值rx_int、ry_int、rz_int和遮罩值Rsum_int是內部的遮罩產生器120所產生。如先前所描述,已遮罩資料x'_int的產生是與遮罩值rx_int相關、已遮罩資料y'_int的產生是與遮罩值ry_int相關,而已遮罩資料z'_int的產生是與遮罩值rz_int相關。另一方面,對安全加法器100而言,已遮罩資料x'_ext、y'_ext和z'_ext、遮罩值rx_ext、ry_ext、rz_ext與遮罩值Rsum_ext是外部電路所提供。此外,已遮罩資料x'_ext的產生是與遮罩值rx_ext相關、已遮罩資料y'_ext的產生是與遮罩值ry_ext相關,而已遮罩資料z'_ext的產生是與遮罩值rz_ext相關。在一些實施例中,遮罩值rx_ext是不同於遮罩值ry_ext和rz_ext。在一些實施例中,遮罩值rx_ext是相同於遮罩值ry_ext或rz_ext。
儲存電路140包括暫存器141-147。暫存器141可儲存來自多工器131的已遮罩資料x'_int或是已遮罩資料x'_ext,並作為安全節省進位加法器150的輸入資料x'。暫存器142可儲存來自多工器132的已遮罩資料y'_int或是已遮罩資料y'_ext,並作為安全節省進位加法器150的輸入資料y'。暫存器143可儲存來自多工器133的已遮罩資料z'_int或是已遮罩資料z'_ext,並作為安全節省進位加法器150的輸入資料z'。對安全節省進位加法器150而言,輸入資料x'、輸入資料y'與輸入資料z'是已被遮罩的資料。再者,暫存器144可儲存來自多工器134的遮罩值rx_int或是遮罩值rx_ext,並作為安全節省進位加法器150的遮罩值rx。暫存器145可儲存來自多工器135的遮罩值ry_int或是遮罩值ry_ext,並作為安全節省進位加法器150的遮罩值ry。暫存器146可儲存來自多工器136的遮罩值rz_int或是遮罩值rz_ext,並作為安全節省進位加法器150的遮罩值rz。再者,暫存器147可儲存來自多工器137的遮罩值Rsum_int或是遮罩值Rsum_ext,並作為安全節省進位加法器150的變數Rsum。接著,安全節省進位加法器150會根據來自儲存電路140的輸入資料x'、y'和z'、遮罩值rz、ry和rz以及變數Rsum而產生進位輸出Cout以及總和輸出Sout。
在不移除遮罩值rz、ry和rz的情況下,安全節省進位加法器150可以對三個輸入資料x'、y'和z'進行加法運算並得到進位輸出Cout以及總和輸出Sout。接著,安全節省進位加法器150會提供進位輸出Cout和總和輸出Sout以及遮罩值R和變數Rsum至安全預看進位加法器160,其中遮罩值R和變數Rsum是分別是進位輸出Cout和總和輸出Sout的遮罩值。在一些實施例中,可透過遮罩值R對三個輸入資料x'、y'和z'進行加法運算所得的進位值執行遮罩運算而得到進位輸出Cout,以及可透過變數Rsum對三個輸入資料x'、y'和z'進行加法運算所得的總和值執行遮罩運算而得到總和輸出Sout。接著,安全預看進位加法器160會根據遮罩值R和變數Rsum對進位輸出Cout和總和輸出Sout執行加法運算,並使用遮罩值rs對加法運算的結果執行遮罩運算而得到加總結果s'。在一些實施例中,遮罩值rs可以是由外部電路(即積體電路內的其他電路)經由匯流排10所提供。在一些實施例中,遮罩值rs可以是由遮罩產生器120所提供。具體而言,遮罩值rs是用來對預看進位加法運算的結果執行遮罩運算,以便對輸出結果提供安全性保護。
第2圖係顯示根據本發明一些實施例所述之執行安全節省進位加法的方法,適用於第1圖的安全節省進位加法器150。在一些實施例中,第2圖的執行安全節省進位加法的方法可由其他電路(例如處理器)所執行。
首先,在步驟S210,得到遮罩值rx、ry和rz以及輸入資料x'、y'和z'。如先前所描述,輸入資料x'是透過使用遮罩值rx對資料x執行遮罩運算(例如XOR運算“⊕”)而得到,如下列算式(1)所顯示: x' = x⊕rx                      (1)。 相似地,輸入資料y'是透過使用遮罩值ry對資料y執行遮罩運算而得到,如下列算式(2)所顯示: y' = y⊕ry                       (2)。 再者,輸入資料z'是透過使用遮罩值rz對資料z執行遮罩運算而得到,如下列算式(3)所顯示: z' = z⊕rz                       (3)。
在步驟S220,根據遮罩值rx、遮罩值ry或是遮罩值rz,可得到變數R。例如,變數R可以等於遮罩值rx、遮罩值ry或是遮罩值rz。在此實施例中,變數R是等於遮罩值rx,如下列算式(4)所顯示: R = rx                           (4)。 再者,根據遮罩值rx、遮罩值ry和遮罩值rz可得到變數Rxy與變數Rxz,如下列算式(5)和算式(6)所顯示: Rxy = rx⊕ry                   (5);及 Rxz = rx⊕rz                   (6)。 在一些實施例中,當變數R是等於遮罩值ry時,則根據遮罩值rx、遮罩值ry和遮罩值rz可得到變數Rxy與變數Ryz,其中Ryz=ry⊕rz。在一些實施例中,當變數R是等於遮罩值rz時,則根據遮罩值rx、遮罩值ry和遮罩值rz可得到變數Rxz與變數Ryz,其中Rxz=rx⊕rz。
當變數R等於遮罩值rx時,可根據輸入資料x'而得到已遮罩資料x'',如下列算式(7)所顯示。 x'' = x'                              (7)。 此外,根據變數Rxy和Rxz分別對輸入資料y'和輸入資料z'執行遮罩運算,以便得到已遮罩資料y''和已遮罩資料z'',分別如下列算式(8)和算式(9)所顯示: y'' = y'⊕Rxy                       (8);及 z'' = z'⊕Rxz                       (9)。 根據算式(1)和算式(7)可知,已遮罩資料x''等於資料x和變數R執行XOR運算,如下列算式(10)所顯示: x'' = x' = x⊕rx= x⊕R          (10)。 此外,假如遮罩值ry不同於遮罩值rx(即ry≠rx),則根據算式(2)、算式(4)和算式(5),可知已遮罩資料y''等於資料y和變數R執行XOR運算,如下列算式(11)所顯示: y'' = y'⊕Rxy = (y⊕ry)⊕(rx⊕ry) = y⊕rx⊕(ry⊕ry) = y⊕R       (11)。 反之,假如遮罩值ry相同於遮罩值rx(即ry=rx),則Rxy等於0。於是,根據算式(2)和算式(5)以及遮罩值ry相同於遮罩值rx且變數R亦等於遮罩值rx,可知已遮罩資料y''等於資料y和變數R執行XOR運算,如下列算式(12)所顯示: y'' = y'⊕Rxy = y'⊕0= y' = y⊕ry = y⊕rx = y⊕R     (12)。 由算式(11)和算式(12)可知,無論遮罩值ry是否相同於遮罩值rx,已遮罩資料y''都等於資料y和變數R執行XOR運算。此外,在算式(10)-算式(12)的運算過程中皆不會透露出資料x和資料y的原始值。換言之,使用安全加法器100來執行加法運算是不需要對遮罩值ry與遮罩值rx進行限制,例如在傳統安全加法器中需要限制使用不同的遮罩值。
相似地,假如遮罩值rz不同於遮罩值rx(即rz≠rx),則根據算式(3)、算式(4)和算式(6),可知已遮罩資料z''等於資料z和變數R執行XOR運算,如下列算式(13)所顯示: z'' = z'⊕Rxz = (z⊕rz)⊕(rx⊕rz) = z⊕rx⊕(rz⊕rz) = z⊕R       (13)。 反之,假如遮罩值rz相同於遮罩值rx(即rz=rx),則Rxz等於0。於是,根據算式(3)和算式(6)以及遮罩值rz相同於遮罩值rx且變數R亦等於遮罩值rx,可知已遮罩資料z''等於資料z和變數R執行XOR運算,如下列算式(14)所顯示: z'' = z'⊕Rxz = z'⊕0= z' = z⊕rz = z⊕rx = z⊕R      (14)。 由算式(13)和算式(14)可知,無論遮罩值rz是否相同於遮罩值rx,已遮罩資料z''都等於資料z和變數R執行XOR運算。此外,在算式(10)、算式(13)和算式(14)的運算過程中皆不會透露出資料x和資料z的原始值。換言之,使用安全加法器100來執行加法運算是不需要對遮罩值rz與遮罩值rx進行限制,例如在傳統安全加法器中需要限制遮罩值rz不相同於遮罩值rx。
節省進位加法器主要是將三個資料x、y和 z壓縮成兩個原始輸出值sum和carry(即未被遮罩的原始值),如下列算式(15)和算式(16)所顯示: sum= x⊕y⊕z                  (15);以及 carry = (x&y) | (x&z) | (y&z) (16), 其中“|”是表示或(OR)運算,而“&” 是表示及(AND)運算。
假設對已遮罩資料x''、已遮罩資料y''和已遮罩資料z''執行互斥或運算可得到已遮罩資料sum'',如下列算式(17)所顯示: sum'' = x''⊕y''⊕z''           (17)。 接著,將算式(10)-(15)代入算式(17),可得到算式(18)並改寫成算式(19),如下列所顯示: sum'' = (x⊕R)⊕(y⊕R)⊕(x⊕R) = (x⊕y⊕z)⊕R = sum⊕R               (18)。 sum = sum''⊕R                   (19)。 相似地,假設對已遮罩資料x''、已遮罩資料y''和已遮罩資料z''執行或運算與及運算可得到已遮罩資料carry'',如下列算式(20)所顯示: carry'' = (x''&y'') | (x''&z'') | (y''&z'')   (20)。 接著,將算式(10)-(15)代入算式20,可得到算式(21) ,如下列所顯示: carry'' = ((x⊕R)&(y⊕R)) | ((x⊕R)&(z⊕R)) | ((y⊕R)&(z⊕R))         (21)。 接著,根據AND運算以及XOR運算之間的分配律而將算式(21)改寫成算式(22),如下列所顯示: carry'' = ((x&y)⊕((x⊕y)&R)⊕R) | ((x&z)⊕((x⊕z)&R)⊕R) | ((y&z)⊕((y⊕z)&R)⊕R)   (22)。 為了簡化算式,設定新的變數Exy、Eyz和Exz,如下列算式(23)-(25)所顯示: Exy = ((x⊕y)&R)⊕R           (23); Exz = ((x⊕z)&R)⊕R            (24);以及 Eyz = ((y⊕z)&R)⊕R            (25)。 接著,將變數Exy、Eyz和Exz代入算式(22),可得到算式(26) ,如下列所顯示: carry'' = ((x&y)⊕Exy) | ((x&z)⊕Exz) | ((y&z)⊕Eyz)                  (26)。
參考第3圖,第3圖係顯示根據本發明一些實施例所述之變數Exy的真值表。如第3圖所顯示,如果資料x和資料y相等時,變數Exy會等於R值。反之,如果資料x不同於資料y時,變數Exy會等於0。相似地,如果資料x和資料z相等時,變數Exz會等於R值。反之,如果資料x不同於資料z時,變數Exz會等於0。再者,如果資料y和資料z相等時,變數Eyz會等於R值。反之,如果資料y不同於資料z時,變數Eyz會等於0。
第4圖係顯示根據本發明一些實施例所述之算式(16)的原始輸出值carry的真值表,以及第5圖係顯示根據本發明一些實施例所述之算式(26)的已遮罩資料carry''的真值表。同時參考第4圖與第5圖,當變數R等於0時,無論資料x、資料y和資料z的值為何,已遮罩資料carry''的值會相同於原始輸出值carry。反之,當變數R等於1時,無論資料x、資料y和資料z的值為何,已遮罩資料carry''的值是相反於(或互補於)原始輸出值carry。因此,可由第4圖和第5圖推導出下列算式(27): carry = carry''⊕R             (27)。
接著,設定原始輸出值sum和原始輸出值carry的遮罩值分別為Rsum和Rcarry。再者,為了最佳化安全節省進位加法器,將遮罩值Rcarry設定為變數R。此外,可分別使用遮罩值Rcarry和變數Rsum對原始輸出值carry和原始輸出值sum執行遮罩運算,以得到進位輸出Cout和總和輸出Sout,如下列算式(28)-算式(29)所顯示: Sout = sum⊕Rsum = sum''⊕R⊕Rsum = x''⊕y''⊕z''⊕R⊕Rsum    (28);以及 Cout = carry⊕Rcarry = carry''⊕R⊕Rcarry = carry''                  (29)。 由於遮罩值Rcarry等於變數R,所以算式(29)可以最佳化成Cout=carry''。再者,將變數R與變數Rsum執行互斥或運算可得到變數Rsum',如下列算式(30)所顯示: Rsum' = (R⊕Rsum)          (30)。 接著,將已遮罩資料x''與變數Rsum'執行互斥或運算可得到變數Rsum'',如下列算式(31)所顯示: Rsum'' = (x''⊕Rsum')           (31)。 於是,將算式(30)與算式(31)代入算式(28),可得到算式(32),如下列所顯示: Sout = y''⊕z''⊕Rsum''     (32)。
參考回第2圖,在步驟S230,根據已遮罩資料x''、y''和z''之一者(例如已遮罩資料x')、變數R以及輸入變數Rsum,可得到變數Rsum'',如算式(30)和(31)所顯示。接著,在步驟S240,根據已遮罩資料x''、y''和z''之另兩者(例如已遮罩資料y''和已遮罩資料z'')以及變數Rsum'',可得到總和輸出Sout以及進位輸出Cout,如算式(29)和(32)所顯示。
接著,在步驟S250,將總和輸出Sout和進位輸出Cout以及變數R、變數Rsum和遮罩值rs進行安全預看進位加法運算,以得到已遮罩資料s'。如先前所描述,原始輸出值sum和原始輸出值carry的遮罩值分別為輸入變數Rsum和變數R。藉由使用安全預看進位加法器,例如第1圖的安全預看進位加法器160,可對已被輸入變數Rsum和變數R所遮罩的總和輸出Sout以及進位輸出Cout執行加法運算,並使用遮罩值rs對運算結果提供遮罩保護,以得到已遮罩資料s'。
值得注意的是,在此實施例中,變數R是等於遮罩值rx,於是根據已遮罩資料y''和z''以及變數Rsum''可得到總和輸出Sout,如算式(32)所顯示。此外,變數Rsum''是根據已遮罩資料x''而得到,如算式(31)所顯示。於是,根據算式(10)-(14)、算式(18) 、算式(20)、算式(29) 、算式(30)、算式(31)、算式(32)可得到安全節省進位加法器150的邏輯電路。
在一些實施例中,變數R是等於遮罩值ry,於是根據已遮罩資料x''和z''以及變數Rsum''可得到總和輸出Sout,如下列算式(33)所顯示: Sout = x''⊕z''⊕Rsum''     (33)。 此外,變數Rsum''是根據已遮罩資料y''而得到,如下列算式(34)所顯示: Rsum'' = (y''⊕Rsum')           (34)。
在一些實施例中,變數R是等於遮罩值rz,於是根據已遮罩資料x''和y''以及變數Rsum''可得到總和輸出Sout,如下列算式(35)所顯示: Sout = x''⊕y''⊕Rsum''     (35)。 此外,變數Rsum''是根據已遮罩資料z''而得到,如下列算式(36)所顯示: Rsum'' = (z''⊕Rsum')           (36)。
第6A圖係顯示根據本發明一些實施例所述之安全節省進位加法器150A的示範電路圖。安全節省進位加法器150A包括遮罩單元310a、320a和330a、邏輯電路340以及互斥或(XOR)閘410。在此實施例中,變數R是等於遮罩值rx。
遮罩單元310a被配置以根據遮罩值rx和ry對輸入資料y'執行遮罩運算,以得到已遮罩資料y''。在一些實施例中,遮罩單元310a包括XOR閘412和414。XOR閘412用以將遮罩值ry和遮罩值rx執行XOR運算,以得到變數Rxy,如算式(5)所顯示。接著,XOR閘414被配置以根據變數Rxy對輸入資料y'執行遮罩運算(即XOR運算),以便得到已遮罩資料y'',如算式(8)所顯示。
遮罩單元320a被配置以根據遮罩值rx(即變數R)和變數(或遮罩值)Rsum對輸入資料x'執行遮罩運算,以得到變數Rsum'',而變數Rsum''亦可視為已遮罩資料。在一些實施例中,遮罩單元320a包括XOR閘422和424。XOR閘422用以將變數R(即遮罩值rx)和變數Rsum執行XOR運算,以得到變數Rsum',如算式(30)所顯示。接著,XOR閘424被配置以根據變數Rsum'對已遮罩資料x''(即輸入資料x')執行遮罩運算,以便得到變數Rsum'',如算式(31)所顯示。
遮罩單元330a被配置以根據遮罩值rx和rz對輸入資料z'執行遮罩運算,以得到已遮罩資料z''。在一些實施例中,遮罩單元330a包括XOR閘432和434。XOR閘432用以將遮罩值rx和遮罩值rz執行XOR運算,以得到變數Rxz,如算式(6)所顯示。接著,XOR閘434被配置以根據變數Rxz對輸入資料z'執行遮罩運算,以便得到已遮罩資料z'',如算式(9)所顯示。
邏輯電路340是根據已遮罩資料x''、y''和z''而提供進位輸出Cout。在一些實施例中,邏輯電路340包括AND閘352、354和356與或(OR)閘360。AND閘352被配置以接收已遮罩資料y''和z'',並輸出中間資料D1。此外,AND閘354被配置以接收已遮罩資料y''和x'',並輸出中間資料D2。再者,AND閘356被配置以接收已遮罩資料z''和x'',並輸出中間資料D3。OR閘360被配置以接收中間資料D1、D2和D3,並輸出進位輸出Cout,如算式(20)和算式(29)所顯示。
XOR閘410被配置以接收已遮罩資料y''和z''以及變數Rsum'',並輸出總和輸出Sout,如算式(32)所顯示。於是,安全節省進位加法器150在不移除遮罩值rz、ry和rz的情況下,對三個輸入資料x'、y'和z'進行加法運算,並提供總和輸出Sout與進位輸出Cout。
在得到總和輸出Sout與進位輸出Cout之後,安全節省進位加法器150會提供總和輸出Sout與進位輸出Cout以及變數Rsum和R至第1圖的安全預看進位加法器160。如先前所描述,變數Rsum和R是總和輸出Sout與進位輸出Cout的遮罩值。接著,安全預看進位加法器160可在不移除遮罩值Rsum和R的情況下,對總和輸出Sout與進位輸出Cout進行加法運算,並使用遮罩值rs對加法運算的結果執行遮罩運算而得到加總結果s'。接著,安全預看進位加法器160會提供已被遮罩的加總結果s'至匯流排介面110,以便經由匯流排10提供至其他電路(例如處理器)並進行後續運算。此外,除了提供加總結果s'之外,第1圖的安全加法器100會更提供遮罩值rs至其他電路。於是,其他電路可使用遮罩值rs移除加總結果s'之遮罩並進行後續運算。
第6B圖係顯示根據本發明一些實施例所述之安全節省進位加法器150B的示範電路圖。安全節省進位加法器150B包括遮罩單元310b、320b和330b、邏輯電路340以及XOR閘410。在此實施例中,變數R是等於遮罩值ry。
在第6B圖中,遮罩單元310b被配置以根據遮罩值rx和ry對輸入資料x'執行遮罩運算,以得到已遮罩資料x''。此外,遮罩單元320b被配置以根據遮罩值ry(即變數R)和變數Rsum對輸入資料y'執行遮罩運算,以得到變數Rsum''。再者,遮罩單元330b被配置以根據遮罩值ry和rz對輸入資料z'執行遮罩運算,以得到已遮罩資料z''。
相似於第6A圖,安全節省進位加法器150B的邏輯電路340是根據已遮罩資料x''、y''和z''而提供進位輸出Cout。此外,安全節省進位加法器150B的XOR閘410被配置以接收已遮罩資料x''和z''以及變數Rsum'',並輸出總和輸出Sout,如算式(33)所顯示。
第6C圖係顯示根據本發明一些實施例所述之安全節省進位加法器150C的示範電路圖。安全節省進位加法器150C包括遮罩單元310c、320c和330c、邏輯電路340以及XOR閘410。在此實施例中,變數R是等於遮罩值rz。
在第6C圖中,遮罩單元310c被配置以根據遮罩值rz和ry對輸入資料y'執行遮罩運算,以得到已遮罩資料y''。此外,遮罩單元320b被配置以根據遮罩值rz(即變數R)和變數Rsum對輸入資料z'執行遮罩運算,以得到變數Rsum''。再者,遮罩單元330c被配置以根據遮罩值rx和rz對輸入資料x'執行遮罩運算,以得到已遮罩資料x''。
相似於第6A圖,安全節省進位加法器150C的邏輯電路340是根據已遮罩資料x''、y''和z''而提供進位輸出Cout。此外,安全節省進位加法器150C的XOR閘410被配置以接收已遮罩資料y''和z''以及變數Rsum'',並輸出總和輸出Sout,如算式(35)所顯示。
根據本發明實施例,在安全加法器100中,使用安全節省進位加法器150和預看進位加法器160可對已被遮罩的三個輸入資料執行加法運算,並對運算結果提供遮罩保護。相較於傳統的節省進位加法器,安全節省進位加法器150不需要將三個輸入資料的遮罩移除(即安全節省進位加法器150不會透露輸入資料(或運算元)的原始值),因此可對輸入信號提供安全保護。再者,無論遮罩值rx、遮罩值ry與遮罩值rz是否相同,安全節省進位加法器150都能正確地執行加法運算。此外,使用安全節省進位加法器150執行加解密運算時,因為不需要使用預看進位產生器,所以可有效降低硬體電路的複雜度(例如使用較少的邏輯單元)和延遲。於是,可降低安全加法器的耗電量並減少積體電路的面積,進而降低製造成本。
雖然本發明已以較佳實施例發明如上,然其並非用以限定本發明,任何所屬技術領域中包括通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10:匯流排 100:安全加法器 110:匯流排介面 120:遮罩產生器 122:亂數產生器 124:遮罩單元 130:選擇電路 131-137:多工器 140:儲存電路 141-147:暫存器 150,150A-150C:節省進位加法器 160:安全預看進位加法器 310a-310c,320a-320c,330a-330c:遮罩單元 340:邏輯電路 352-356:AND閘 360:OR閘 410,412-414,422-424,432-434:XOR閘 Cout:進位輸出 Ctrl1:控制信號 carry:原始輸出值 carry'':已遮罩資料 D1-D3:中間資料 Exy,Eyz,Exz:變數 rx,ry,rz,rs:遮罩值 rx_int,ry_int,rz_int,rx_ext,ry_ext,rz_ext:遮罩值 Sout:總和輸出 Rsum_int,Rsum_ext:遮罩值 R,Rsum,Rsum',Rsum'':變數 Rxy,Rxz,Ryz:變數 S210-S250:步驟 SEL:選擇信號 s':加總結果 x,y,z:資料 x',y',z':輸入資料 x'_int,y'_ int,z'_ int,x'_ext,y'_ext,z'_ext:已遮罩資料 x'',y'',z'':已遮罩資料
第1圖係顯示根據本發明一些實施例所述之安全加法器。 第2圖係顯示根據本發明一些實施例所述之執行安全節省進位加法的方法,適用於第1圖的節省進位加法器。 第3圖係顯示根據本發明一些實施例所述之變數Exy的真值表。 第4圖係顯示根據本發明一些實施例所述之原始輸出值carry的真值表。 第5圖係顯示根據本發明一些實施例所述之已遮罩資料carry''的真值表。 第6A圖係顯示根據本發明一些實施例所述之節省進位加法器的示範電路圖。 第6B圖係顯示根據本發明一些實施例所述之節省進位加法器的示範電路圖。 第6C圖係顯示根據本發明一些實施例所述之節省進位加法器的示範電路圖。
10:匯流排
100:安全加法器
110:匯流排介面
120:遮罩產生器
122:亂數產生器
124:遮罩單元
130:選擇電路
131-137:多工器
140:儲存電路
141-147:暫存器
150:安全節省進位加法器
160:安全預看進位加法器
Cout:進位輸出
Ctr11:控制信號
rx,ry,rz,rs:遮罩值
rx_int,ry_int,rz_int,rx_ext,ry_ext,rz_ext:遮罩值
Sout:總和輸出
Rsum_int,Rsum_ext:遮罩值
R,Rsum:變數
SEL:選擇信號
s':加總結果
x,y,z:資料
x',y',z':輸入資料
x'_int,y'_int,z'_int,x'_ext,y'_ext,z'_ext:已遮罩資料

Claims (10)

  1. 一種節省進位加法器,包括: 一第一遮罩單元 ,用以根據一第一遮罩值和一輸入變數對上述第一遮罩值所對應的一第一輸入資料執行一第一遮罩運算,以得到一第一變數; 一第二遮罩單元 ,用以根據上述第一遮罩值和一第二遮罩值對上述第二遮罩值所對應於的一第二輸入資料執行一第二遮罩運算;以得到一第一已遮罩資料; 一第三遮罩單元,用以根據上述第一遮罩值和一第三遮罩值對上述第三遮罩值所對應於的一第三輸入資料執行一第三遮罩運算;以得到一第二已遮罩資料;以及 一第一互斥或閘,用以接收上述第一已遮罩資料、上述第二已遮罩資料以及上述第一變數,以提供上述第一輸入資料、上述第二輸入資料和上述第三輸入資料的一總和輸出。
  2. 如請求項1之節省進位加法器,更包括: 一邏輯電路 ,用以接收上述第一已遮罩資料、上述第二已遮罩資料以及上述第一輸入資料,以提供上述第一輸入資料、上述第二輸入資料和上述第三輸入資料的一進位輸出。
  3. 如請求項2之節省進位加法器,其中上述邏輯電路包括: 一第一及閘,用以接收上述第一已遮罩資料和上述第二已遮罩資料,以提供一第一中間資料; 一第二及閘,用以接收上述第一已遮罩資料和上述第一輸入資料,以提供一第二中間資料; 一第三及閘,用以接收上述第二已遮罩資料和上述第一輸入資料,以提供一第三中間資料;以及 一或閘,用以接收上述第一中間資料、上述第二中間資料以及上述第三中間資料,以提供上述進位輸出。
  4. 如請求項1之節省進位加法器,其中上述第一遮罩單元包括: 一第二互斥或閘,用以接收上述第一遮罩值和上述輸入變數,以提供一第二變數;以及 一第三互斥或閘,用以接收上述第二變數和上述第一輸入資料;以提供上述第一變數; 其中上述第一輸入資料是使用上述第一遮罩值對一第一資料執行遮罩運算而得到。
  5. 一種安全加法器,包括: 一遮罩產生器,包括: 一亂數產生器,用以隨機地產生一第一遮罩值、一第二遮罩值、一第三遮罩值以及一輸入變數;以及 一節省進位加法器,包括: 一第一遮罩單元 ,用以根據上述第一遮罩值和上述輸入變數對上述第一遮罩值所對應的一第一輸入資料執行一第一遮罩運算,以得到一第一變數; 一第二遮罩單元 ,用以根據上述第一遮罩值和上述第二遮罩值對上述第二遮罩值所對應的一第二輸入資料執行一第二遮罩運算;以得到一第一已遮罩資料; 一第三遮罩單元,用以根據上述第一遮罩值和上述第三遮罩值對上述第三遮罩值所對應的一第三輸入資料執行一第三遮罩運算;以得到一第二已遮罩資料;以及 一第一互斥或閘,用以接收上述第一已遮罩資料、上述第二已遮罩資料以及上述第一變數,以提供上述第一輸入資料、上述第二輸入資料和上述第三輸入資料的一總和輸出。
  6. 如請求項5之安全加法器,更包括: 一預看進位加法器,用以根據上述總和輸出、一進位輸出、上述輸入變數以及上述第一遮罩值而提供上述第一輸入資料、上述第二輸入資料和上述第三輸入資料的一加總結果; 其中上述節省進位加法器更包括: 一邏輯電路 ,用以接收上述第一已遮罩資料、上述第二已遮罩資料以及上述第一輸入資料,以提供上述第一輸入資料、上述第二輸入資料和上述第三輸入資料的上述進位輸出; 其中上述輸入變數是上述總和輸出的遮罩值,以及上述第一遮罩值是上述進位輸出的遮罩值。
  7. 如請求項6之安全加法器,其中上述預看進位加法器更根據一第四遮罩值對上述加總結果執行一第四遮罩運算。
  8. 如請求項5之安全加法器,其中上述第一遮罩單元包括: 一第二互斥或閘,用以接收上述第一遮罩值和上述輸入變數,以提供一第二變數;以及 一第三互斥或閘,用以接收上述第二變數和上述第一輸入資料;以提供上述第一變數 其中上述第一輸入資料是使用上述第一遮罩值對一第一資料執行遮罩運算而得到。
  9. 一種執行安全節省進位加法的方法,包括: 根據一第一遮罩值和一輸入變數,對上述第一遮罩值所對應的一第一輸入資料執行一第一遮罩運算,以得到一第一變數; 根據上述第一遮罩值和一第二遮罩值,對上述第二遮罩值所對應的一第二輸入資料執行一第二遮罩運算,以得到一第一已遮罩資料; 根據上述第一遮罩值和一第三遮罩值,對上述第三遮罩值所對應的一第三輸入資料執行一第三遮罩運算,以得到一第二已遮罩資料;以及 使用一互斥或閘,對上述第一已遮罩資料、上述第二已遮罩資料以及上述第一變數執行一互斥或運算,以提供上述第一輸入資料、上述第二輸入資料和上述第三輸入資料的一總和輸出。
  10. 如請求項9之執行安全節省進位加法的方法,更包括: 使用一預看進位加法器,用以根據上述總和輸出、上述進位輸出、上述輸入變數以及上述第一遮罩值而提供上述第一輸入資料、上述第二輸入資料和上述第三輸入資料的一加總結果; 其中上述輸入變數是上述總和輸出的遮罩值,以及上述第一遮罩值是上述進位輸出的遮罩值。
TW110149614A 2021-12-30 2021-12-30 節省進位加法器、安全加法器以及執行安全節省進位加法的方法 TWI785954B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW110149614A TWI785954B (zh) 2021-12-30 2021-12-30 節省進位加法器、安全加法器以及執行安全節省進位加法的方法
CN202211176891.7A CN116414347A (zh) 2021-12-30 2022-09-26 节省进位加法器、安全加法器以及执行安全节省进位加法的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW110149614A TWI785954B (zh) 2021-12-30 2021-12-30 節省進位加法器、安全加法器以及執行安全節省進位加法的方法

Publications (2)

Publication Number Publication Date
TWI785954B TWI785954B (zh) 2022-12-01
TW202326410A true TW202326410A (zh) 2023-07-01

Family

ID=85794829

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110149614A TWI785954B (zh) 2021-12-30 2021-12-30 節省進位加法器、安全加法器以及執行安全節省進位加法的方法

Country Status (2)

Country Link
CN (1) CN116414347A (zh)
TW (1) TWI785954B (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684731A (en) * 1995-08-31 1997-11-04 National Semiconductor Corporation Booth multiplier using data path width adder for efficient carry save addition
US6735612B1 (en) * 1997-06-24 2004-05-11 International Business Machines Corporation Carry skip adder
CN109214213A (zh) * 2017-06-29 2019-01-15 中国科学院数据与通信保护研究教育中心 一种大整数模乘加算法的实现电路及方法
CN111488627B (zh) * 2020-04-13 2023-04-07 杭州德旺信息技术有限公司 一种安全散列算法的消息拓展电路

Also Published As

Publication number Publication date
TWI785954B (zh) 2022-12-01
CN116414347A (zh) 2023-07-11

Similar Documents

Publication Publication Date Title
Zimmermann Efficient VLSI implementation of modulo (2/sup n//spl plusmn/1) addition and multiplication
US5325320A (en) Area efficient multiplier for use in an integrated circuit
TWI821501B (zh) 安全處理器、所述安全處理器的操作方法、以及加密或解密資料的方法
US20090086961A1 (en) Montgomery masked modular multiplication process and associated device
Katreepalli et al. High speed power efficient carry select adder design
TWI785954B (zh) 節省進位加法器、安全加法器以及執行安全節省進位加法的方法
Ito et al. Low power multiplication algorithm for switching activity reduction through operand decomposition
GB2262638A (en) Digital system multiplication.
TWI803126B (zh) 預看進位加法器、安全加法器以及執行預看進位加法的方法
TWI785953B (zh) 預看進位加法器、安全加法器以及執行預看進位加法的方法
US6484193B1 (en) Fully pipelined parallel multiplier with a fast clock cycle
JP3412878B2 (ja) 不等桁上げ方式(varied carry scheme)を用いた高速加算器とそれに関連する方法
TWI679577B (zh) 多位元加法器設備與用於執行算術運算之設備及方法
US5257217A (en) Area-efficient multiplier for use in an integrated circuit
Keskar et al. Design of eight bit novel reversible arithmetic and logic unit
Sunder et al. Two's-complement fast serial-parallel multiplier
Mounica et al. Efficient implementation of mixed‐precision multiply‐accumulator unit for AI algorithms
US6684236B1 (en) System of and method for efficiently performing computations through extended booth encoding of the operands thereto
US5781465A (en) Method and apparatus for fast carry generation detection and comparison
Wei Computation of modular multiplicative inverses using residue signed-digit additions
US5978826A (en) Adder with even/odd 1-bit adder cells
CN106897628B (zh) 一种防止被加数侧信道信息泄露的安全处理装置及方法
Mishra et al. Security Implications of Approximation: A Study of Trojan Attacks on Approximate Adders and Multipliers
Verma et al. Progressive decomposition: A heuristic to structure arithmetic circuits
Zhao et al. Side channel power analysis resistance evaluation of masked adders on FPGA