KR101566408B1 - 불 마스크와 산술 마스크의 변환 회로 및 변환 방법 - Google Patents

불 마스크와 산술 마스크의 변환 회로 및 변환 방법 Download PDF

Info

Publication number
KR101566408B1
KR101566408B1 KR1020090021866A KR20090021866A KR101566408B1 KR 101566408 B1 KR101566408 B1 KR 101566408B1 KR 1020090021866 A KR1020090021866 A KR 1020090021866A KR 20090021866 A KR20090021866 A KR 20090021866A KR 101566408 B1 KR101566408 B1 KR 101566408B1
Authority
KR
South Korea
Prior art keywords
bit
result
mask
exclusive
output
Prior art date
Application number
KR1020090021866A
Other languages
English (en)
Other versions
KR20100103304A (ko
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 KR1020090021866A priority Critical patent/KR101566408B1/ko
Priority to US12/717,249 priority patent/US8495116B2/en
Publication of KR20100103304A publication Critical patent/KR20100103304A/ko
Application granted granted Critical
Publication of KR101566408B1 publication Critical patent/KR101566408B1/ko

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/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/764Masking
    • 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/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Computer Hardware Design (AREA)
  • Logic Circuits (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

논리 게이트의 수 및 연산 시간을 감소시킬 수 있는 불 마스크와 산술 마스크의 변환 회로 및 변환 방법이 개시된다. 상기 불 마스크과 산술 마스크의 변환 회로는, m 개의 변환부(m은 2 이상인 자연수)를 구비하는 불 마스크와 산술 마스크의 변환 회로에 있어서, 제1 변환부는, 입력 데이터들 각각의 첫 번째 비트들을 입력받고, 상기 입력받은 비트들 중의 어느 하나를 제1 출력비트로서 출력하며, 상기 입력받은 비트들 중의 일부를 배타적 논리합 연산하여 그 결과를 제1 중간결과비트로서 제2 변환부로 출력하고, 제n 변환부는(n은 2 이상이고, m 이하인 자연수), 상기 입력 데이터들 각각의 n-1번째 비트들 및 n번째 비트들을 입력받고, 제n-1 중간결과비트 및 제n-1 출력비트 중 적어도 하나를 제n-1 변환부로부터 입력받으며, 상기 입력받은 비트들 중에서 제1 그룹을 논리곱 연산 및 배타적 논리합 연산하여 그 결과를 제n 출력비트로서 출력하고, 상기 입력받은 비트들 중에서 제2 그룹을 논리곱 연산 및 배타적 논리합 연산하여 제n 중간결과비트로서 출력하는 것을 특징으로 한다.
불 마스크, 산술 마스크

Description

불 마스크와 산술 마스크의 변환 회로 및 변환 방법{Conversion circuit and method between boolean and arithmetic masks}
본 발명은 불 마스크와 산술 마스크의 변환 회로 및 변환 방법에 관한 것으로, 특히 논리 게이트의 수 및 연산 시간을 감소시킬 수 있는 불 마스크와 산술 마스크의 변환 회로 및 변환 방법에 관한 것이다.
차분 전력 분석 공격(DPA; Differential Power Attack) 등과 같은 부채널 공격법(side-channel cryptanalysis)은 암호 시스템에 대한 기존의 수학적 공격 방법에 비해서 더욱 효율적으로 비밀키 정보를 알아낼 수 있다. 차분 전력 분석 공격에 대한 가장 강력한 대응 기법의 하나로는 마스킹 기법(masking method)이 알려져 있고, 현재 주로 사용되는 두 종류의 마스킹 기법은 불 마스크(boolean mask)와 산술 마스크(arithmetic mask)를 이용한 마스킹 기법이다.
여기에서 불 마스크란 m비트열 정수 a에 대하여 a = y^r (^는 배타적 논리합(Exclusive OR) 연산을 의미)의 관계를 만족시키는 순서쌍 (y, r)을 의미한다. 그리고, 산술 마스크란 m비트열 정수 a에 대하여 a = x+r mod 2n 의 관계를 만족시 키는 순서쌍 (x, r)을 의미한다.
암호화 과정에서 불 마스크와 산술 마스크를 상호 변환하는 회로가 이용될 수 있는데, 기존의 방법은 많은 수의 논리 게이트를 사용하게 되고, 이에 따라 연산 시간도 늘어나는 문제점이 있었다.
본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 논리 게이트의 수 및 연산 시간을 감소시킬 수 있는 불 마스크와 산술 마스크의 변환 회로 및 변환 방법을 제공하는 것을 목적으로 한다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 회로는, m 개의 변환부(m은 2 이상인 자연수)를 구비하고, 제1 변환부는, 입력 데이터들 각각의 첫 번째 비트들을 입력받고, 상기 입력받은 비트들 중의 어느 하나를 제1 출력비트로서 출력하며, 상기 입력받은 비트들 중의 일부를 배타적 논리합 연산하여 그 결과를 제1 중간결과비트로서 제2 변환부로 출력하고, 제n 변환부는(n은 2 이상이고, m 이하인 자연수), 상기 입력 데이터들 각각의 n-1번째 비트들 및 n번째 비트들을 입력받고, 제n-1 중간결과비트 및 제n-1 출력비트 중 적어도 하나를 제n-1 변환부로부터 입력받으며, 상기 입력받은 비트들 중에서 제1 그룹을 논리곱 연산 및 배타적 논리합 연산하여 그 결과를 제n 출력비트로서 출력하고, 상기 입력받은 비트들 중에서 제2 그룹을 논리곱 연산 및 배타적 논리합 연산하여 제n 중간결과비트로서 출력하는 것을 특징으로 한다.
바람직하게는, 상기 제n 변환부는, 상기 제n-1 중간결과비트 및 상기 제n-1 출력비트 중 적어도 하나와 상기 복수 개의 입력 데이터들 각각의 n-1번째 비트들을 입력받고, 상기 입력받은 제n-1 중간결과비트 및 제n-1 출력비트 중 적어도 하 나와 상기 입력받은 n-1번째 비트들 중에서 일부를 논리곱 연산하여 그 결과를 제1 논리곱 결과비트로서 출력하고, 상기 입력받은 제n-1 중간결과비트 및 제n-1 출력비트 중 적어도 하나와 상기 입력받은 n-1번째 비트들 중에서 다른 일부를 논리곱 연산하여 제2 논리곱 결과비트로서 출력하는 논리곱 회로, 및 상기 복수 개의 입력 데이터들 각각의 n번째 비트들, n-1번째 비트들 및 상기 제1 논리곱 결과비트 및 제2 논리곱 결과비트를 입력받고, 상기 입력받은 비트들 중에서 일부를 배타적 논리합 연산하여 제n 중간결과비트로서 출력하고, 상기 입력받은 비트들 중에서 다른 일부를 배타적 논리합 연산하여 제n 출력비트로서 출력하는 배타적 논리합 회로를 구비할 수 있다.
또한 바람직하게는, 상기 복수 개의 입력 데이터들은, 각각이 m비트(m은 2 이상인 자연수)인 제1 입력 마스크, 제2 입력 마스크 및 제3 입력 마스크를 포함할 수 있다.
또한 바람직하게는, 상기 배타적 논리합 회로는, 상기 제2 입력 마스크의 n번째 비트와 n-1번째 비트, 상기 제3 입력 마스크의 n번째 비트, 상기 제1 논리곱 결과비트 및 상기 제2 논리곱 결과비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 제n 중간결과비트로서 출력하는 제1 배타적 논리합 연산부, 및 상기 제1 입력 마스크의 n번째 비트, 상기 제2 입력 마스크의 n번째 비트 및 상기 제3 입력 마스크의 n번째 비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 제n 출력비트로서 출력하는 제2 배타적 논리합 연산부를 구비할 수 있다.
또한 바람직하게는, 상기 논리곱 회로는, 상기 제 n-1번째 변환부에서 출력 되는 제n-1 중간결과비트 및 상기 제1 입력 마스크의 n-1번째 비트를 입력받아 논리곱 연산을 하고, 그 결과를 제1 논리곱 결과비트로서 출력하는 제1 논리곱 게이트, 및 상기 제1 입력 마스크의 n-1번째 비트 및 상기 제3 입력 마스크의 n-1번째 비트를 입력받아 논리곱 연산을 하고, 그 결과를 제2 논리곱 결과비트로서 출력하는 제2 논리곱 게이트를 구비할 수 있다.
한편, 상기 논리곱 회로는, 상기 제 n-1번째 변환부에서 출력되는 제n-1 중간결과비트 및 상기 제 n-1번째 변환부에서 출력되는 제n-1 출력비트를 입력받아 논리곱 연산을 하고, 그 결과를 제1 논리곱 결과비트로서 출력하는 제1 논리곱 게이트, 및 상기 제 n-1번째 변환부에서 출력되는 제n-1 출력비트 및 상기 제3 입력 마스크의 n-1번째 비트를 입력받아 논리곱 연산을 하고, 그 결과를 제2 논리곱 결과비트로서 출력하는 제2 논리곱 게이트를 구비할 수도 있다.
바람직하게는, 상기 제1 논리곱 결과비트 및 상기 제2 논리곱 결과비트는 반전되어 출력될 수도 있다.
또한 바람직하게는, 상기 배타적 논리합 회로는, 상기 제2 입력 마스크의 n번째 비트 및 상기 제3 입력 마스크의 n번째 비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 출력하는 제1 배타적 논리합 게이트, 상기 제1 입력 마스크의 n번째 비트 및 상기 제1 배타적 논리합 게이트의 출력을 입력받아 배타적 논리합 연산을 하고, 그 결과를 출력하는 제2 배타적 논리합 게이트, 상기 제1 배타적 논리합 게이트의 출력 및 상기 제2 입력 마스크의 n-1번째 비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 출력하는 제3 배타적 논리합 게이트, 상기 제3 배 타적 논리합 게이트의 출력 및 상기 제2 논리곱 결과비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 출력하는 제4 배타적 논리합 게이트, 상기 제4 배타적 논리합 게이트의 출력 및 상기 제1 논리곱 결과비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 상기 제n 중간결과비트로서 출력하는 제5 배타적 논리합 게이트, 및 상기 제2 배타적 논리합 게이트의 출력 및 상기 제5 배타적 논리합 게이트의 출력을 입력받아 배타적 논리합 연산을 하고, 그 결과를 제n 출력비트로서 출력하는 제6 배타적 논리합 게이트를 구비할 수 있다.
한편, 상기 제1 변환부는, 상기 제2 입력 마스크의 첫 번째 비트와 상기 제3 입력 마스크의 첫 번째 비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 제1 중간결과비트로서 출력하는 배타적 논리합 게이트를 구비하고, 상기 제1 입력 마스크의 첫번째 비트를 제1 출력비트로서 출력하는 것이 바람직하다.
본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 방법은, 각각이 m비트(m은 2 이상인 자연수)인 제1 입력 마스크, 제2 입력 마스크 및 제3 입력 마스크를 입력받는 단계, 상기 제2 입력 마스크의 첫 번째 비트와 상기 제3 입력 마스크의 첫 번째 비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 제1 중간결과비트로서 출력하는 단계, 상기 제1 입력 마스크의 첫번째 비트를 제1 출력비트로서 출력하는 단계, 제n-1 중간결과비트(n은 2 이상이고, m이하인 자연수) 및 상기 제1 입력 마스크, 제2 입력 마스크 및 제3 입력 마스크 각각의 n-1번째 비트들을 입력받고, 상기 입력받은 제n-1 중간결과비트 및 상기 입력받은 n-1번째 비트들 중에서 일부를 논리곱 연산하고, 그 결과를 제1 논리곱 결과비트 및 제2 논리곱 결 과비트로서 출력하는 단계, 및 상기 제1 입력 마스크, 제2 입력 마스크 및 제3 입력 마스크 각각의 n번째 비트들, n-1번째 비트들 및 상기 제1 논리곱 결과비트 및 제2 논리곱 결과비트를 입력받고, 상기 입력받은 비트들 중에서 일부를 배타적 논리합 연산하여 제n 중간결과비트 및 제n 출력비트로서 출력하는 단계를 포함할 수 있다.
상기와 같은 본 발명에 따른 불 마스크와 산술 마스크의 변환 회로 및 변환 방법은, 논리 게이트의 수 및 연산 시간을 감소시킬 수 있는 효과가 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 회로를 나타내는 도면이다. 도 1을 참조하면, 상기 불 마스크와 산술 마스크의 변환 회로(100)는, m개의 변환부(m은 2 이상인 자연수)를 구비하고, 상기 m개의 변환부는 제1 변환부(110), 제2 변환부(120), 제3 변환부(130) 및 제m 변환부(140)를 포함할 수 있다.
상기 m개의 변환부(110, 120, 130, 140)는 복수 개의 입력데이터들(y, s, r)을 입력받을 수 있다. 상기 복수 개의 입력 데이터들은, 각각이 m비트인 제1 입력 마스크(y), 제2 입력 마스크(r) 및 제3 입력 마스크(s)를 포함할 수 있다. 도 1을 참조하면, y0 는 제1 입력 마스크의 첫 번째 비트(LSB; Least Significant Bit)를 나타내고, y1은 제1 입력 마스크의 두 번째 비트를 나타내며, ym-1은 제1 입력 마스크의 m번째 비트(MSB; Most Significant Bit)를 나타낸다. 제2 입력 마스크(r) 및 제3 입력 마스크(s)의 경우도 이와 동일하다. 도 1에는 복수 개의 입력데이터가 3개인 경우를 도시하였으나, 이는 본 발명의 일실시예에 따른 불 마스크와 산술 마스크이 변환 회로의 일예로서 본 발명의 기술사상은 이에 한정되는 것은 아니다.
본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 회로(100)는 제1 입력 마스크(y)와 제2 입력 마스크(r)가 m비트 정수 a의 불 마스크인 경우, 상기 m비트 정수 a의 산술 마스크 (x, r)을 구할 수 있다. 즉, 도 1에서, 제1 입력 마스크(y)와 제2 입력 마스크(r)를 m개의 변환부(110, 120, 130, 140)로 입력하면, 각각의 변환부에서 m개의 출력비트들(xn-1, x2, x1, x0)이 출력되고, 상기 m개의 출력비트들(xn-1, x2, x1, x0)을 모두 결합하면 상기 m비트 정수 a의 산술 마스크 순서쌍 중에서 x를 구할 수 있다. 결과적으로, 상기 x와 상기 제2 입력 마스크(r)가 상기 m비트 정수 a의 산술 마스크 순서쌍이 된다. 이 때, 제3 입력 마스크(s)는, 본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 회로(100)의 연산을 돕기 위한 입력 데이터로서, 일반적인 난수발생기(random number generator)에서 발생된 난수(random number)일 수 있다.
한편, 도 1에 도시된 불 마스크와 산술 마스크의 변환 회로(100)에서, 제n 변환부에 제1 입력 마스크의 n-1번째 비트 대신에, 제n-1 변환부의 제n-1 출력비트를 입력하는 경우에는, 본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 회로(100)는, 산술 마스크를 불 마스크로 변환할 수도 있다. 즉, 제3 변환부(130)를 예로 들어 설명하면, 제3 변환부(130)에 제1 입력 마스크의 2번째 비트(y1)를 입력하는 대신에 제2 변환부(120)의 제2 출력비트(x1)를 입력하는 것과 같이, 상기 불 마스크와 산술 마스크의 변환 회로(100)를 변형하면, 산술 마스크를 불 마스크로 변환하는 것이 가능하다. 이에 대한 자세한 설명은 도 7을 참조하여 설명하기로 한다.
도 1을 참조하면, 제1 변환부(110)는, 복수 개의 입력 데이터들 각각의 첫 번째 비트들(y0, r0, s0)을 입력받고, 상기 입력받은 비트들(y0, r0, s0) 중의 어느 하나를 제1 출력비트(x0)로서 출력한다. 또한, 상기 입력받은 비트들(y0, r0, s0) 중의 일부를 배타적 논리합 연산하여 그 결과를 제1 중간결과비트(d0)로서 제2 변환부(120)로 출력한다.
제2 변환부(120)는 복수 개의 입력 데이터들 각각의 첫 번째 비트들(y0, r0, s0) 및 두 번째 비트들(y1, r1, s1)을 입력받고, 제1 중간결과비트(d0)를 제1 변환부(110)로부터 입력받는다. 상기 제2 변환부(120)는 제1 변환부(110)로부터 제1 출 력비트(x0)를 더 입력받을 수도 있다. 제2 변환부(120)는 상기 입력받은 비트들 중에서 제1 그룹을 논리곱 연산 및 배타적 논리합 연산하여 그 결과를 제2 출력비트(x1)로서 출력하고, 상기 입력받은 비트들 중에서 제2 그룹을 논리곱 연산 및 배타적 논리합 연산하여 제2 중간결과비트(d1)로서 제3 변환부(130)로 출력한다. 상기 제1 그룹 및 제2 그룹은 입력받은 비트들 중의 일부를 포함하고, 서로 다른 비트들을 포함하는 그룹일 수 있다. 이에 대한 자세한 설명은 도 2 및 도 3을 참조하여 설명한다.
한편, 도 1을 참조하면, 제3 변환부(130) 및 제m 변환부(140)는 제2 변환부(120)와 유사하게 동작한다. 즉, 제3 변환부(130) 및 제m 변환부(140)는 입력되는 데이터의 차이만 있을 뿐, 제2 변환부(120)와 동일하게 동작할 수 있다. 따라서, 제3 변환부(130) 및 제m 변환부(140)에 대한 설명은 제2 변환부(120)를 참조하여 상술한 바와 같으므로, 여기에서는 설명을 생략한다.
도 2는, 도 1에 도시된 본 발명의 일실시예에 따른 제3 변환부(130)의 일실시예를 나타내는 도면이다. 도 1에 도시된 제2 변환부(120) 및 제m 변환부(140) 역시 도 2에 도시된 제3 변환부(130)와 유사한 구조를 가질 수 있다.
도 2를 참조하면, 상기 제3 변환부(130)는, 논리곱 회로(131) 및 배타적 논리합 회로(133)를 구비할 수 있다. 상기 논리곱 회로(131)는, 제2 변환부(120)로부터 제2 중간결과비트(d1)를 입력받을 수 있고, 제1 입력 마스크의 두 번째 비트(y1) 및 제3 입력 마스크의 두 번째 비트(s1)를 입력받을 수 있다. 한편, 상기 논리곱 회로(131)는 상기 제1 입력 마스크의 두 번째 비트(y1) 대신에, 제2 변환부(120)에서 출력되는 제2 출력비트(x1)를 입력받을 수도 있다.
상기 논리곱 회로(131)는 상기 입력받은 제2 중간결과비트(d1), 제1 입력 마스크의 두 번째 비트(y1) 및 제3 입력 마스크의 두 번째 비트(s1)들 중에서 일부를 논리곱 연산하여 그 결과를 제1 논리곱 결과비트(A)로서 출력할 수 있다. 또한, 상기 논리곱 회로(131)는 상기 입력받은 제2 중간결과비트(d1), 제1 입력 마스크의 두 번째 비트(y1) 및 제3 입력 마스크의 두 번째 비트(s1)들 중에서 다른 일부를 논리곱 연산하여 그 결과를 제2 논리곱 결과비트(B)로서 출력할 수 있다. 일예로서, 상기 논리곱 회로(131)는, 제2 중간결과비트(d1) 및 제1 입력 마스크의 두 번째 비트(y1)를 논리곱 연산하여 그 결과를 제1 논리곱 결과비트(A)로서 출력할 수 있고, 제1 입력 마스크의 두 번째 비트(y1) 및 제3 입력 마스크의 두 번째 비트(s1)를 논리곱 연산하여 그 결과를 제2 논리곱 결과비트(B)로서 출력할 수 있다. 이에 대한 자세한 설명은 도 4를 참조하여 설명한다.
도 2를 참조하면, 상기 배타적 논리합 회로(133)는, 제1 입력 마스크의 3번째 비트(y2), 제2 입력 마스크의 3번째 비트(r2), 제3 입력 마스크의 3번째 비 트(s2) 및 제2 입력 마스크의 두 번째 비트(r1)을 입력받을 수 있다. 또한, 상기 배타적 논리합 회로(133)는, 상기 논리곱 회로(131)로부터 출력된 제1 논리곱 결과비트(A) 및 제2 논리곱 결과비트(B)를 더 입력받을 수 있다.
상기 배타적 논리합 회로(133)는, 상기 입력받은 비트들(y2, r2, s2, r1, A, B) 중에서 일부를 배타적 논리합 연산하여 제3 중간결과비트(d2)로서 제4 변환부(미도시)로 출력하고, 상기 입력받은 비트들(y2, r2, s2, r1, A, B) 중에서 다른 일부를 배타적 논리합 연산하여 제3 출력비트(x2)로서 출력할 수 있다. 일예로서, 상기 배타적 논리합 회로(133)는, 제2 입력 마스크의 3번째 비트(r2), 제3 입력 마스크의 3번째 비트(s2), 제2 입력 마스크의 두 번째 비트(r1), 제1 논리곱 결과비트(A) 및 제2 논리곱 결과비트(B)를 배타적 논리합 연산하여 제3 중간결과비트(d2)로서 제4 변환부(미도시)로 출력할 수 있다. 또한, 상기 배타적 논리합 회로(133)는 제1 입력 마스크의 3번째 비트(y2), 제2 입력 마스크의 두 번째 비트(r1), 제1 논리곱 결과비트(A) 및 제2 논리곱 결과비트(B)를 배타적 논리합 연산하여 제3 출력비트(x2)로서 출력할 수 있다.
도 2에 도시된 제3 변환부(130)는 본 발명에 따른 일실시예로서, 이로부터 다양한 변형이 가능함이 당업자에게 자명할 것이다.
도 3은, 도 2에 도시된 본 발명의 일실시예에 따른 배타적 논리합 회로(133) 의 일실시예를 나타내는 도면이다. 도 1에 도시된 제2 변환부(120) 및 제m 변환부(140)에 구비되는 배타적 논리합 회로 역시 도 3에 도시된 배타적 논리합 회로(133)와 유사한 구조를 가질 수 있다.
도 3을 참조하면, 상기 배타적 논리합 회로(133)는, 제1 배타적 논리합 연산부(135) 및 제2 배타적 논리합 연산부(137)를 구비할 수 있다. 상기 제1 배타적 논리합 연산부(135)는 제2 입력 마스크의 3번째 비트(r2), 제3 입력 마스크의 3번째 비트(s2), 제2 입력 마스크의 두 번째 비트(r1), 제1 논리곱 결과비트(A) 및 제2 논리곱 결과비트(B)를 배타적 논리합 연산하여 제3 중간결과비트(d2)로서 출력할 수 있다. 상기 제1 배타적 논리합 연산부(135)는 상기 제3 중간결과비트(d2)를 제2 배타적 논리합 연산부(137) 및 제4 변환부(미도시)로 출력할 수 있다. 한편, 상기 제2 배타적 논리합 연산부(137)는 제1 입력 마스크의 3번째 비트(y2), 제2 입력 마스크의 3번째 비트(r2), 제3 입력 마스크의 3번째 비트(s2) 및 제3 중간결과비트(d2)를 배타적 논리합 연산하여 제3 출력비트(x2)로서 출력할 수 있다.
도 4는, 도 2에 도시된 본 발명의 일실시예에 따른 논리곱 회로(131)의 일실시예를 나타내는 도면이다. 상기 논리곱 회로(131)는 제1 논리곱 게이트(AND1) 및 제2 논리곱 게이트(AND2)를 구비할 수 있다. 도 1에 도시된 제2 변환부(120) 및 제m 변환부(140)에 구비되는 논리곱 회로 역시, 도 4에 도시된 논리곱 회로(131)와 유사한 구조를 가질 수 있다.
제1 논리곱 게이트(AND1)는 제2 변환부(120)에서 출력되는 제2 중간결과비트(d1) 및 제1 입력 마스크의 두 번째 비트(y1)를 입력받아 논리곱 연산(AND)을 하고, 그 결과를 제1 논리곱 결과비트(A)로서 출력한다. 제2 논리곱 게이트(AND2)는 제1 입력 마스크의 두 번째 비트(y1) 및 제3 입력 마스크의 두 번째 비트(s1)를 입력받아 논리곱 연산(AND)을 하고, 그 결과를 제2 논리곱 결과비트(B)로서 출력한다.
한편, 도 1을 참조하여 설명한 바와 같이, 도 4의 논리곱 회로(131)에는 제1 입력 마스크의 두 번째 비트(y1) 대신에, 제2 변환부(120)의 제2 출력비트(x1)를 입력할 수도 있다. 즉, 제1 논리곱 게이트(AND1)는 제2 변환부(120)에서 출력되는 제2 중간결과비트(d1) 및 제2 출력비트(x1)를 입력받아 논리곱 연산(AND)을 하고, 그 결과를 제1 논리곱 결과비트(A)로서 출력할 수 있다. 또한, 제2 논리곱 게이트(AND2)는 제2 변환부(120)에서 출력되는 제2 출력비트(x1) 및 제3 입력 마스크의 두 번째 비트(s1)를 입력받아 논리곱 연산(AND)을 하고, 그 결과를 제2 논리곱 결과비트(B)로서 출력할 수 있다. 상술한 바와 같이, 이 경우에는 본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 회로(100)는, 산술 마스크를 불 마스크로 변환할 수 있다.
한편, 본 발명의 일실시예에 따른 논리곱 회로(131)는 제1 논리곱 결과비트(A) 및 제2 논리곱 결과비트(B)를 반전하여 출력할 수도 있다. 즉, 도 4를 참조 하면, 제1 논리곱 게이트(AND1) 및 제2 논리곱 게이트(AND2)의 출력 단자에 인버터를 연결하여 제1 논리곱 결과비트(A) 및 제2 논리곱 결과비트(B)를 반전하여 출력할 수 있다. 제1 논리곱 결과비트(A) 및 제2 논리곱 결과비트(B)를 반전하여 출력하더라도 본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 회로(100)는 동일한 결과를 출력한다.
도 5는, 도 2에 도시된 본 발명의 일실시예에 따른 배타적 논리합 회로(133)의 일실시예를 나타내는 도면이다. 도 1에 도시된 제2 변환부(120) 및 제m 변환부(140)에 구비되는 배타적 논리합 회로 역시, 도 5에 도시된 배타적 논리합 회로(133)와 유사한 구조를 가질 수 있다.
도 5를 참조하면, 상기 배타적 논리합 회로(133)는, 제1 배타적 논리합 게이트(XOR1), 제2 배타적 논리합 게이트(XOR2), 제3 배타적 논리합 게이트(XOR3), 제4 배타적 논리합 게이트(XOR4), 제5 배타적 논리합 게이트(XOR5) 및 제6 배타적 논리합 게이트(XOR6)를 구비할 수 있다.
상기 제1 배타적 논리합 게이트(XOR1)는, 제2 입력 마스크의 3번째 비트(r2) 및 제3 입력 마스크의 3번째 비트(s2)를 입력받아 배타적 논리합 연산을 하고, 그 결과를 출력한다.
상기 제2 배타적 논리합 회로(XOR2)는, 제1 입력 마스크의 3번째 비트(y2) 및 상기 제1 배타적 논리합 게이트(XOR1)의 출력을 입력받아 배타적 논리합 연산을 하고, 그 결과를 출력한다.
상기 제3 배타적 논리합 게이트(XOR3)는, 상기 제1 배타적 논리합 게이트(XOR1)의 출력 및 상기 제2 입력 마스크의 두 번째 비트(r1)를 입력받아 배타적 논리합 연산을 하고, 그 결과를 출력한다.
상기 제4 배타적 논리합 게이트(XOR4)는, 상기 제3 배타적 논리합 게이트(XOR3)의 출력 및 상기 제2 논리곱 결과비트(B)를 입력받아 배타적 논리합 연산을 하고, 그 결과를 출력한다.
상기 제5 배타적 논리합 게이트(XOR5)는, 상기 제4 배타적 논리합 게이트(XOR4)의 출력 및 상기 제1 논리곱 결과비트(A)를 입력받아 배타적 논리합 연산을 하고, 그 결과를 제3 중간결과비트(d2)로서 출력한다. 상기 제5 배타적 논리합 게이트(XOR5)는 상기 제3 중간결과비트(d2)를 제6 배타적 논리합 게이트(XOR6) 및 제4 변환부(미도시)로 출력할 수 있다.
상기 제6 배타적 논리합 게이트(XOR6)는, 상기 제2 배타적 논리합 게이트(XOR2)의 출력 및 상기 제3 중간결과비트(d2)를 입력받아 배타적 논리합 연산을 하고, 그 결과를 제3 출력비트(x2)로서 출력한다.
도 6은, 도 1에 도시된 본 발명의 일실시예에 따른 제1 변환부(110)의 일실시예를 나타내는 도면이다. 도 6을 참조하면, 제1 변환부(110)는 제2 입력 마스크의 첫 번째 비트(r0)와 제3 입력 마스크의 첫 번째 비트(s0)를 입력받아 배타적 논리합 연산을 하고, 그 결과를 제1 중간결과비트(d0)로서 출력하는 배타적 논리합 게 이트를 구비하고, 제1 입력 마스크의 첫번째 비트(y0)를 제1 출력비트(x0)로서 출력할 수 있다. 상기 제1 중간결과비트(d0)는 제2 변환부(120)로 출력될 수 있다.
도 1 내지 도 6을 참조하여 본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 회로(100)의 동작을 설명하면 다음과 같다. 먼저 도 1을 참조하여, 불 마스크를 산술 마스크로 변환하는 회로의 동작을 설명한다.
본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 회로(100)는 제1 입력 마스크(y)와 제2 입력 마스크(r)가 m비트 정수 a의 불 마스크인 경우, 상기 m비트 정수 a의 산술 마스크 (x, r)을 구할 수 있다. 즉, 도 1에서, 제1 입력 마스크(y)와 제2 입력 마스크(r)를 m개의 변환부(110, 120, 130, 140)로 입력하면, 각각의 변환부에서 m개의 출력비트들(xn-1, x2, x1, x0)이 출력되고, 상기 m개의 출력비트들(xn-1, x2, x1, x0)을 모두 결합하면 상기 m비트 정수 a의 산술 마스크 순서쌍 중에서 x를 구할 수 있다. 결과적으로, 상기 x와 상기 제2 입력 마스크(r)가 상기 m비트 정수 a의 산술 마스크 순서쌍이 된다. 이 때, 제3 입력 마스크(s)는, 본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 회로(100)의 연산을 돕기 위한 입력 데이터로서, 일반적인 난수발생기(random number generator)에서 발생된 난수(random number)일 수 있다.
먼저, 제i 중간결과비트(di), 제2 입력 마스크의 i번째 비트(ri) 및 제3 입력 마스크의 i번째 비트(si)를 배타적 논리합 연산한 결과를 제i 캐리비트(ci)라고 가정한다(i는 0이상인 정수). 즉, ci = di^ri^si 라 하면, 도 1에서 c0 = d0^r0^s0 = 0 이고, x0 = y0 = a0^r0 이다.
i>0 인 경우의 제i 캐리비트(ci)는 다음의 수학식 1과 같다.
ci = di^ri^si
= si^ri^ri-1^(si-1yi-1)^(yi-1di-1)^ri^si
(∵ di = si^ri^ri-1^(si-1yi-1)^(yi-1di-1))
= ri-1^(si-1yi-1)^(yi-1di-1)
= ri-1^(si-1^di-1)yi-1
= ri-1^(ci-1^ri-1)yi-1 (∵ si-1^di-1 = ci-1^ri-1 )
= ri-1^(ci-1^ri-1)(ar-1^rr-1) (∵ yi-1 = ar-1^rr-1 )
= ci-1ar-1^ci-1ri-1^rr-1ar-1
한편, 도 5를 참조하면, i>0 인 경우의 제i 출력비트(xi)는 다음의 수학식 2와 같다.
xi = yi^si^ri^di
= yi^ci (∵ ci = di^ri^si )
= ai^ri^ci (∵ yi = ai^ri )
따라서, 수학식 1 및 수학식 2의 결과를 참조하면, xi = ai^ri^ci 이고, ci = ci-1ar-1^ci-1ri-1^rr-1ar-1 임을 알 수 있다. 상기 관계식은, 당업자에게 일반적으로 알려진 리플 가산기(Ripple adder)의 입출력 관계식과 동일한 것을 알 수 있고, 따라서, x = xn-1...x0 는 x = a+r mod 2n 을 만족시킴을 알 수 있다. 따라서, 도 1에 도시된 불 마스크와 산술 마스크의 변환 회로(100)를 이용하여, m비트 정수 a의 불 마스크 (y, r)이 주어진 경우 a의 산술 마스크 (x, r)을 구할 수 있음을 알 수 있다.
도 7은 본 발명의 다른 실시예에 따른 불 마스크와 산술 마스크의 변환 회로(700)를 나타내는 도면이다. 도 7을 참조하면, 도 7에 도시된 불 마스크와 산술 마스크의 변환 회로(700)는 도 1 내지 도 6을 참조하여 상술한 본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 회로(100)와 유사하다. 다만, 도 7에 도시된 불 마스크와 산술 마스크의 변환 회로(700)는 논리곱 게이트들(AND1, AND2)에 제1 입력 마스크(yn-1, ... , y2, y1, y0) 대신에 제n 출력비트(xn-1, ... , x2, x1, x0)가 입력되는 차이가 있다.
도 1을 참조하여 상술한 바와 같이, 도 7에 도시된 불 마스크와 산술 마스크의 변환 회로(700)처럼 제n 변환부에 제1 입력 마스크의 n-1번째 비트 대신에, 제 n-1 변환부의 제n-1 출력비트를 입력하는 경우에는, 본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 회로(700)는, 산술 마스크를 불 마스크로 변환할 수 있다. 수학식 1 및 수학식 2를 참조하면, 산술 마스크를 불 마스크로 변환하는 동작은 당업자에게 자명하므로 여기에서는 설명을 생략한다.
도 8은 본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 방법을 나타내는 순서도(Flowchart)이다. 상기 불 마스크와 산술 마스크의 변환 방법(800)은, 각각이 m비트(m은 2 이상인 자연수)인 제1 입력 마스크, 제2 입력 마스크 및 제3 입력 마스크를 입력받는 단계(S81), 제2 입력 마스크의 첫 번째 비트와 제3 입력 마스크의 첫 번째 비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 제1 중간결과비트로서 출력하는 단계(S82), 제1 입력 마스크의 첫번째 비트를 제1 출력비트로서 출력하는 단계(S83)를 포함할 수 있다.
상기 불 마스크와 산술 마스크의 변환 방법(800)은, 제n-1 중간결과비트(n은 2 이상이고, m이하인 자연수) 및 제1 입력 마스크, 제2 입력 마스크 및 제3 입력 마스크 각각의 n-1번째 비트들을 입력받고, 입력받은 제n-1 중간결과비트 및 입력받은 n-1번째 비트들 중에서 일부를 논리곱 연산하고, 그 결과를 제1 논리곱 결과비트 및 제2 논리곱 결과비트로서 출력하는 단계(S85), 제1 입력 마스크, 제2 입력 마스크 및 제3 입력 마스크 각각의 n번째 비트들, n-1번째 비트들 및 제1 논리곱 결과비트 및 제2 논리곱 결과비트를 입력받고, 입력받은 비트들 중에서 일부를 배타적 논리합 연산하여 제n 중간결과비트 및 제n 출력비트로서 출력하는 단계(S86) 및 n과 m을 비교하여 n이 m 보다 작지 않다면 종료하는 단계를 더 포함할 수 있다.
상기 불 마스크 및 산술 마스크의 변환 방법에 대해서는 도 1 내지 도 7을 참조하여 상술하였으므로, 여기에서는 자세한 설명을 생략한다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.
도 1은 본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 회로를 나타내는 도면이다.
도 2는, 도 1에 도시된 본 발명의 일실시예에 따른 제3 변환부(130)의 일실시예를 나타내는 도면이다.
도 3은, 도 2에 도시된 본 발명의 일실시예에 따른 배타적 논리합 회로(133)의 일실시예를 나타내는 도면이다.
도 4는, 도 2에 도시된 본 발명의 일실시예에 따른 논리곱 회로(131)의 일실시예를 나타내는 도면이다.
도 5는, 도 2에 도시된 본 발명의 일실시예에 따른 배타적 논리합 회로(133)의 일실시예를 나타내는 도면이다.
도 6은, 도 1에 도시된 본 발명의 일실시예에 따른 제1 변환부(110)의 일실시예를 나타내는 도면이다.
도 7은 본 발명의 다른 실시예에 따른 불 마스크와 산술 마스크의 변환 회로(700)를 나타내는 도면이다.
도 8은 본 발명의 일실시예에 따른 불 마스크와 산술 마스크의 변환 방법을 나타내는 순서도(Flowchart)이다.
*도면의 주요 부분에 대한 부호의 설명*
110: 제1 변환부 120: 제2 변환부
130: 제3 변환부 140: 제n 변환부
131: 논리곱 회로 133: 배타적 논리합 회로
135: 제1 배타적 논리합 연산부
137: 제2 배타적 논리합 연산부

Claims (10)

  1. m 개의 변환부(m은 2 이상인 자연수)를 구비하는 불 마스크와 산술 마스크의 변환 회로에 있어서,
    제1 변환부는,
    입력 데이터들 각각의 첫 번째 비트들을 입력받고, 상기 입력받은 비트들 중의 어느 하나를 제1 출력비트로서 출력하며, 상기 입력받은 비트들 중의 일부를 배타적 논리합 연산하여 그 결과를 제1 중간결과비트로서 제2 변환부로 출력하고,
    제n 변환부는(n은 2 이상이고, m 이하인 자연수),
    상기 입력 데이터들 각각의 n-1번째 비트들 및 n번째 비트들을 입력받고, 제n-1 중간결과비트 및 제n-1 출력비트 중 적어도 하나를 제n-1 변환부로부터 입력받으며, 상기 입력받은 비트들 중에서 제1 그룹을 논리곱 연산 및 배타적 논리합 연산하여 그 결과를 제n 출력비트로서 출력하고, 상기 입력받은 비트들 중에서 제2 그룹을 논리곱 연산 및 배타적 논리합 연산하여 제n 중간결과비트로서 출력하는 것을 특징으로 하는 불 마스크와 산술 마스크의 변환 회로.
  2. 제 1항에 있어서,
    상기 제n 변환부는,
    상기 제n-1 중간결과비트 및 상기 제n-1 출력비트 중 적어도 하나와 상기 복수 개의 입력 데이터들 각각의 n-1번째 비트들을 입력받고, 상기 입력받은 제n-1 중간결과비트 및 제n-1 출력비트 중 적어도 하나와 상기 입력받은 n-1번째 비트들 중에서 일부를 논리곱 연산하여 그 결과를 제1 논리곱 결과비트로서 출력하고, 상기 입력받은 제n-1 중간결과비트 및 제n-1 출력비트 중 적어도 하나와 상기 입력받은 n-1번째 비트들 중에서 다른 일부를 논리곱 연산하여 제2 논리곱 결과비트로서 출력하는 논리곱 회로; 및
    상기 복수 개의 입력 데이터들 각각의 n번째 비트들, n-1번째 비트들 및 상기 제1 논리곱 결과비트 및 제2 논리곱 결과비트를 입력받고, 상기 입력받은 비트들 중에서 일부를 배타적 논리합 연산하여 제n 중간결과비트로서 출력하고, 상기 입력받은 비트들 중에서 다른 일부를 배타적 논리합 연산하여 제n 출력비트로서 출력하는 배타적 논리합 회로를 구비하는 것을 특징으로 하는 불 마스크와 산술 마스크의 변환 회로.
  3. 제 2항에 있어서, 상기 복수 개의 입력 데이터들은,
    각각이 m비트(m은 2 이상인 자연수)인 제1 입력 마스크, 제2 입력 마스크 및 제3 입력 마스크를 포함하는 것을 특징으로 하는 불 마스크와 산술 마스크의 변환 회로.
  4. 제 3항에 있어서, 상기 배타적 논리합 회로는,
    상기 제2 입력 마스크의 n번째 비트와 n-1번째 비트, 상기 제3 입력 마스크의 n번째 비트, 상기 제1 논리곱 결과비트 및 상기 제2 논리곱 결과비트를 입력받 아 배타적 논리합 연산을 하고, 그 결과를 제n 중간결과비트로서 출력하는 제1 배타적 논리합 연산부; 및
    상기 제1 입력 마스크의 n번째 비트, 상기 제2 입력 마스크의 n번째 비트 및 상기 제3 입력 마스크의 n번째 비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 제n 출력비트로서 출력하는 제2 배타적 논리합 연산부를 구비하는 것을 특징으로 하는 불 마스크와 산술 마스크의 변환 회로.
  5. 제 4항에 있어서, 상기 논리곱 회로는,
    상기 제 n-1번째 변환부에서 출력되는 제n-1 중간결과비트 및 상기 제1 입력 마스크의 n-1번째 비트를 입력받아 논리곱 연산을 하고, 그 결과를 제1 논리곱 결과비트로서 출력하는 제1 논리곱 게이트; 및
    상기 제1 입력 마스크의 n-1번째 비트 및 상기 제3 입력 마스크의 n-1번째 비트를 입력받아 논리곱 연산을 하고, 그 결과를 제2 논리곱 결과비트로서 출력하는 제2 논리곱 게이트를 구비하는 것을 특징으로 하는 불 마스크와 산술 마스크의 변환 회로.
  6. 제 4항에 있어서, 상기 논리곱 회로는,
    상기 제 n-1번째 변환부에서 출력되는 제n-1 중간결과비트 및 상기 제 n-1번째 변환부에서 출력되는 제n-1 출력비트를 입력받아 논리곱 연산을 하고, 그 결과를 제1 논리곱 결과비트로서 출력하는 제1 논리곱 게이트; 및
    상기 제 n-1번째 변환부에서 출력되는 제n-1 출력비트 및 상기 제3 입력 마스크의 n-1번째 비트를 입력받아 논리곱 연산을 하고, 그 결과를 제2 논리곱 결과비트로서 출력하는 제2 논리곱 게이트를 구비하는 것을 특징으로 하는 불 마스크와 산술 마스크의 변환 회로.
  7. 제 5항 또는 제 6항에 있어서,
    상기 제1 논리곱 결과비트 및 상기 제2 논리곱 결과비트는 반전되어 출력되는 것을 특징으로 하는 불 마스크와 산술 마스크의 변환 회로.
  8. 제 3항에 있어서, 상기 배타적 논리합 회로는,
    상기 제2 입력 마스크의 n번째 비트 및 상기 제3 입력 마스크의 n번째 비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 출력하는 제1 배타적 논리합 게이트;
    상기 제1 입력 마스크의 n번째 비트 및 상기 제1 배타적 논리합 게이트의 출력을 입력받아 배타적 논리합 연산을 하고, 그 결과를 출력하는 제2 배타적 논리합 게이트;
    상기 제1 배타적 논리합 게이트의 출력 및 상기 제2 입력 마스크의 n-1번째 비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 출력하는 제3 배타적 논리합 게이트;
    상기 제3 배타적 논리합 게이트의 출력 및 상기 제2 논리곱 결과비트를 입력 받아 배타적 논리합 연산을 하고, 그 결과를 출력하는 제4 배타적 논리합 게이트;
    상기 제4 배타적 논리합 게이트의 출력 및 상기 제1 논리곱 결과비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 상기 제n 중간결과비트로서 출력하는 제5 배타적 논리합 게이트; 및
    상기 제2 배타적 논리합 게이트의 출력 및 상기 제5 배타적 논리합 게이트의 출력을 입력받아 배타적 논리합 연산을 하고, 그 결과를 제n 출력비트로서 출력하는 제6 배타적 논리합 게이트를 구비하는 것을 특징으로 하는 불 마스크와 산술 마스크의 변환 회로.
  9. 제 3항에 있어서, 상기 제1 변환부는,
    상기 제2 입력 마스크의 첫 번째 비트와 상기 제3 입력 마스크의 첫 번째 비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 상기 제1 중간결과비트로서 출력하는 배타적 논리합 게이트를 구비하고,
    상기 제1 입력 마스크의 첫번째 비트를 상기 제1 출력비트로서 출력하는 것을 특징으로 하는 불 마스크와 산술 마스크의 변환 회로.
  10. 각각이 m비트(m은 2 이상인 자연수)인 제1 입력 마스크, 제2 입력 마스크 및 제3 입력 마스크를 입력받는 단계;
    상기 제2 입력 마스크의 첫 번째 비트와 상기 제3 입력 마스크의 첫 번째 비트를 입력받아 배타적 논리합 연산을 하고, 그 결과를 제1 중간결과비트로서 출력 하는 단계;
    상기 제1 입력 마스크의 첫번째 비트를 제1 출력비트로서 출력하는 단계;
    제n-1 중간결과비트(n은 2 이상이고, m이하인 자연수) 및 상기 제1 입력 마스크, 제2 입력 마스크 및 제3 입력 마스크 각각의 n-1번째 비트들을 입력받고, 상기 입력받은 제n-1 중간결과비트 및 상기 입력받은 n-1번째 비트들 중에서 일부를 논리곱 연산하고, 그 결과를 제1 논리곱 결과비트 및 제2 논리곱 결과비트로서 출력하는 단계; 및
    상기 제1 입력 마스크, 제2 입력 마스크 및 제3 입력 마스크 각각의 n번째 비트들, n-1번째 비트들 및 상기 제1 논리곱 결과비트 및 제2 논리곱 결과비트를 입력받고, 상기 입력받은 비트들 중에서 일부를 배타적 논리합 연산하여 제n 중간결과비트 및 제n 출력비트로서 출력하는 단계를 포함하는 것을 특징으로 하는 불 마스크와 산술 마스크의 변환 방법.
KR1020090021866A 2009-03-13 2009-03-13 불 마스크와 산술 마스크의 변환 회로 및 변환 방법 KR101566408B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090021866A KR101566408B1 (ko) 2009-03-13 2009-03-13 불 마스크와 산술 마스크의 변환 회로 및 변환 방법
US12/717,249 US8495116B2 (en) 2009-03-13 2010-03-04 Circuit and method converting boolean and arithmetic masks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090021866A KR101566408B1 (ko) 2009-03-13 2009-03-13 불 마스크와 산술 마스크의 변환 회로 및 변환 방법

Publications (2)

Publication Number Publication Date
KR20100103304A KR20100103304A (ko) 2010-09-27
KR101566408B1 true KR101566408B1 (ko) 2015-11-05

Family

ID=42731542

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090021866A KR101566408B1 (ko) 2009-03-13 2009-03-13 불 마스크와 산술 마스크의 변환 회로 및 변환 방법

Country Status (2)

Country Link
US (1) US8495116B2 (ko)
KR (1) KR101566408B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3424175B1 (en) 2016-03-03 2024-02-21 Cryptography Research, Inc. Converting a boolean masked value to an arithmetically masked value for cryptographic operations
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
CN107294700B (zh) * 2017-08-22 2019-11-08 兆讯恒达微电子技术(北京)有限公司 防御旁路攻击的与逻辑电路装置及处理方法
DE102018208851A1 (de) * 2018-06-05 2019-12-05 Infineon Technologies Ag Vorrichtung und Verfahren zum Umwandeln von Eingangsbitfolgen
WO2020092257A1 (en) * 2018-10-29 2020-05-07 Cryptography Research, Inc. Constant time secure arithmetic-to-boolean mask conversion
GB2582900A (en) 2019-03-18 2020-10-14 Pqshield Ltd Cryptography using a cryptographic state
FR3101983B1 (fr) * 2019-10-11 2021-11-12 St Microelectronics Grenoble 2 Détermination d'un bit indicateur
FR3101980B1 (fr) 2019-10-11 2021-12-10 St Microelectronics Grenoble 2 Processeur
FR3101982B1 (fr) 2019-10-11 2024-03-08 St Microelectronics Grenoble 2 Détermination d'un bit indicateur
GB2608999A (en) 2021-07-15 2023-01-25 Pqshield Ltd Cryptographic system for post-quantum cryptographic operations

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086452A1 (en) 1999-09-03 2005-04-21 Ross Jay B. Enhanced boolean processor with parallel input
JP2008042328A (ja) 2006-08-02 2008-02-21 Sony Corp 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2820914A1 (fr) 2001-02-15 2002-08-16 Bull Cp8 Procede de securisation d'un ensemble electronique mettant en oeuvre en algorithme cryptographique utilisant des operations booleennes et des operations arithmetiques, et systeme embarque correspondant
KR100585119B1 (ko) 2004-01-07 2006-06-01 삼성전자주식회사 암호화 장치, 암호화 방법 및 그 기록매체

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050086452A1 (en) 1999-09-03 2005-04-21 Ross Jay B. Enhanced boolean processor with parallel input
JP2008042328A (ja) 2006-08-02 2008-02-21 Sony Corp 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
US8495116B2 (en) 2013-07-23
KR20100103304A (ko) 2010-09-27
US20100235417A1 (en) 2010-09-16

Similar Documents

Publication Publication Date Title
KR101566408B1 (ko) 불 마스크와 산술 마스크의 변환 회로 및 변환 방법
Kowsalya et al. Low Area PRESENT Cryptography in FPGA Using TRNGPRNG Key Generation
US7567668B2 (en) Calculating unit and method for performing an arithmetic operation with encrypted operands
JP2006003905A (ja) 情報漏れ攻撃を防止するためのガロア体上の乗算方法及び装置、逆変換装置、そしてaesバイト置換演算装置
Mozaffari-Kermani et al. Reliable and error detection architectures of Pomaranch for false-alarm-sensitive cryptographic applications
Ge et al. Secure and fast image encryption algorithm using hyper-chaos-based key generator and vector operation
Panda et al. Modified dual-CLCG method and its VLSI architecture for pseudorandom bit generation
WO2009066709A1 (ja) 乱数生成装置及び方法
Patnala et al. A modernistic way for KEY generation for highly secure data transfer in ASIC design flow
KR20120070873A (ko) 부채널 방지 마스킹 덧셈 연산 장치
JP2013524271A (ja) カオス系列の発生器及び対応する発生システム
Liu et al. Chaos-based color image encryption using one-time keys and Choquet fuzzy integral
Liu et al. A highly secure image encryption algorithm based on conservative hyperchaotic system and dynamic biogenetic gene algorithms
WO2015156020A1 (ja) 情報処理装置、プログラム及び記憶媒体
US11757616B2 (en) Image encryption method based on improved class boosting scheme
Chang et al. Area-efficient and fast sign detection for four-moduli set RNS {2 n− 1, 2 n, 2 n+ 1, 22 n+ 1}
Gafsi et al. Hardware implementation of a strong pseudorandom number generator based block‐cipher system for color image encryption and decryption
Ghosh et al. A scalable method for constructing non-linear cellular automata with period 2 n− 1
Ou et al. Research on a high‐order AES mask anti‐power attack
Mirhosseini et al. A reduced-bias approach with a lightweight hard-multiple generator to design a radix-8 modulo $2^{n}+ 1$ multiplier
Mojahed et al. Multifunctional unit for reverse conversion and sign detection based on five-moduli set {2 2n, 2 n+ 1, 2 n− 1, 2 n+ 3, 2 n− 3}
JP2005202757A (ja) 擬似乱数生成装置及びプログラム
KR20110020153A (ko) Seed 암호화 시스템의 f-함수 처리 장치 및 방법
Wei et al. A small first-order DPA resistant AES implementation with no fresh randomness
CN104202053B (zh) 一种快速n位原码到补码的转换装置和转换方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20180927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190930

Year of fee payment: 5