KR101103443B1 - 데이터 컨버터 - Google Patents

데이터 컨버터 Download PDF

Info

Publication number
KR101103443B1
KR101103443B1 KR1020067005429A KR20067005429A KR101103443B1 KR 101103443 B1 KR101103443 B1 KR 101103443B1 KR 1020067005429 A KR1020067005429 A KR 1020067005429A KR 20067005429 A KR20067005429 A KR 20067005429A KR 101103443 B1 KR101103443 B1 KR 101103443B1
Authority
KR
South Korea
Prior art keywords
data
finite field
unit
polynomial
data blocks
Prior art date
Application number
KR1020067005429A
Other languages
English (en)
Other versions
KR20070018778A (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 파나소닉 주식회사
Publication of KR20070018778A publication Critical patent/KR20070018778A/ko
Application granted granted Critical
Publication of KR101103443B1 publication Critical patent/KR101103443B1/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/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • 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/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7209Calculation via subfield, i.e. the subfield being GF(q) with q a prime power, e.g. GF ((2**m)**n) via GF(2**m)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Abstract

장치의 전체 설치 크기를 삭감할 수 있는 데이터 컨버터(1)는, 64 비트의 입력 데이터에 대하여 소정의 비밀변환처리를 행하는 처리장치이고, 데이터 컨버터(1)는 유한필드다항식3승부(10), 데이터통합부(11a∼11d 및 12, 13)과, 제1컨버터(14)과, 제2컨버터(15)와, 데이터 분할부(16)와, 데이터통합부(17)를 포함한다. 유한필드 다항식 3승부(10)는, 계수로서 유한 필드 GF (28)의 값을 갖는 다항식 잉여 클래스 링에서 32비트 데이터를 3승하고, 각각 32비트의 데이터로 출력한다.

Description

데이터 컨버터{Data converter}
본 발명은, 인증방식에 사용되는 데이터 변환방식을 실현하는 데이터 컨버터 및 그 방법에 관한 것으로, 특히 작은 크기의 설치규모로 실현 가능하고, 높은 데이터 교란 성능을 갖는 데이터 컨버터 및 그 방법에 관한다.
통신상대의 정당성을 확인하는 방법의 하나인 챌린지 리스폰스 인증방식(Challenge-Response Authentication System) 등에 있어서, 인증측 및 피인증측에 대해서 비밀 변환 시스템이 필요하다. 비밀 변환 시스템에 대한 요건으로서, 높은 데이터 교란성능(어밸런치(avalanche) 성능)뿐만 아니라, 그 방법을 저 비용으로 기기에 설치하는 것이 요구된다.
데이터 변환 시스템의 종래예로서, 비밀키 암호화 시스템을 사용하는 시스템이 있다. 예를 들면, 챌린지 리스폰스 인증방식이 56 비트키 길이 DES(Data Encryption Standard) 암호화 시스템(DES암호화 시스템에 대한 상세한 것은 Menezes, Alfred J., 등, "HANDBOOK of APPLIED CRYPTOGRAPHY", CRC Press, 1997: 252-256을 참조)을 이용하는 데이터 변환시스템에 의해 실현되는 경우에는, 인증측 및 피인증측이 모두 DES 암호화 시스템의 56 비트키를 인증키로서 비밀로 저장한다. 또한, DES 암호화 시스템의 평문, 및 암호문이 데이터 변환 시스템의 입력, 출 력으로 각각 결정된다. 따라서, DES 암호화 방법이 인증을 위해 비밀 데이터 변환방식에 대해서 사용될 수있다(인증 시스템의 상세한 것에 대해서, Menezes, Alfred J., 등, "HANDBOOK of APPLIED CRYPTOGRAPHY", CRC Press, 1997: 400-403을 참조)
그렇지만, DES 암호화 시스템 등의 비밀키 암호화 시스템은, 암호회로와 함께 기기내에 설치되는 다른 회로들과 회로를 공유하는 것을 고려하여 구성되지 않는다. 그러므로, 다른 회로와 독립된 회로로서 설치되어야 한다. 따라서, 종래의 비밀키 암호화 시스템을 사용하는 데이터 변환 시스템에서, 암호화 회로는 기기내의 다른 회로와 별개로 설치되므로, 기기 전체의 회로규모가 커진다. 즉, 기기를 저 비용으로 실현하기 위해서는, 기기에 설치되는 회로의 총 규모를 가능한 한 더 작게 만드는 것이 일반적으로 요구된다. 그러므로, 기기에 설치된 암호화 회로가 다른 회로들과 회로를 공유하는 것이 바람직하다. 그러나, 종래의 구성에서는 실현되고 있지 않다.
상기 언급된 문제를 고려하여, 본 발명은 장치의 설치 규모의 전체 크기를 삭감할 수 있는 데이터 컨버터를 제공하는 것을 목적으로 한다.
본 발명에 의한 데이터 컨버터는, 입력 데이터를 복수의 데이터 블록으로 분할하는 분할부; 상기 복수의 데이터 블록의 각각에 대하여, 유한필드 GF (2n)(n은 자연수)에서의 값을 계수로서 다항식 잉여 클래스 링에서 소정 지수의 누승 연산에 기초하는 변환을 실행하는, 변환실행부;및 상기 변환실행부에 의해 변환된 복수의 데이터 블록에 기초하여 출력 데이터를 생성하는 출력 데이터 생성부를 포함하고, 상기 소정 지수는 3이상이고, 2m(m은 1이상의 정수) 이외의 값이다.
이 구성에 따르면, 누승 연산에서, 다항식 잉여 클래스 링에서 승산이 행해진다. 다항식 잉여 클래스 링에서 연산을 행함으로써, 입력 데이터의 일부가 후에 서술하는 것같이 변화되어도, 이 변화는 출력 데이터의 모든 비트에 영향을 준다. 그러므로, 데이터 교란이 개선될 수있다. 또한, 2이상의 변수로 승산이 행해질 때, 변수들중 임의의 하나가 0이면, 다른 변수들의 값들에 상관없이, 승산의 결과는 0이 되고, 더 좋은 데이터 교란 성능이 보여지지 않는다. 한편, 입력 데이터의 누승 연산이 행해질 때, 이러한 문제들을 발생시키지 않고 데이터 교란 성능이 개선될 수 있다. 또한, 누승 연산에서, 유한필드 GF (2n)(n은 자연수)의 값을 계수로서 다항식 잉여 클래스 링에서 연산이 행해진다. 따라서, 회로는, 리드 솔로몬 부호화나 BCH(Bose-Chaudhuri-Hocquenghem) 부호화 등의 에러정정부호화 회로에서 사용되는 유한 필드 GF (2n)의 연산회로와 공유될 수 있다. 따라서, 기기 전체의 설치규모의 크기가 삭감될 수 있고, 작은 회로규모의 기기설치가 실현된다.
본 출원의 기술적 배경에 대한 더 많은 정보로서, 2003년 10월 14일에 출원된 일본 특허 출원번호 2003-353439의 상세한 설명, 도면 및 청구범위를 포함하는 명세서의 전체가 참고로 여기에 포함되어 있다.
본 발명의 이들 목적 및 다른 목적들, 장점 및 특징들은 본 발명의 특정 실시예를 나타내는 첨부 도면과 관련하여 행해진 다음의 설명으로부터 분명해진다.
도 1은 본 발명의 실시예에 따르는 인증시스템을 나타내는 블럭도이다.
도 2는 본 발명의 실시예에 따르는 데이터컨버터의 구성의 일례를 나타내는 블럭도이다.
도 3은 본 발명의 실시예에 따르는 유한필드 3승부의 구성의 일례를 나타내는 블럭도이다.
도 4는 본 발명의 실시예에 따르는 유한필드 다항식 승산부의 구성의 일례를 나타내는 블럭도이다.
도 5는 본 발명의 실시예에 따르는 제1컨버터의 구성의 일례를 나타내는 블럭도이다.
도 6은 본 발명의 실시예에 따르는 제2컨버터의 구성의 일례를 나타내는 블럭도이다.
도 7은 본 발명의 실시예에 따르는 유한필드 승산부의 구성의 일례를 게시하는 블럭도이다.
도 8은 본 발명의 실시예에 따르는 유한필드 2승부의 구성의 일례를 나타내는 블럭도이다.
도 9는 본 발명에 의한 컨버터가 컨텐츠 배송시스템에 적용된 경우의 시스템구성의 일례를 나타내는 블럭도이다.
도 10은 에러 보정/데이터 컨버터의 LSI의 외부 도면이다.
도 11은 에러 보정/데이터 컨버터의 구성의 일례를 나타내는 블럭도이다.
이하 본 발명의 실시예에 대해서, 도면을 참조하여 설명한다.
(데이터 컨버터를 이용한 인증시스템의 구성)
도 1은, 본 발명의 일 실시예에 따르는 인증 시스템의 구성을 나타내는 블록도이다. 인증 시스템에서, 인증장치(3)는 피인증장치(4)를 챌린지 리스폰스 인증방식에 의해서 인증한다. 본 인증시스템의 특정 예로서, 예를 들면 인증장치(3)는 자동차의 문의 개폐를 제어하는 차량탑재기기이고, 피인증장치(4)는 자동차의 문의 개폐를 위해 사용자가 휴대하는 휴대단말인, 자동차용 키 리스(keyless) 출입 시스템이 표시되었다.
인증장치(3)는, 난수생성기(5)에서 64 비트의 난수데이터를 생성하여, 이것을 챌린지 데이터로서 피인증장치(4)에 송신한다. 피인증장치(4)는, 수신한 챌린지 데이터를 데이터컨버터(2)에서 변환하여, 변환 결과인 64 비트 변환 데이터를 응답 데이터로서 인증장치(3)에 송신한다. 인증장치(3)는, 피인증장치(4)가 상기 서술된 처리를 하고 있는 동안에, 데이터 컨버터(1)에서 난수데이터를 변환하고, 변환 결과로서 64 비트 변환 데이터를 생성한다. 그리고, 인증장치(3)가, 피인증장치(4)로부터 수신한 리스폰스 데이터와 변환데이터를 데이터 비교장치(6)에서 비교하여, 양측 데이터가 서로 일치하는 경우에만 피인증장치(4)를 유효한 것으로 인증한다. 여기서, 인증장치(3)의 데이터 컨버터(1) 및 피인증장치(4)의 데이터 컨버터(2)는 동일한 변환처리를 하고, 그 처리내용은 인증장치(3) 및 피인증장치(4)의 사이에서 비밀로 공유된다.
(데이터 컨버터(1, 2)의 구성)
데이터 컨버터(1, 2)는 동일한 구성이므로, 이하에서는 데이터 컨버터(1)의 내부구성만을 설명한다.
도 2는, 데이터 컨버터(1)의 내부구성을 나타낸 도면이다. 데이터 컨버터(1)는, 64 비트의 입력 데이터에 대하여 소정의 비밀변환처리를 행하여 64 비트의 출력 데이터를 생성한다. 이것은 유한필드다항식3승부(10), 데이터통합부(11a∼11d 및 12, 13), 제1컨버터(14), 제2컨버터(15), 데이터 분할부(16), 데이터통합부(17)를 갖는다. 이하, 64 비트의 입력 데이터가 데이터 컨버터(1)에 입력되었을 때의 내부동작에 대해서 설명한다.
우선, 데이터 분할부(16)가, 상위 비트로부터 64비트의 입력 데이터를 32 비트를 갖는 2개의 데이터 블록으로 분할한다. 여기서, 상위의 32비트 데이터 블록은 데이터 A로 칭하고, 하위의 32비트 데이터 블록은 데이터B로 칭한다. 데이터 A는 데이터통합부(11a 및 11c)에 입력되고, 데이터 B는 데이터통합부(11b 및 11d)에 각각 입력된다. 데이터통합부(11a 및 11c)는, 고정의 32 비트 데이터(K1, K3)를 갖는 입력된 32비트 데이터(A)의 각각의 비트에 대해서 배타적논리합연산(XOR)를 각각 행하여, 32 비트 데이터(A0, A1)를 각각 출력한다. 또한, 데이터통합부(11b 및 11d)는, 고정의 32 비트 데이터(K2, K4)를 갖는 입력된 32비트 데이터(B)의 각각의 비트에 대해서 배타적논리합연산(XOR)를 각각 행하여, 32 비트 데이터(B0, B1)를 각각 출력한다. 여기서, 3비트 데이터(K1∼K4)는 소정의 값으로 정해진 고정값이다.
다음에, 유한필드 다항식 3승부(10)는, 유한 필드 GF (28)의 값을 후에 서술하는 계수로서, 다항식 잉여 클래스 링에서 각각의 32비트 데이터(A0, B0, A1, B1)를 3승하여, 3비트 데이터 (A0)3, (B0)3, (A1)3, (B1)3를 각각 계산한다. 유한필드다항식3승부(10)의 처리의 상세에 대해서는 후에 설명한다.
다음에, 32비트 데이터 (A0)3 및 (B0)3은, 데이터통합부(12)에 입력되고, 32비트 데이터 (A1)3 및 (B1)3은, 데이터통합부(13)에 입력된다.
데이터통합부(12)및 데이터통합부(13)는, 2개의 입력된 32 비트 데이터에 대하여 비트마다 각각 배타적논리합연산을 행하여, 32비트 데이터 (A0)3 (+) (B0)3 및(Al)3 (+) (Bl)3를 출력한다. 여기서, "X (+) Y"는 X와 Y 사이에서 각각의 비트에 대한 배타적논리합연산(XOR)을 의미한다.
그 후, 제1컨버터(14)는, 32비트 데이터 (A0)3(+)(B0)3에 대하여 후에 설명할 유한필드 GF (28)에서의 연산에 기초하여 소정의 변환을 행하여, 32 비트 데이터(G0)를 출력한다. 또한, 제2컨버터(15)는, (A1)3(+)(B1)3에 대하여 유한필드 GF (28)에서의 연산에 기초하여 소정의 변환을 행하여, 32 비트 데이터(G1)를 출력한다.
상기 처리 후, 데이터통합부(17)는 32 비트 데이터(G0)를 상위 32 비트로서, 32 비트 데이터(G1)를 하위 32 비트로서 연결하여, 그 결과를 64비트 데이터로서 출력한다. 이 64비트 데이터는 데이터 컨버터(1)의 출력 데이터이다. 다음에, 유한필드다항식3승부(10)의 내부구성과 동작에 대해서 설명한다.
(유한필드다항식3승부(10)의 내부구성)
도 3은, 유한필드다항식3승부(10)의 내부 구성의 일례를 나타낸 도면이다. 유한필드다항식3승부(10)는, 유한필드 GF (28)의 값을 계수로서 다항식 잉여 클래스 링에서 3승하는 처리부이다. 이것은 입력제어부(101), 유한필드 다항식 승산부(100) 및 출력 제어부(102)로 구성된다.
입력제어부(101)는 2블록의 입력데이터중 하나가 출력되도록 제어를 행한다. 유한필드 다항식 승산부(100)는 유한필드 GF (28)의 값을 계수로서 다항식 잉여 클래스 링의 2블록의 입력데이터를 승산한다. 출력 제어부(102)는 입력데이터가 2개의 출력 목적지중 하나에 출력되도록 제어를 행한다.
이하, 32 비트의 입력데이터(X)가 유한필드다항식3승부(10)에 입력될 때의 내부동작에 대해서 설명한다. 입력 데이터(X)는, 입력제어부(101) 및 유한필드다항식 승산부(100)에 입력된다. 입력제어부(101)는 입력 데이터(X)를 그대로 유한필드 다항식 승산부(100)에 입력한다. 유한필드 다항식 승산부(100)는, 외부로부터 입력된 32비트 데이터(X)와 입력제어부(101)로부터 입력된 32비트 데이터(X)를 유한필드 GF (28)의 값을 계수로서 다항식 잉여 클래스 링에서 승산하여, 승산결과 X2을 출력하고, 이것을 출력제어부(102)에 입력한다. 유한필드 다항식 승산부(100)의 상 세한 처리에 대해서 후에 설명한다.
출력제어부(102)는, 입력 데이터(X2)를 그대로 입력제어부(101)에 입력한다. 그리고, 입력제어부(101)는 입력 데이터(X2)를 유한필드 다항식 승산부(100)에 입력한다.
유한필드 다항식 승산부(100)는, 입력데이터(X2)와 입력 데이터(X)를 승산하고, 그 승산(X3)을 출력제어부(102)에 입력한다. 여기서의 승산은 상기 서술한 것같이 다항식 잉여 클래스 링에서 승산이다.
출력제어부(102)는, 입력 데이터(X3)를 유한필드 다항식 3승부(10)의 출력 데이터로서 출력한다. 다음에, 유한필드 다항식 승산부(100)의 내부구성과 동작에 대해서 설명한다.
(유한필드 다항식 승산부(100)의 내부구성)
도 4는, 유한필드 다항식 승산부(100)의 내부 구성의 일례를 나타낸 도면이다. 유한필드 다항식 승산부(100)는, 32 비트의 제1입력 데이터(X)와 32 비트의 제2입력 데이터(Y)를 유한필드 GF (28)의 값을 계수로서 다항식잉여 클래스 링에서 승산하여, 32 비트의 출력 데이터(D)를 출력한다. 여기서 다항식 잉여 클래스링의 잉여 다항식은 L(X)= X4-1로 표시되고, 유한필드 GF (28)의 원시다항식 m(x)은 m(x)= x8+ x4+ x3+ x+ 1로 표시된다. 유한필드 다항식 승산부(100)의 동작 설명에 앞서, 유한필드 GF (28)에서의 연산 및 다항식 잉여 클래스 링에서 연산에 대해서 간단히 설명한다.
우선, 유한필드 GF (28)의 연산에 대해서 설명한다. 유한필드 GF (28)의 연산에 있어서, 8 비트 데이터(A)의 각 비트의 값이 상위 비트로부터 a7, a6, · · ·, a 0로 표시되면, 7차의 다항식 a(x)= a7× x7+ a6× x6+· · ·+ a1× x+ a0은 그 값들을 대응시킴으로써 고려된다. 유사하게, 8 비트 데이터의 각 비트의 값을 상위 비트로부터 b7, b6, ···, b0로 표시하면, 7차 다항식 b(x)= b7× x7+ b6×x6+. . . + bl×x+ b0은 그 값들을 대응시킴으로써 고려된다. 이 때, 유한필드 GF (28)에서 A와 B의 합(C)은, c(x)= a(x)+ b(x)가 유한 필드 GF (2)에서 계산된 합c(x)이, 상기 설명한 7차 다항식과 8비트 데이터를 대응시켜, 8비트 데이터로 변환된 결과이다. 즉, c(x)= c7× x7+ c6×x6+· · ·+ c1× x+ c0로 하였을 때, 다음과 같이 얻어진다.
c7= a7+ b7
c6= a6+ b6
······
c1= a1+ bl
cO= aO+ bO
여기서, 1 비트 데이터와 1비트 데이터 사이의 가산 "+"은 모두 유한 필드 GF (2)에서 행해진다. 즉, 0+ O= 1+ 1= O 이고, 그러므로 O+ 1= 1+ O= 1로서 계산된다.
상기로부터, 유한 필드 GF (28)에서의 가산은, 비트마다의 배타적논리합연산만을 행한다. 즉, A, B의 합의 결과(C)는, C= A(+)B이다.
다음에, 유한 필드 GF (28)에서의 승산을 설명한다. 상기 서술한 것같이, 8 비트 데이터(A, B, C)가 7차 다항식 a(x), b(x), c(x)로 표시될 때, 8비트 데이터(A, B)의 승산 결과(C)는, 대응하는 7차다항식 a(x), b(x), c(x)를 이용하여 다음 식에 의해 얻어진다.
c(x) = a(x)×b(x) mod m (x)
여기서, "f(x) mod g(x)"는, g(x)를 법으로 한 f(x)의 잉여계산의 잉여계산결과이고, m(x)은, 앞에 설명한 것같이, 유한 필드 GF (28)에서의 원시다항식 m(x)= x8+ x4+ x3+ x+ 1 이다. 또, 이 때의 다항식승산, 잉여 계산에 의한 계수의 가산 및 승산은 유한 필드 GF (2)에서 계산된다. 유한 필드 GF (2)에서의 가산은 서술한 것과 같고, 승산은 O× O= O× 1= 1× O= O, 1× 1= 1로 주어진다.
승산의 예를 설명한다. A= 57(16진수), B= 83(16진수)로 주어지면, a(x)= x6+ x4+ x2+ x+ 1, b(x)= x7+ x+ 1이다. 그리고, a(x)×b(x) = x13+ x11+ x9+ x8+ x6+ x5+ x4+ x3+ 1이고, 그래서, a(x)×b(x) mod m(x)= x7+ x6+ 1이다. 그러므로, A, B의 승산결과 C= C1(16진수)이다.
다음에, 유한 필드 GF (28)에서의 값을 계수로서 다항식잉여 클래스 링의 연산에 대해서 설명한다. 다항식잉여 클래스 링의 연산에서, 32비트 데이터(A)의 각 바이트가 상위 바이트로부터 A0, A1, A2, A3로 표시될 때, 1바이트 데이터(A0∼A3)가 3차 다항식 A(X)= A0+ A1× X+ A2× X2 + A3× X3에 적용된다. 유사하게, 32비트 데이터(B, C)의 각 바이트는 B0, B1, B2, B3 및 C0, C1, C2, C3로 표시될 때, 1바이트 데이터(B0∼B3, C0∼C3)는 다음 다항식 B(X)= B0+ B1× X+ B2× X2 + B3× X3 및 C(X)= C0+ C1× X+ C2× X2 + C3× X3에 각각 적용된다. 이 때, 다항식잉여 클래스 링의 가산은 C(X)= A(X)+ B(X)에 의해 얻어진다. 이 때의 다항식계수의 가산은 상기 설명한 것같이 유한 필드 GF (28)에서의 가산이다. 바꿔 말하면, 32비트 데이터(A와 B)의 가산은 각 비트에 대한 배타적논리합연산를 행함으로서만 구해질 수 있다.
다음에, 다항식잉여 클래스 링에서 승산을 설명한다. 32 비트의 데이터(A, B)의 승산결과로서 32 비트 데이터(C)가 주어지면, 상기 설명한 것같이, 각 데이터가 3차 다항식 A(X), B(X), C(X)에 적용될 때, 다항식잉여 클래스 링에서 승산은 다음의 다항식연산으로 표시된다.
C(X) = A(X) × B(X) mod L(X)
여기서, L(X)는 설명한 것같이, L(X)= X4-1이고, 다항식계수의 가산, 승산은 유한 필드 GF (28)에서 계산된다. 그러므로, 상기 식은 다음과 같이 계산된다.
C(X) = A0×B0
+ (A0× B1+ A1× B0) × X
+ (A0× B2+ A2× B0+ A1× Bl) × X2
+ (A0× B3+ A1× B2+ A2× B1+ A3× B0) × X3
+ (A1× B3+ A3× B1+ A2× B2)× X4
+ (A2× B3+ A3× B2) × X5
+ (A3× B3)× X6 (mod X4-1)
이 때, X4 = 1(mod X4-1)이므로 상기 식은 아래와 같이 변형될 수 있다.
C(X) = (A0× B0+ A3× B1+ A2× B2+ A1× B3)
+ (A1× B0+ A0× B1+ A3× B2+ A2× B3)× X
+ (A2× B0+ A1× B1+ A0× B2+ A3× B3) × X2
+ (A3× B0+ A2× B1+ A1× B2+ A0× B3) × X3
그러므로, C는 다음과 같이 계산될 수 있다.
C0= A0× B0+ A3× B1+ A2× B2+ A1× B3
C1= A1× B0+ A0× B1+ A3× B2+ A2× B3
C2= A2× B0+ A1× B1+ A0× B2+ A3× B3
C3= A3× B0+ A2× B1+ A1× B2+ A0× B3
여기서, 가산"+", 승산"×"은 유한 필드 GF (28)에서 연산된다.
이상으로, 다항식 잉여 클래스 링 및 유한 필드 GF (28)에서의 연산에 대한 설명을 종료한다. 그 후, 유한필드 다항식 승산부(100)의 동작에 대해서 설명을 한다.
유한필드 다항식 승산부(100)는 유한 필드 GF (28)의 값을 계수로서 다항식 잉여 클래스 링의 입력 데이터의 2블록을 승산하는 처리부이다. 이것은, 유한필드 승산부(110), 데이터 분할부(111∼112), 데이터 가산부(113∼115), 데이터 통합부(116), 및 연산제어부(117)로 구성된다.
유한필드 승산부(110)는 유한 필드 GF (28)에서 승산을 행한다. 각각의 데이터 분할부(111∼112)는 32 비트의 입력 데이터를 각각 8 비트를 갖는 4개의 블록의 데이터로 분할한다. 각각의 데이터 가산부(113∼115)는 유한 필드 GF (28)에서 2개의 입력 데이터를 가산한다. 데이터 통합부(116)는 8 비트 데이터의 4개의 블록을 통합하여 32 비트 데이터로서 출력한다. 연산제어부(117)는 데이터 분할부(111) 및 데이터 분할부(112)로부터 입력된 피승수 및 승수의 입력 제어와, 유한필드 승산부 (110)로부터 출력된 데이터의 출력 목적지 제어를 행한다. 이하, 유한필드 다항식 승산부(100)의 동작에 대해서 설명한다.
데이터 분할부(111)는, 32 비트의 제1입력 데이터를 상위 바이트로부터 각각 8 비트를 갖는 데이터의 4개의 블록으로 분할한다. 여기서, 4개의 데이터 블록은 상위 바이트로부터 X0, X1, X2, X3로 표시된다. 데이터 분할부(112)는, 32 비트의 제2입력 데이터를 상위 바이트로부터 각각 8 비트를 갖는 데이터의 4개의 블록으로 분할한다. 여기서, 4개의 데이터 블록은 상위 바이트로부터 Y0, Y1, Y2, Y3로 표시된다. 이하, 연산제어부(117)는 필요시 입출력 데이터를 제어하고, 유한필드 승산부(ll0) 및 데이터가산부(113∼115)는, 하기 식 (1)∼(4)에 따라서 비트 데이터(D0, D1, D2, D3)를 계산한다.
D0= X0× Y0+ X3× Y1+ X2× Y2+ X1× Y3 ···(1)
D1= X1× Y0+ X0× Y1+ X3× Y2+ X2× Y3 ···(2)
D2= X2× Y0+ X1× Y1+ X0× Y2+ X3× Y3 ···(3)
D3= X3× Y0+ X2× Y1+ X1× Y2+ X0× Y3 ···(4)
승산"×" 및 가산"+"은 모두 GF (28)에서 연산된다. 상기 식이 데이터(X)와 데이터(Y)의 승산을 나타내는 이유는 상기에 설명된 것같다.
지금은, 데이터(D0)를 계산하는 유한 다항식 승산부(100)의 동작에 대해서만 설명한다. 데이터(D1∼D3)는 유사한 동작에 의해서 계산된다.
유한필드 승산부(110)에 대한 입력으로서, 연산제어부(117)는 데이터(X0∼ X3)중에서 데이터(X0)를, 데이터(Y0∼Y3)중에서 데이터(Y0)를 선택한다. 유한필드 승산부(110)는 유한 필드 GF (28)에서 데이터(X0)와 데이터(Y0)를 승산하고, 데이터(Z0)로서 승산 결과를 출력한다. 즉,
Z0= X0× Y0가 계산된다.
다음에, 유사한 동작에 의해, 유한필드 승산부(110)는, 유한 필드 GF (28)에서 데이터(X3와 Y1)를 승산하여, 계산 결과를 데이터(Zl)로서 출력한다. 즉,
Z1= X3× Y1
가 계산된다. 유사하게,
Z2= X2× Y2
Z3= X1× Y3
가 계산된다.
Z0∼Z3을 출력한 후, 데이터가산부(113∼115)는, 데이터(Z0∼Z3)를 유한필드 GF (28)에서 가산한다. 즉,
D0= Z0+ Z1+ Z2+ Z3
가 계산된다. 유한필드 GF (28)에서의 가산은 비트 마다의 배타적논리합연산밖에 없다. 그러므로, 상기 계산은 각 비트값에 대해서 데이터(Z0∼Z3)에 배타적논리합연산을 하는 것과 같다. 유사하게, 데이터 가산부(113∼115)는 다음 식의 게산에 의해 얻어진다.
Dl= X1× Y0+ X0× Y1+ X3× Y2+ X2× Y3
D2= X2× Y0+ X1× Y1+ X0× Y2+ X3× Y3
D3= X3× Y0+ X2× Y1+ X1× Y2+ X0× Y3
데이터통합부(116)는, 상위 비트로부터 데이터(D0, D1, D2, D3)를 연결하여 32 비트 데이터(D)를 유한필드 다항식 승산부(100)의 출력 데이터로서 출력한다.
다음에, 제1컨버터(14)의 내부 구성과 동작에 대해서 설명한다.
(제1컨버터(14)의 내부구성)
도 5는, 제1컨버터(14)의 내부 구성의 일례를 나타낸 도면이다.
제1 컨버터(14)는, 32 비트의 입력데이터(X)에 대하여 유한필드 GF (28)에서의 연산을 이용하여 소정의 변환을 행하여 32 비트의 출력 데이터(Y)를 출력하는 처리부이다. 이것은, 데이터 분할부(20), 데이터 통합부(21), 정수 저장부(22) 및 유한필드 승산부(210)로 구성된다. 데이터 분할부(20)는 32 비트입력 데이터를 8 비트 데이터의 4개의 블록으로 분할한다. 데이터 통합부(21)는 8 비트 데이터의 4개의 블록를 통합하여, 이것을 32 비트 데이터로서 출력한다. 정수저장부(22)는 4개의 8 비트 정수(C1∼C4)를 저장한다. 유한필드 승산부(210)는 8 비트 입력 데이터의 2개의 블록을 유한필드 GF (28)에서 승산하여 8비트 출력 데이터를 출력한다. 이하, 제1컨버터(14)의 동작에 대해서 설명한다.
데이터 분할부(20)는, 32 비트의 입력 데이터(X)를 상위 바이트로부터 각 8 비트를 갖는 데이터 블록으로 분할한다. 여기서, 분할 후 8비트 데이터는 상위 바 이트로부터 데이터 X0, X1, X2, X3로 표시된다. 유한필드 승산부(210)는, 데이터(X0)와, 정수기억부(22)에 기억된 8 비트정수(C1)를 유한필드 GF (28)에서 승산하여, 그 결과를 출력 데이터(Y0)로서 출력한다. 유사하게, 유한필드 승산부(210)는, ⅰ) 데이터(X1)와 정수(C2)를 승산하여 데이터(Y1)로서 출력하고, ⅱ) 데이터(X2)와 정수(C3)를 승산하여 데이터(Y2)로서 출력하고, ⅲ) 데이터(X3)와 정수(C4)를 승산하여 데이터(Y3)로서 출력한다. 상기 일련의 동작에 따르면, 다음 식이 계산된다.
Y0= C1× X0
Y1= C2× Xl
Y2= C3× X2
Y3= C4× X3
승산"×"은 모두 유한 필드 GF (28)에서 계산된다.
상기 처리 후, 데이터통합부(21)는, 상위 바이트로부터 데이터(Y0, Yl, Y2, Y3)를 연결하여, 제1컨버터(14)의 출력 데이터로서 32 비트 데이터(Y)를 출력한다.
(제2컨버터(15)의 내부구성)
도 6에 나타낸 것같이, 제2컨버터(15)의 내부구성에 대해서, 제l 컨버터(14)의 정수기억부에 기억된 정수 C1, C2, C3, C4가 제2 컨버터(15)에서 각각 C5, C6, C7, C8으로 변한다. 한편, 제2 컨버터(15)의 다른 내부구성과 동작은 제1컨버터(14)와 동일하다. 그러므로, 그 상세한 설명은 여기서 반복하지 않는다.
다음에, 도 7을 참조하여, 유한필드 승산부(110, 210, 310)의 내부구성과 동작에 대해서 설명한다.
(유한필드 승산부(110, 210, 310)의 내부구성)
유한필드 승산부(110, 210, 310)는 동일한 내부구성을 가지고, 동일한 동작을 한다. 그러므로, 유한필드 승산부(110)의 동작만을 여기서 설명한다. 유한필드 GF (28)의 승산방법은 상기 설명한 것같고, 그 계산을 크기가 작은 회로에서 실현한 구성을 여기서 설명한다.
유한필드 승산부(110)는, 8 비트의 제1 입력 데이터(X)와 8비트의 제2 입력 데이터(Y)를 유한필드 GF (28)에서 승산을 하여, 8 비트의 출력 데이터(Z)를 출력하는 처리부이다. 이것은 제1 입력제어부(411), 제2 입력제어부(414), 출력제어부(412), 유한 필드 2승부(410), 데이터통합부(413) 및 데이터 분할부(415)로 구성된다.
각각의 제1 입력제어부(411), 제2 입력제어부(414)는 2개의 입력 데이터 블록중 어느 하나를 선택하여, 그 선택된 데이터 블록을 출력하는 제어를 행한다. 유한 필드 2승부(410)는 입력데이터를 유한필드 GF (28)에서 2승한다. 데이터통합부(413)는 2개의 입력 데이터를 통합한다. 데이터 분할부(415)는 입력 데이터를 복수의 데이터로 분할한다. 이후, 유한필드 승산부(110)의 동작에 대해서 설명한다.
우선, 데이터 분할부(415)는 8 비트의 제2입력 데이터(Y)를 상위 비트로부터 1비트씩 분할하고, 각 값은 Y7, Y6, ···, Y0로 표시된다. 다음에, i=7, 6, 5, 4, 3, 2, 1, 0의 순서로 이하의 (1) ∼ (5)의 처리들이 반복된다.
(1) 제1 입력제어부(411)는, i= 7일 때 8 비트의 초기값= 0을, i≠ 7일 때 출력제어부(412)로부터 출력되는 8 비트 데이터를 유한필드 2승부(410)에 입력한다.
(2) 유한필드 2승부(410)는, 제1 입력제어부(411)로부터 입력되는 8비트 데이터를 유한필드 GF (28)에서 2승하여, 그 결과의 8 비트 데이터를 데이터통합부(413)에 입력한다.
(3) 제2 입력제어부(414)는, Yi(i =7, 6, ···, 0)일 때 8비트 정수 0을, 다른 경우에 대해서는 제1 입력데이터(X)를 데이터통합부(413)에 입력한다.
(4) 데이터통합부(413)는 유한필드 2승부(410)로부터 입력되는 8 비트 데이터와, 제2 입력제어부(414)로부터 입력되는 8비트 데이터에 대하여 비트마다 배타적논리합연산을 하여, 연산결과의 8 비트 데이터를 출력제어부(412)에 입력한다.
(5) 출력제어부(412)는, i≠ 0으로 주어지면, 데이터통합부(413)로부터 입력되는 8비트 데이터를 제1 입력제어부(411)에 입력한다. 그 후, i의 값을 1만 감소시켜, 처리 (1)로부터 처리가 재시작된다. i= 0으로 주어지면, 출력제어부(412)는 데이터통합부(413)로부터 입력되는 8비트 데이터를 유한필드 승산부(110)의 출력 데이터로서 출력한다. 그러면, 처리의 블록이 종료된다.
상기 서술된 처리를 통해서 제1입력 데이터(X)와 제2입력데이터(Y)의 승산이 계산될 수 있는 이유를 간단히 설명한다.
각 비트에 대해서, 값(Y7, Y6, ···, Y0)을 취하면,
제2 입력 데이터는
Y= Y7× 27+ Y6× 26+···+ Yi× 2i+···+ Y0로 표시된다.
그래서,
X× Y= X×(Y7×27+ Y6×26+···+ Yi× 2i+···+ Y0)
= (··· (((((0+ X× Y7)× 2+ X× Y6)× 2+ X× Y5) × 2+ X× Y4) × 2+ X× Y3) ···) × 2+ X× Y0
이 식은 상기 서술된 처리에 기초한다.
다음에, 유한필드 2승부(410)의 내부구성과 동작을 설명한다.
(유한필드 2승부(410)의 내부구성)
도 8은 유한필드 2승부(410)의 내부구성을 나타내는 도면이다.
유한필드 2승부(410)는 입력되는 8 비트 데이터(X)를 유한필드 GF (28)에서 2승하여, 그 8 비트 데이터(Y)를 결과로서 출력한다. 이것은 데이터 분할부(511), 데이터 통합부(512), 및 데이터 통합부(513∼515)로 구성되어 있다. 데이터 분할부(511)는 입력 데이터를 1 비트씩의 데이터로 분할한다. 데이터 통합부(512)는 여러개의 입력데이터를 단일의 데이터로 통합한다. 각각의 데이터 통합부(513∼515)는 2 블록의 입력 데이터를 통합한다. 이하, 유한필드 2승부(410)의 동작을 설명한다.
우선, 데이터 분할부(511)는, 8 비트입력데이터(X)를 상위 비트로부터 1 비트씩 분할하여 상위 비트로부터 데이터(X7, X6, …, X0)로서 출력한다. 다음에, 데 이터통합부(513)는, 데이터(X7)와 데이터(X3)의 배타적논리합연산을 행하여 그 결과를 데이터(Y4)로서 출력한다. 데이터통합부(514)는, 데이터(X7)와 데이터(X2)의 배타적논리합연산을 행하여, 그 결과를 데이터(Y3)로서 출력한다. 데이터통합부(515)는, 데이터(X7)와 데이터(X0)의 배타적논리합연산을 행하여, 그 결과를 데이터(Y1)로 출력한다. 또한, 데이터(X6, X5, X4, X1, X7)는 각각 데이터(Y7, Y6, Y5, Y2, Y0)로 표시된다. 데이터통합부(512)는 데이터(Y7, Y6, Y5, …, Y0)가 상위 비트로부터 이 순서대로 통합된 8비트 데이터를, 유한필드 2승부(410)의 출력 데이터로서 출력한다.
8 비트입력 데이터(X)로 구성된 각 비트(X7, X6, …, X0)에 대하여,
Y7= X6
Y6= X5
Y5= X4
Y4= X3 (+) X7
Y3= X2 (+) X7
Y2= X1
Y1= X0 (+) X7
Y0= X7
로서 표시하여, 유한필드 2승부(410)는 8 비트출력 데이터(Y)로 구성된 각 비트(Y7, Y6, …, Y0)의 값을 계산한다. 여기서, 출력 데이터(Y)는, 유한필드 GF (28)에서 입력 데이터(X)를 2승한 결과를 나타낸다. 이것을 다음에 설명한다.
입력데이터(X)는, 그 계수가 유한 필드 GF (2)의 값인 α의 다음 다항식에 의해 표시된다.
X7×α7+ 6×α6+ … + X1×α+ X0
이 때, 유한 필드 GF (28)에서 2승을 한다는 것은, 위의 다항식에 α를 곱셈하는 것을 뜻한다. 그러므로,
X7×α8+ 6×α7+ … + X1×α2+ X0×α
여기서, 원시다항식이 x8 + x4 + x3 + x+ 1이므로,
α8 = α4+ α3+ α+ 1 를 가진다. 그러므로, 상기 다항식은,
X6 ×α7 + X5×α6+ X4×α5+ (X3+ X7) ×α4+ (X2+ X7)×α3 + X1×α+ (X0+ X7)로 재구성되고,
이 다항식은
Y7×α7+ Y5×α6 + … + Y1×α+ Y0에 대응한다.
그래서, 유한필드 2승부(410)에 의한 처리가 행해지는 이유가 설명된다.
데이터 컨버터(1, 2)는, 64 비트의 입력 데이터(X)에 대하여 이하의 처리를 행한다.
(1) 입력 데이터(X)를 상위 32 비트, 하위 32 비트로 분할하여, 각각 데이터 (X0, X1)로 표시한다.
(2) T0=(X0+ Kl)3+(X1+ K2)3 및 T1=(X0+ K3)3+(X1+ K4)3를 계산한다. 여기서의 가산, 승산은 유한 필드 GF (28)에서 값을 계수로서 결정하는 다항식 잉여 클래스 링에서 모두 계산된다.
(3) 32 비트의 데이터(T0)를 상위 비트로부터 8 비트 데이터로 분할한다. 이 분할된 데이터는 각각 데이터(a0, a1, a2, a3)로 표시된다. 또한, 32 비트 데이터(T1)를 상위 바이트로부터 각각 8 비트의 데이터 블록으로 분할한다. 분할된 데이터는 각각 데이터(b0, b1, b2, b3)로 표시된다.
(4) G0= C1×a0 ∥ C2× a1∥ C3× a2 ∥ C4× a3 및 G1= C5× b0∥ C6× b1∥ C7× b2∥ C8× b3을 계산하여, G0 ∥ G1를 출력 데이터로서 계산된다. 단지, "∥"는 데이터연결을 나타내고, 상기 승산은 모두 유한필드 GF (28)에서 계산된다.
유한필드 GF (28)의 값을 계수로서 다항식 잉여 클래스 링의 승산에서, 식(1)∼식(4)로부터 명백한 것같이, 입력 데이터의 일부가 변경되어도, 그 변경은 모든 출력 데이터에 영향을 준다. 예를 들면, 식(1)∼(4)에서 데이터(X0)의 값이 변경한다고 가정한다. 데이터(X0)는 모든 식(1)∼(4)에서 사용된다. 그러므로, 변경은 모든 출력 데이터(D0∼D3)에 영향을 준다. 다른 값(X1∼X3, Y0∼Y3)에 동일하게 적용한다. 따라서, 본 실시예에서, 변환처리에 상기의 승산을 사용하여 데이터교란의 높은 성능이 실현될 수 있다. 다음에, 본 실시예에서, 2개 이상의 변수의 승산( 예를 들면, X× Y, X× Y× Z) 대신에 누승 연산이 사용된다. 이것은, 2개 이상의 변수의 승산의 경우, 그 변수 중 어느 하나의 값이 O이면, 승산 결과가 항상 O이 되기 때문이고, 즉, 승산 결과의 값을 0으로 하는 입력 변수들의 값의 많은 조합이 있기 때문이다. 그래서, 양호한 교란성능이 나타나지 않는다. 한편, 누승 연산의 경우, 입력 변수의 값이 0일 때, 계산 결과가 오직 0이 된다. 그러므로, 상기 서술된 것같이 데이터 교란의 성능을 저하시키지 않고 데이터의 높은 성능이 보장된다.
또한, 본 실시예에서, 3승 연산이 사용된다. 이것은 다음의 이유에 기인한다. 우선, 2승 연산을 사용하여, Y= X2등의 변환이 주어질 때, 입력값(α)에 대한 출력값은 α2이다. 다음에, 입력값(α)에 차분(△)이 더해졌을 때의 출력값은, (α+△)22+α× △+ △×α+ △2이다. 여기서, α× △= △×α 및 α× △+α× △= 0 (모두 유한 필드 GF (28)에서의 계산방법으로부터 분명하다). 그래서, (α× △)2= α2+△2이다. 그러므로, 차분(△)을 입력값에 더하여 출력값의 변화값은 △2이 된다. 즉, 입력값(α)에 상관없이, 출력값의 변화값은 일정한 출력변화값(△2)이 되므로, 데이터교란이라는 관점에서는 바람직한 성질이 아니다. 따라서, 적어도 3승 이상의 승산을 사용하는 것이 필요하다. 본 실시예에서, 지수가 높을 수록 누승 연산 처리가 많아져서 변환 처리 부하가 높게 되기 때문에 3승 연산이 사용된다. 여기서,
(α+△)3=(α+ △)×(α+△) × (α+△)
= (α2+α ×△+ △×α+ △2)×(α+△)
= (α2+ △2)×(α+△)
3+△×α2+△2×α+ △3
그러므로, 3승연산의 경우에, 2승 연산에서와 같이 입력값(α)에 상관없이 출력차분이 일정하지 않다. 또, 누승에 대한 누승 지수 N이 N=2k((k는 1이상의 정수)인 경우에, 출력값은 데이터 변환 처리로서 누승 연산 XN에서의 입력값(α)에 입력차(△)를 가산하여 얻어진, (α+△)^ (2k)=α^ (2k)+ △^ (2k)이다. 이하는 입력값에 상관없이 출력값이 일정하게 되는 경우를 설명한다. 여기서, "X^α"는 X를 α승한 것을 나타낸다.
그러므로, k= 1이고, 지수= 2인 경우, 상기 설명에 기초하여 출력값은 (α+△)22+ △2이다. 다음에 k= m, 지수= 2m의 때, (α+ △)^(2m)=α^(2m)+ △^(2m)이 성립되면, (α+△) ^ (2(m+ 1))={(α+△)^(2m)}={α^(2m)+△^(2m)}2=α^(2m+1)+ △^ (2m+1)이 성립한다. 그러므로, k= m+ 1일 때에 상기 식이 성립한다. 따라서, 수학적귀납법에 의해 1이상의 임의의 정수에 대하여, 식(α+△) ^ (2k)=α^(2k)+ △^(2k) 가 성립되는 것이 표시된다. 따라서, 지수는 2k(k은 1이상의 정수)이외의 값이 가능한 것으로 표시된다. 즉, 본 실시에에서, 지수로 3이 사용되는 반면, 데이터 컨버터에서의 처리에 시간이 다소 걸리더라도 상관하지 않으면, 값은 2k(k는 1이상의 정수)이외인 3이상의 값이 가능하다.
또한, 본 실시예에서, (X+ K)3등의 누승 연산 앞에서, 정수 K 에 의한 가산(배타적논리합연산)이 계산된다. 여기서, 이 정수 K를 변경함으로써, 데이터 컨버터의 변환처리에 많은 변경을 줄 수 있다. 예를 들면, 인증되어야 하는 대상에 기초하여 다른 정수 K를 사용함으로써, 인증되어야 하는 각 대상을 인증하기 위해 다른 변환처리가 사용될 수 있다.
여기서, (X+ K)3의 값이 0일 때는 X=Y일 때만이다. 그러므로, 데이터 교란의 높은 성능을 보장하는 장점은 상기 서술된 것같이 누승 연산을 사용하여 상실되지 않는다.
또한, 본 실시예에서는, 4개의 데이터 블록(A0∼A3)에 대하여 동일한 3승연산이 행해진다. 그렇지만, 동일한 지수일 필요는 없고, 지수는 서로 다를수 있다.
더욱이, 본 실시예에 따르는 데이터 컨버터는, 데이터교란의 중심이 되는 처리에 대해서 유한필드 GF (28)에서의 연산처리를 사용한다. 그러므로, 회로는, 리드 솔로몬 코드나 BCH(Bose-Chaudhuri-Hocquenghem) 코드 등의 에러정정부호화 회로에 서 사용되는 유한 필드 GF (28)의 연산회로와 공유될 수 있다. 따라서, 전체의 기기의 설치규모가 삭감될 수 있고, 작은 회로규모의 기기설치가 실현된다.
또, 본 실시예의 각 데이터 크기는 단지 일례일 뿐으로, 그 데이터 크기 이외도 가능하다. 또한, 본 실시예에 따르는 원시다항식 및 잉여다항식도 일례일 뿐이다. 그러므로, 크기는 이것에 한정되지 않는다.
또한, 본 실시예는 데이터컨버터가 인증시스템에 사용되는 경우를 설명하고 있다. 그러나, 비밀의 데이터 컨버터를 사용하지 않으면, 본 실시예의 데이터 컨버터가 사용될 수 있다. 이 데이터 컨버터를 사용하는 다른 응용예로서, 이것을 도 9에 나타낸 것같이 컨텐츠 배송 시스템에 적용될 수 있다. 컨텐츠 배송 시스템은, 방송 또는 네트워크을 통해 암호화된 컨텐츠를 배송하는 컨텐츠 배송기기와, 이 배송된 암호화 컨텐츠를 수신, 복호 및 재생하는 재생기기(8)로 이루어진다. 컨텐츠 배송기기(7)는, 데이터 컨버터(70)에 있어서 키 시드 데이터(컨텐츠키를 생성하기 위한 시드가 되는 데이터)를 변환하여, 컨텐츠키를 생성한다. 그리고, 컨텐츠 암호화장치(71)는 평문의 컨텐츠 데이터를 암호화하여 암호화 컨텐츠 데이터를 생성한다. 상기 처리후, 컨텐츠 배송기기(7)는 키 시드 데이터와 암호화컨텐츠 데이터를 재생기기(8)에 송신한다. 데이터를 우선 수신한 재생기기(8)는 데이터 컨버터(8)의 키시드 데이터를 변환하여, 컨텐츠키를 생성한다. 그리고, 컨텐츠 복호화장치(81)는 암호화 컨텐츠 데이터를 복호하여 평문의 컨텐츠를 얻는다. 컨텐츠의 재생이 인정된 재생기기만이, 컨텐츠 배송기기가 갖는 것과 같은 데이터 컨버터를 탑재함으 로써, 불법의 재생기기에 의한 컨텐츠의 재생을 방지할 수가 있다.
또한, 본 실시예에서, 데이터통합부(11a∼11d)에서 데이터통합을 하는 고정값(K1∼K4)은 미리 고정된 값이고, 이들 고정값은 데이터 컨버터의 외부에서 입력될 수 있으므로, 사용자는 이 값을 자유롭게 설정할 수 있다. 또한, 정수기억부(22)에 기억되는 정수(C1∼C4)도 미리 고정된 값이다. 그러나, 이들 값은 데이터 컨버터의 외부에서 입력될 수 있으므로, 사용자는 이 값들을 자유롭게 설정할 수 있다.
또한, 본 실시예에서, 유한 필드로서 유한 필드 GF (28)가 사용되지만, 다른 유한 필드가 사용될 수 있다. 예를 들면, 유한 필드 GF (2n)(n은 자연수)가 사용될 수 있다.
블록도(도 2 등)의 각 기능블록은 집적회로인 LSI로 전형적으로 실현될 수 있다. 단일 칩으로 분리되어 구성될 수도 있고, 일부 또는 전체의 집적회로를 포함하는 단일 칩으로 구성될 수도 있다.
도 10은 도 2에 나타낸 데이터 컨버터와 유사한 기능을 갖는 데이터 컨버터를 포함하는 에러 정정/데이터 컨버터의 LSI의 외부도이다. 도 11은 에러 정정/데이터 컨버터의 LSI의 구성을 나타내는 기능블록도이다.
도 11에 나타낸 것같이, 에러 정정/데이터 컨버터(600)는 데이터에 에러 정정 부호화를 행한 후 데이터 변환을 실행하는 장치이다. 리드 솔로몬 에러 정정 부호화부(601) 및 데이터 컨버터(604)를 갖는다.
리드 솔로몬 에러 정정 부호화부(601)는 입력된 데이터에 리드 솔로몬 에러 정정 부호화를 행하여 부호화된 데이터를 출력하는 처리부이다. 데이터 수신부(602)는 외부로부터 입력되는 데이터를 수신하는 처리부이다. 부호화부(603)는 데이터 수신부(602)에 대응하여, 데이터 수신부(602)에서 수신된 데이터를 유한 필드 GF (2n)에서 승산을 행함으로써 리드 솔로몬 에러 정정 부호화를 행하는 처리부이다. 부호화부(603)는 유한 필드 GF (2n)에서 데이터에 승산을 행하는 유한 필드 승산부를 갖는다. 유한 필드 승산부(110)의 구성은 상기 서술된 것같다.
데이터 컨터버(604)가 데이터 컨버터(1(2))와 유사한 구성을 갖고, 유한 필드 다항식 승산부(100) 대신에 유한 필드 다항식 승산부(605)를 사용하고, 제1 컨버터(14) 대신에 제1 컨버터(606)를 사용하고, 제2 컨버터(15) 대신에 제2 컨버터(607)를 사용한다. 유한 필드 다항식 승산부(605)는, 부호화부(603)에 설정된 유한 필드 다항식 승산부(110)를 사용하여 유한 필드 GF (2n)에서 승산을 행하는 것이 유한 필드 다항식 승산부(110)와 다르다. 유한 필드 다항식 승산부(605)의 다른 구성들은 유한 필드 다항식 승산부(110)의 것과 동일하다. 제1 컨버터(606)는, 부호화부(603)에 설정된 유한 필드 다항식 승산부(110)를 사용하여 유한 필드 GF (2n)에서 승산을 행하는 것이 제1 컨버터(14)와 다르다. 제1 컨버터(606)의 다른 구성들은 제1 컨버터(14)의 것과 동일하다. 제2 컨버터(607)는, 부호화부(603)에 세트된 유한 필드 승산부(110)를 사용하여 유한 필드 GF (2n)에서 승산을 행하는 것이 제2 컨 버터(15)와 다르다. 제2 컨버터(607)의 다른 구성들은 제2 컨버터(15)의 것과 동일하다.
따라서, 리드 솔로몬 에러 정정 부호화부(601) 및 데이터 컨버터(604)는 유한필드 승산부(110)를 공유할 수 있다. 그러므로, LSI의 회로 규모는 감소될 수 있다.
여기서, 에러 정정/데이터 컨버터(600)는 LSI에 의해 실현된다. 그러나, 집적도의 차이에 따라서 IC, 시스템 LSI, 슈퍼 LSI 및 울트라 LSI로 불릴수 있다.
또한, 집적회로를 구성하는 방법은 LSI에 한정되지 않는다. 이것은 전용 회로 및 일반적인 프로세서에 의해 실현될 수 있다. 프로그램 가능한 FPGA(Field Programmable Gate Arrary) 및 LSI의 제조후 LSI 내의 회로 셀의 연결 및 설정을 재구성할 수 있는 재구성가능한 프로세서가 사용될 수 있다.
또한, 반도체 기술의 발전 및 출현 기술에 따라서 LSI를 대신할 수 있는 집적회로를 구성하는 기술이 도입되면, 기능블록은 새롭게 도입된 기술을 이용하여 당연히 집적될 수 있다. 다른 기술로서, 생명공학 등도 사용될 수 있다.
본 발명의 일례적인 실시예만이 상기 상세하게 기술되어 있지만, 본 기술에서 숙련된 자는, 본 발명의 신규성과 장점을 실질적으로 벗어나지 않으면 여러 가지 변경들이 실시예에서 가능한 것을 알 수 있다. 따라서, 모든 이러한 변경들은 본 발명의 범위내에 포함되는 것으로 의도되어야 한다.
본 발명에 따르는 데이터 컨버터는, 에러정정부호(ECC)화 회로와 데이터변환 을 공유하여, 데이터 컨버터를 포함하는 전체의 회로규모를 삭감할 수 있다. 그러므로, 예를 들면 통신로를 통해 통신 상대를 인증하는 기능을 갖는 기기에 유용하다. 또한, 이 예에 한정되지 않고, 어떠한 종류의 데이터 변환회로를 설치할 필요가 없으면, 본 발명은 어떠한 기기에도 적용이 가능하다.

Claims (16)

  1. 복수의 데이터 블록을 취득하는 취득부;
    상기 복수의 데이터 블록의 각각에 대하여, 계수로서 유한필드 GF (2n)(n은 자연수)에서의 값을 갖는 다항식 잉여 클래스 링에서의 누승 연산에 기초하는 변환을 실행하고, 상기 누승 연산은 지수로서 소정값을 사용하는 변환실행부;및
    상기 변환실행부에 의해 변환된 복수의 데이터 블록에 기초하여 출력 데이터를 생성하는 출력 데이터 생성부를 포함하고,
    상기 소정 값은 3이상이고, 2m(m은 1이상의 정수) 이외의 값인, 데이터 컨버터.
  2. 제1항에 있어서,
    유한필드 GF (2n)에서 승산을 행하는 유한필드 승산부를 더 포함하고,
    상기 변환실행부는 상기 유한필드 승산부를 이용하여 누승 연산을 행하는, 데이터 컨버터.
  3. 제1항에 있어서,
    상기 변환실행부는,
    상기 다항식 잉여 클래스 링에서, 동일하거나 상기 각각의 데이터 블록에 따라 가변인 소정의 상수와 상기 취득부에 의해 취득된 복수의 데이터 블록의 각각을 가산하는 가산 서브부; 및
    상기 가산 서브부에 의해 상수가 가산되는 상기 복수의 데이터 블록 각각에, 상기 다항식 잉여 클래스 링에서의 누승 연산에 기초하는 변환을 실행하는 변환실행 서브부를 포함하는, 데이터 컨버터.
  4. 제1항에 있어서,
    상기 출력 데이터 생성부는,
    상기 변환실행부에 의해 변환된 상기 복수의 데이터 블록중에서 상기 다항식 잉여 클래스 링에서 가산을 행하는 가산 서브부;및
    유한필드 GF (2n)에서, 상기 가산 서브부에 의한 가산의 결과와 소정의 상수를 승산하는 승산 서브부를 포함하는, 데이터 컨버터.
  5. 제4항에 있어서,
    유한필드 GF (2n)에서 승산을 행하는 유한필드 승산부를 더 포함하고,
    상기 변환실행부는 상기 유한필드 승산부를 이용하여 누승 연산을 행하고,
    상기 승산 서브부는 상기 유한필드 승산부를 이용하여 승산을 행하는, 데이터 컨버터.
  6. 복수의 데이터 블록을 취득하는 단계;
    상기 복수의 데이터 블록의 각각에 대하여, 계수로서 유한필드 GF (2n)(n은 자연수)에서의 값을 갖는 다항식 잉여 클래스 링에서의 누승 연산에 기초하는 변환을 실행하고, 상기 누승 연산은 지수로서 소정값을 사용하는, 단계;및
    상기 변환 실행단계에 의해 변환된 복수의 데이터 블록에 기초하여 출력 데이터를 생성하는 단계를 포함하고,
    상기 소정 값은 3이상이고, 2m(m은 1이상의 정수) 이외의 값인, 데이터 변환방법.
  7. 제6항에 있어서,
    상기 변환실행단계에서, 유한필드 GF (2n)에서 승산을 행하는 유한필드 승산부를 이용하여 누승 연산이 행해지는, 데이터 변환방법.
  8. 제6항에 있어서,
    상기 변환실행단계는,
    상기 다항식 잉여 클래스 링에서, 동일하거나 상기 각각의 데이터 블록에 따라 가변인 소정의 상수와, 상기 복수의 데이터 블록의 각각을 가산하는 단계; 및
    상기 가산단계에 의해 상기 상수가 가산되는 상기 복수의 데이터 블록 각각에, 상기 다항식 잉여 클래스 링에서, 누승 연산에 기초하는 변환을 실행하는 단계를 포함하는, 데이터 변환방법.
  9. 제6항에 있어서,
    상기 출력 데이터 생성단계는,
    상기 변환실행단계에 의해 변환된 상기 복수의 데이터 블록중에서, 상기 다항식 잉여 클래스 링에서 가산을 행하는 단계;및
    유한필드 GF (2n)에서, 상기 가산의 결과와 소정의 상수를 승산하는 단계를 포함하는, 데이터 변환방법.
  10. 제9항에 있어서,
    상기 변환실행단계에서, 유한필드 GF (2n)에서 승산을 행하는 유한필드 승산부를 사용하여 누승 연산이 행해지고,
    상기 승산단계에서, 유한필드 GF (2n)에서 승산을 행하는 유한필드 승산부를 사용하여 승산이 행해지는, 데이터 변환방법.
  11. 유한필드 GF (2n)(n은 자연수)에서 승산을 행하는 유한필드 승산부;
    상기 유한필드 승산부를 이용하여 유한필드 GF (2n)에서 승산을 행함으로써 입력 데이터에 에러 정정 부호화를 행하는 에러 정정 부호화부;
    입력 데이터를 복수의 데이터 블록으로 분할하는 분할부;
    상기 복수의 데이터 블록의 각각에 대하여, 계수로서 유한필드 GF (2n)에서의 값을 갖는 다항식 잉여 클래스 링에서의 누승 연산에 기초하는 변환을 실행하고, 상기 누승 연산은 지수로서 소정값을 사용하는 변환실행부;및
    상기 변환실행부에 의해 변환된 복수의 데이터 블록에 기초하여 출력 데이터를 생성하는 출력 데이터 생성부를 포함하고,
    상기 소정 값은 3이상이고, 2m(m은 1이상의 정수) 이외의 값인, 집적회로.
  12. 제11항에 있어서,
    상기 변환실행부는,
    상기 다항식 잉여 클래스 링에서, 동일하거나 상기 각각의 데이터 블록에 따라 가변인 소정의 상수와 상기 분할부에 의해 분할된 복수의 데이터 블록의 각각을 가산하는 가산 서브부; 및
    상기 가산 서브부에 의해 상수가 가산되는 상기 복수의 데이터 블록 각각에, 상기 다항식 잉여 클래스 링에서, 누승 연산에 기초하는 변환을 상기 유한 필드 승산부를 이용하여 실행하는 변환실행 서브부를 포함하는, 집적회로.
  13. 제11항에 있어서,
    상기 출력 데이터 생성부는,
    상기 변환실행부에 의해 변환된 상기 복수의 데이터 블록중에서 상기 다항식 잉여 클래스 링에서 가산을 행하는 가산 서브부;및
    유한필드 GF (2n)에서, 상기 유한필드 승산부를 이용하여 상기 가산 서브부에 의한 가산의 결과와 소정의 상수를 승산하는 승산 서브부를 포함하는, 집적회로.
  14. 복수의 데이터 블록을 취득하는 단계;
    상기 복수의 데이터 블록의 각각에 대하여, 유한필드 GF (2n)(n은 자연수)에서 승산을 행하는 유한필드 승산부를 이용하여, 계수로서 유한필드 GF (2n)에서의 값을 갖는 다항식 잉여 클래스 링에서의 누승 연산에 기초하는 변환을 실행하고, 상기 누승 연산은 지수로서 소정값을 사용하는, 단계; 및
    상기 변환 실행에 의해 변환된 복수의 데이터 블록에 기초하여 출력 데이터를 생성하는 단계를 포함하고,
    상기 소정 값은 3이상이고, 2m(m은 1이상의 정수) 이외의 값인, 방법을 컴퓨터에서 실행시키는 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
  15. 제14항에 있어서,
    상기 변환실행단계는,
    상기 다항식 잉여 클래스 링에서, 동일하거나 상기 각각의 데이터 블록에 따라 가변인 소정의 상수와, 상기 복수의 데이터 블록의 각각을 가산하는 단계; 및
    상기 유한필드 승산부를 이용하여, 상기 가산에 의해 가산되는 상기 복수의 데이터 블록 각각에, 상기 다항식 잉여 클래스 링에서의 누승 연산에 기초하는 변환을 실행하는 단계를 포함하는, 방법을 컴퓨터에서 실행시키는 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
  16. 제14항에 있어서,
    상기 출력 데이터 생성단계는,
    상기 변환실행단계에 의해 변환된 상기 복수의 데이터 블록중에서 상기 다항식 잉여 클래스 링에서 가산을 행하는 단계;및
    유한필드 GF (2n)에서, 상기 유한필드 승산부를 이용하여 상기 가산의 결과와 소정의 상수를 승산하는 단계를 포함하는, 방법을 컴퓨터에서 실행시키는 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020067005429A 2003-10-14 2004-09-28 데이터 컨버터 KR101103443B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2003-00353439 2003-10-14
JP2003353439 2003-10-14
PCT/JP2004/014570 WO2005036811A2 (en) 2003-10-14 2004-09-28 Data converter

Publications (2)

Publication Number Publication Date
KR20070018778A KR20070018778A (ko) 2007-02-14
KR101103443B1 true KR101103443B1 (ko) 2012-01-09

Family

ID=34431158

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067005429A KR101103443B1 (ko) 2003-10-14 2004-09-28 데이터 컨버터

Country Status (11)

Country Link
US (2) US6995692B2 (ko)
EP (1) EP1673690B1 (ko)
KR (1) KR101103443B1 (ko)
CN (1) CN100555213C (ko)
AT (1) ATE479142T1 (ko)
AU (1) AU2004306594B2 (ko)
CA (1) CA2535741C (ko)
DE (1) DE602004028849D1 (ko)
MY (1) MY142578A (ko)
TW (1) TWI353764B (ko)
WO (1) WO2005036811A2 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7068729B2 (en) * 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
CN100479333C (zh) * 2002-06-11 2009-04-15 数字方敦股份有限公司 通过被恢复符号的钝化作用对链式反应代码解码的装置和方法
US9240810B2 (en) * 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
EP1552617A2 (en) 2002-10-05 2005-07-13 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
CN1954501B (zh) 2003-10-06 2010-06-16 数字方敦股份有限公司 通过通信信道接收从源发射的数据的方法
JP4971144B2 (ja) * 2004-05-07 2012-07-11 デジタル ファウンテン, インコーポレイテッド ファイルダウンロードおよびストリーミングのシステム
US7870399B2 (en) * 2006-02-10 2011-01-11 Arxan Defense Systems Software trusted platform module and application security wrapper
KR101292851B1 (ko) 2006-02-13 2013-08-02 디지털 파운튼, 인크. 가변적 fec 오버헤드 및 보호 구간을 이용하는 스트리밍및 버퍼링
US9270414B2 (en) * 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US7971129B2 (en) 2006-05-10 2011-06-28 Digital Fountain, Inc. Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems
US9178535B2 (en) * 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9209934B2 (en) * 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US20100211690A1 (en) * 2009-02-13 2010-08-19 Digital Fountain, Inc. Block partitioning for a data stream
US9386064B2 (en) * 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
JP5027305B2 (ja) * 2007-09-12 2012-09-19 デジタル ファウンテン, インコーポレイテッド 信頼できる通信を可能にするためのソース識別情報の生成および伝達
JP4649456B2 (ja) * 2007-09-26 2011-03-09 株式会社東芝 べき乗計算装置、べき乗計算方法及びプログラム
US9281847B2 (en) * 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US20110096828A1 (en) * 2009-09-22 2011-04-28 Qualcomm Incorporated Enhanced block-request streaming using scalable encoding
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US20110280311A1 (en) 2010-05-13 2011-11-17 Qualcomm Incorporated One-stream coding for asymmetric stereo video
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9319448B2 (en) 2010-08-10 2016-04-19 Qualcomm Incorporated Trick modes for network streaming of coded multimedia data
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
CN102314330B (zh) * 2011-09-09 2013-12-25 华南理工大学 一种复合有限域乘法器
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
CN106716345A (zh) * 2014-09-30 2017-05-24 皇家飞利浦有限公司 用于执行混淆算术的电子计算设备
KR102359265B1 (ko) * 2015-09-18 2022-02-07 삼성전자주식회사 프로세싱 장치 및 프로세싱 장치에서 연산을 수행하는 방법
CN106445464B (zh) * 2016-10-13 2019-04-02 深圳职业技术学院 一种基于心动模型的复合有限域乘法器
US11210678B2 (en) * 2016-11-18 2021-12-28 Samsung Electronics Co., Ltd. Component for provisioning security data and product including the same
KR102296742B1 (ko) * 2016-11-18 2021-09-03 삼성전자 주식회사 보안 정보의 주입을 위한 부품 및 이를 포함하는 제품
CN106951210B (zh) * 2017-03-21 2020-09-29 深圳职业技术学院 一种基于心动阵列的有限域乘法装置
CN108733347B (zh) * 2017-04-20 2021-01-29 杭州海康威视数字技术股份有限公司 一种数据处理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09185518A (ja) * 1995-12-28 1997-07-15 Toshiba Corp 原始元αのべき乗生成方式及びその装置
JP2000321979A (ja) 1999-05-14 2000-11-24 Matsushita Electric Ind Co Ltd 多項式演算装置、楕円曲線位数計算装置、楕円曲線生成装置及び楕円曲線暗号システム
EP1217750A2 (en) * 2000-12-15 2002-06-26 Alcatel USA Sourcing, L.P. Optimized parallel in parallel out GF(2M) squarer for FEC decoder

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220568A (en) * 1988-05-31 1993-06-15 Eastman Kodak Company Shift correcting code for channel encoded data
US5532694A (en) * 1989-01-13 1996-07-02 Stac Electronics, Inc. Data compression apparatus and method using matching string searching and Huffman encoding
JP3525209B2 (ja) * 1996-04-05 2004-05-10 株式会社 沖マイクロデザイン べき乗剰余演算回路及びべき乗剰余演算システム及びべき乗剰余演算のための演算方法
US6038581A (en) * 1997-01-29 2000-03-14 Nippon Telegraph And Telephone Corporation Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
US6320520B1 (en) * 1998-09-23 2001-11-20 Digital Fountain Information additive group code generator and decoder for communications systems
US6343305B1 (en) * 1999-09-14 2002-01-29 The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University Methods and apparatus for multiplication in a galois field GF (2m), encoders and decoders using same
DE10024325B4 (de) * 2000-05-17 2005-12-15 Giesecke & Devrient Gmbh Kryptographisches Verfahren und kryptographische Vorrichtung
US6411223B1 (en) * 2000-10-18 2002-06-25 Digital Fountain, Inc. Generating high weight encoding symbols using a basis
US6831574B1 (en) * 2003-10-03 2004-12-14 Bae Systems Information And Electronic Systems Integration Inc Multi-turbo multi-user detector
US7243289B1 (en) * 2003-01-25 2007-07-10 Novell, Inc. Method and system for efficiently computing cyclic redundancy checks
US6771197B1 (en) * 2003-09-26 2004-08-03 Mitsubishi Electric Research Laboratories, Inc. Quantizing signals using sparse generator factor graph codes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09185518A (ja) * 1995-12-28 1997-07-15 Toshiba Corp 原始元αのべき乗生成方式及びその装置
JP2000321979A (ja) 1999-05-14 2000-11-24 Matsushita Electric Ind Co Ltd 多項式演算装置、楕円曲線位数計算装置、楕円曲線生成装置及び楕円曲線暗号システム
EP1217750A2 (en) * 2000-12-15 2002-06-26 Alcatel USA Sourcing, L.P. Optimized parallel in parallel out GF(2M) squarer for FEC decoder

Also Published As

Publication number Publication date
CA2535741A1 (en) 2005-04-21
CN1867889A (zh) 2006-11-22
US6995692B2 (en) 2006-02-07
AU2004306594B2 (en) 2010-05-20
EP1673690A2 (en) 2006-06-28
CN100555213C (zh) 2009-10-28
TW200518546A (en) 2005-06-01
DE602004028849D1 (de) 2010-10-07
EP1673690B1 (en) 2010-08-25
AU2004306594A1 (en) 2005-04-21
US20050089161A1 (en) 2005-04-28
TWI353764B (en) 2011-12-01
KR20070018778A (ko) 2007-02-14
USRE40710E1 (en) 2009-05-12
MY142578A (en) 2010-12-15
WO2005036811A3 (en) 2005-06-02
WO2005036811A2 (en) 2005-04-21
ATE479142T1 (de) 2010-09-15
CA2535741C (en) 2015-11-10

Similar Documents

Publication Publication Date Title
KR101103443B1 (ko) 데이터 컨버터
JP3225440B2 (ja) デジタル信号ブロックの変換装置およびその使用方法
US6891950B1 (en) Extended key generator, encryption/decryption unit, extended key generation method, and storage medium
EP1552382B1 (en) Efficient arithmetic in finite fields of odd characteristic on binary hardware
US7451310B2 (en) Parallelizable authentication tree for random access storage
US6038581A (en) Scheme for arithmetic operations in finite field and group operations over elliptic curves realizing improved computational speed
GB2538022A (en) Multiple secrets in quorum based data processing
EP1552642A1 (en) Cryptography using finite fields of odd characteristic on binary hardware
US20010014154A1 (en) Data encrypting/decrypting conversion methods and apparatuses and data communication system adopting the same
JP2003152706A (ja) 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム、認証システム、電子装置
US7512794B2 (en) System and method for authentication
JPH11109859A (ja) 擬似乱数発生方法および装置
JP2015191107A (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
JP2002217898A (ja) 擬似乱数生成システム
JP4851077B2 (ja) データ変換装置およびその方法
JPH09160492A (ja) 署名方式
JP4150612B2 (ja) 暗号生成装置、暗号復号装置、暗号生成プログラム、暗号復号プログラム
JP3024549B2 (ja) 循環演算にもとづく暗号文の復号化方法および装置
CN116366251A (zh) 基于向量解码的格公钥数据加解密方法和密钥封装方法
JPH11161164A (ja) 公開鍵暗号方式と暗号化装置および復号装置
JP2003195755A (ja) 配列出力装置、配列出力方法、暗号化装置、および復号化装置
JPH0573299B2 (ko)
JP2007212768A (ja) 楕円曲線暗号における事前計算テーブル作成装置
JP2002351313A (ja) 超楕円曲線演算方法及び装置
JPH09244530A (ja) 循環演算にもとづく暗号化方法および装置

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20141203

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171114

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181121

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191119

Year of fee payment: 9