KR20170137872A - 암호화 체크섬 생성 - Google Patents

암호화 체크섬 생성 Download PDF

Info

Publication number
KR20170137872A
KR20170137872A KR1020177032971A KR20177032971A KR20170137872A KR 20170137872 A KR20170137872 A KR 20170137872A KR 1020177032971 A KR1020177032971 A KR 1020177032971A KR 20177032971 A KR20177032971 A KR 20177032971A KR 20170137872 A KR20170137872 A KR 20170137872A
Authority
KR
South Korea
Prior art keywords
message
checksum
polynomial
encryption
attached
Prior art date
Application number
KR1020177032971A
Other languages
English (en)
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 KR20170137872A publication Critical patent/KR20170137872A/ko

Links

Images

Classifications

    • 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/3236Cryptographic 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 cryptographic hash functions
    • H04L9/3242Cryptographic 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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/158Finite field arithmetic processing
    • 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/3236Cryptographic 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 cryptographic hash functions
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Pure & Applied Mathematics (AREA)
  • Power Engineering (AREA)
  • Algebra (AREA)
  • Quality & Reliability (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

메시지 M(x)에 대한 암호화 체크섬을 생성하는 방법(400)이 제공된다. 방법은 송신기 및 수신기와 같은 통신 디바이스에 의해 수행되고,
Figure pct00064
의 제 2 함수 모듈로 차수 n,
Figure pct00065
의 생성 다항식 p(x)의 나눗셈의 제 1 함수 g로서 암호화 체크섬을 계산하는 단계를 포함한다. 생성 다항식은
Figure pct00066
로서 계산되며, p1(x)는 차수 n-1의 원시 다항식이다. 원시 다항식은 제 1 암호화 키에 기초하여 Galois Field에 대한 차수 n-1의 원시 다항식의 세트로부터 선택된다(402). 표준 체크섬을 암호화 체크섬으로 대체함으로써, 효율적인 메시지 인증이 제공된다. 제안된 암호화 체크섬은 메시지에 대한 무결성 보증을 제공하기 위해, 즉 알려진 보안 레벨로 랜덤 및 의도적인 메시지 변경을 탐지하기 위해 사용될 수 있다. 제안된 체크섬은 Turbo 코드 디코더에 의해 발생될 수 있는 더블 비트 에러를 탐지할 수 있다.

Description

암호화 체크섬 생성
본 발명은 암호화 체크섬(cryptographic checksum)을 생성하기 위한 통신 디바이스의 방법, 대응하는 컴퓨터 프로그램, 대응하는 컴퓨터 프로그램 제품, 및 암호화 체크섬을 생성하기 위한 체크섬 생성기에 관한 것이다.
현재의 3세대(3G) 및 4세대(4G) 3GPP(3rd Generation Partnership Project) 모바일 네트워크는 통상적으로 제어 평면에서의 인증뿐만 아니라 암호화를 사용하는 반면에, 사용자 평면은 암호화에 의해서만 보호된다. 반면에, WiMAX 및 WLAN(Wireless Local Area Networks)/WiFi 네트워크는 사용자 평면에 대해서도 인증을 사용한다.
사용자 평면 메시징을 보호하는 알려진 방법은 HMAC(Keyed-Hash Message Authentication Codes) 또는 CBC-MAC(Cipher Block Chaining Message Authentication Codes)과 같은 키잉된 암호화 해시 함수(keyed cryptographic hash function)를 메시지에 적용하여 생성되는 인증 태그를 사용하는 것이다. 암호화 해시 함수는 메시지와 같은 임의의 데이터 블록에 대한 메시지 다이제스트(message digest)로서도 알려진 암호화 해시 값을 생성하는 해시 함수임으로써, 메시지에 대한 어떤 우발적 또는 의도적 변경, 즉 에러 또는 수정이 적어도 어떤 높은 확률로 해시 값을 변경할 것이다. 따라서, 메시지 다이제스트는 메시지에 대한 무결성 보증을 제공하기 위해 사용될 수 있다.
키잉된 암호화 해시 함수에 따른 첫 번째 문제는 비교적 자원를 소비하여 제한된 디바이스, 즉, M2M(Machine-to-Machine) 및 loT(Internet-of-Things) 타입의 디바이스와 같은 제한된 컴퓨팅 및 배터리 자원을 가진 디바이스에서의 사용을 방해한다는 것이다. 게다가, 메시지 다이제스트로 인한 메시지 길이의 증가는 송신된 데이터의 페이로드 부분을 감소시키고, 전력 소비를 증가시킨다. 두 번째 문제는 현재의 기술 수준에서 보안이 다른 암호화 추정이 없는 증명을 적어도 갖지 않고, 예를 들어, AES(Advanced Encryption Standard) 또는 일부 다른 기능이 안전하다는 것을 추정하는 공식적/수학적 증명에 의해 보장될 수 없다는 것이다.
랜덤 에러에 대한 일부 보호 레벨은 CRC(Cyclic Redundancy Check) 코드를 사용하여 달성될 수 있다. CRC 코드는 자원 효율이 매우 높고, 버스트 에러를 탐지하기 위해 데이터 통신 및 데이터 저장에 널리 사용되는 분리 가능한 순환 코드의 타입이다. CRC 처리는 LFSR(Linear-Feedback Shift Register)로 효율적으로 구현될 수 있다. 공통 CRC는 다음과 같다(CRC-n은 차수(degree) n의 생성 다항식이 CRC를 인코딩하고 디코딩하기 위해 사용된다는 것을 의미하며, 여기서 차수는 CRC의 생성 다항식의 가장 큰 계수임):
- CRC-16-CDMA2000: 3G 모바일 네트워크에 사용됨
- CRC-CCITT: 블루투스에 사용됨
- CRC-24: LTE에 사용됨
- CRC-32: 이더넷 및 HDLC(High-Level Data Link Control) 프로토콜에 사용됨
- CRC-40-GSM: GSM 제어 채널에 사용됨.
차수 n의 생성 다항식을 갖는 CRC는 n보다 작거나 같은 길이의 모든 버스트 에러 및 생성 다항식의 배수가 아닌 임의의 에러를 탐지할 수 있다.
잡음이 존재하는 대역폭 및/또는 대기 시간이 제한된 통신 링크를 통해 신뢰성 있고 상당히 효율적인 정보 전송을 필요로 하는 애플리케이션에서, FEC(Forward Error Correction) 코드가 통상적으로 사용된다. CRC와 같이 체크섬을 부착한 메시지는 먼저 변조되고 송신되기 전에 FEC 코드의 코드워드로 인코딩된다.
LTE(Long Term Evolution) 네트워크에서, Turbo 코드는 FEC 코드로서 자주 사용된다. Turbo 코드 디코딩은 확률적 판정에 기초하므로, 디코딩 프로세스 중에 메시지에 에러가 발생될 수 있다. Turbo 코드 디코더에 의해 발생되는 일반적인 타입의 에러는 2개의 플립형 비트(flipped bit)가 반드시 연속적이지는 않은 더블 비트(double-bit) 에러이다. 따라서, 예를 들어 LTE 네트워크에서와 같이 Turbo 코드에 의존하는 통신의 경우, Turbo 코드 디코딩 스테이지에 의해 발생된 더블 비트 에러를 탐지하고, 바람직하게는 정정하는 것이 중요하다. 이러한 이유로, LTE는 CRC-24와 같이 2비트 에러로서도 알려진 더블 비트 에러를 탐지할 수 있는 CRC의 타입을 사용한다.
기존의 CRC 기술은 랜덤 에러를 탐지하기 위해 적합하지만, 악의적인 상대(malicious adversary)에 의해 쉽게 패배될 수 있다. 이것이 생성 다항식이 특정 CRC에 의해 사용되는 상대에게 알려지므로, 상대는 수신기에서 CRC 체크를 통과시키는 수정된 메시지를 쉽게 만들 수 있다. 이것은, 예를 들어, 생성 다항식의 배수에 대응하는 에러를 원래의 메시지에 부가함으로써 달성될 수 있다.
사용자 평면에서 데이터 무결성을 제공하기 위한 더욱 자원 효율적인 솔루션은 종래의 CRC를 다음에는 암호화 CRC 또는 암호화 체크섬으로서도 지칭되는 암호화로 안전한 CRC로 대체하는 것이다. 암호화 CRC는 기존의 CRC와 동일한 랜덤 에러 탐지 능력을 갖지만, 상대에 의해 주입된 임의의 악의적인 에러를 높은 확률로 탐지할 수도 있다.
암호로 안전한 CRC의 타입은 Krawczyk[H. Krawczyk, "LFSR-based Hashing and Authentication", in "Advances in Cryptology - CRYPTO 4", Lecture Notes in Computer Science, Volume 839, Springer, 1994, pp. 129-139]에 의해 제안되었다. 제안된 CRC는 인증 태그, 즉, CRC 체크 비트를 생성하기 위한 차수 n의 기약 다항식(irreducible polynomial)을 필요로 한다. 기본적인 아이디어는 CRC 다항식을 송신기 및 수신기에게만 알려지는 공유 비밀로 만드는 것이다.
본 발명의 목적은 상술한 기술 및 종래 기술에 대한 개선된 대안을 제공하는 것이다.
보다 구체적으로, 본 발명의 목적은 개선된 메시지 인증을 제공하는 것이다. 특히, 본 발명의 목적은 공지된 보안 레벨을 갖는 개선된 암호화 체크섬을 제공하는 것이다.
본 발명의 이들 및 다른 목적은 독립항에 의해 정의된 바와 같은 본 발명의 상이한 양태에 의해 달성된다. 본 발명의 실시예는 종속항을 특징으로 한다.
본 발명의 제 1 양태에 따르면, 메시지 M(x)에 대한 암호화 체크섬을 생성하는 방법이 제공된다. 이러한 방법은 통신 디바이스에 의해 수행된다. 방법은
Figure pct00001
의 제 2 함수 모듈로 차수 n,
Figure pct00002
의 생성 다항식 p(x)의 나눗셈의 제 1 함수 g로서 암호화 체크섬을 계산하는 단계를 포함한다. 생성 다항식은
Figure pct00003
로서 계산되며, 여기서 p1(x)는 차수 n-1의 원시 다항식(primitive polynomial)이다. 원시 다항식은 제 1 암호화 키에 기초하여 Galois Field, 특히 GF(2)에 대한 차수 n-1의 원시 다항식의 세트로부터 선택된다.
본 발명의 제 2 양태에 따르면, 컴퓨터 프로그램이 제공된다. 컴퓨터 프로그램은 컴퓨터 실행 가능한 명령어가 디바이스에 포함된 처리 유닛 상에서 실행될 때 디바이스가 본 발명의 제 1 양태의 실시예에 따른 방법을 수행하도록 하기 위한 컴퓨터 실행 가능한 명령어를 포함한다.
본 발명의 제 3 양태에 따르면, 컴퓨터 프로그램 제품이 제공된다. 컴퓨터 프로그램 제품은 본 발명의 제 2 양태에 따른 컴퓨터 프로그램을 갖는 컴퓨터 판독 가능한 저장 매체를 포함한다.
본 발명의 제 4 양태에 따르면, 메시지 M(x)에 대한 암호화 체크섬을 생성하기 위한 체크섬 생성기가 제공된다. 체크섬 생성기는
Figure pct00004
의 제 2 함수 모듈로 차수 n,
Figure pct00005
의 생성 다항식 p(x)의 나눗셈의 제 1 함수 g로서 암호화 체크섬을 계산하기 위해 구성되는 수단을 포함한다. 생성 다항식은
Figure pct00006
로서 계산되며, 여기서 p1(x)는 차수 n-1의 원시 다항식이다. 원시 다항식은 제 1 암호화 키에 기초하여 Galois Field, 특히 GF(2)에 대한 차수 n-1의 원시 다항식의 세트로부터 선택된다. 체크섬 생성기는 예를 들어 통신 디바이스에 포함될 수 있다.
본 개시 내용의 전반에 걸쳐, 통신 디바이스는, 예를 들어, 송신 디바이스, 수신 디바이스, 이동 단말기, 사용자 장비(User Equipment; UE), 모바일 폰, 스마트 폰, 태블릿, 컴퓨터, 무선 액세스 네트워크(Radio Access Network; RAN) 등일 수 있다.
본 발명은 CRC와 같은 표준 체크섬을 원시 다항식과 고정된 다항식(1-x)의 곱인 생성 다항식에 기초하는 암호화 체크섬으로 대체함으로써 메시지의 효율적인 인증이 제공될 수 있다는 이해를 이용한다. 본 기술 분야에 알려져 있는 바와 같이, 원시 다항식은 약분 가능(reducible)하고, 0이 아닌 상수 항을 갖는다. 제안된 암호화 체크섬은 아래에 추가로 도출되는 알려진 보안 레벨로 메시지에 대한 무결성 보증을 제공하기 위해, 즉 랜덤하고 의도적인 메시지 변경을 탐지하기 위해 사용될 수 있다. 유리하게도, 제안된 체크섬은 2n-1 - 1 비트의 메시지 길이까지 Turbo 코드 디코더에 의해 발생될 수 있는 더블 비트 에러를 탐지하도록 보장된다[예를 들어, W. H. Press, S. A. Teukolsky, W. T. Vetterling, and B. P. Flannery, "Section 22.4 Cyclic Redundancy and Other Checksums" in "Numerical Recipes: The Art of Scientific Computing (3rd ed.)", New York: Cambridge University Press 참조]. LTE의 데이터에 대한 최대 허용된 전송 블록 크기가 6114 비트이므로, CRC-24와 같은 순서 24의 체크섬은 메시지의 모든 더블 비트 에러를 탐지할 수 있다. 제안된 체크섬은 또한 임의의 단일 비트 에러 및 임의의 홀수 비트의 에러를 탐지할 수 있다.
본 문맥에서, 메시지는 특정 포맷으로 자주 캐스트(cast)되는 이진 코딩된 정보이다. 포맷은 메시지가 관련되는 프로토콜에 의해 지시를 받을 수 있다. 통상적으로, 메시지는 헤더 및 페이로드를 포함하고, 바람직하게는 전체 메시지, 즉 헤더 및 페이로드에 대한 암호화 체크섬이 생성된다.
본 발명의 실시예는 기존의 CRC를, 메시지에 대한 무결성 보증을 부가적으로 제공하면서 종래의 CRC와 동일한 랜덤 에러 탐지 능력을 갖는 암호화 체크섬으로 대체함으로써 메시지 포맷이 변경되지 않는다는 점에서 종래 기술보다 유리하다. 특히, 부가적인 MAC를 메시지에 부가하는 것을 기반으로 하는 알려진 솔루션과는 대조적으로 메시지의 길이는 증가되지 않는다. 제안된 생성 다항식을 생성하는 것은 순서 n3 비트 연산의 계산 복잡도를 갖는 원시(primitivity)에 대한 테스트를 필요로 하고[예를 들어, M. Zivkovic, "Generation of primitive binary polynomials", International Conference on Algebra, Logic and Discrete Mathematics, April 14-16, 1995, Nis 참조], 이는 기약성(irreducibility)에 대한 테스트의 계산 복잡성과 비교 가능하다[예를 들어, S. Gao and D. Panario, "Tests and Constructions of Irreducible Polynomials over Finite Fields" in Foundations of Computational Mathematics, F. Cucker and M. Shub (Eds.), Springer, 1997, pp. 346-361 참조].
본 문맥에서, 원시 다항식을 선택하는 것은 원시 다항식에 대한 확률 분포에 의해 제어될 수 있다는 것을 주목한다. 이러한 확률 분포는 유효 다항식의 세트를 효과적으로 제한할 수 있다. 실제로, Galois Fields를 통해 차수 n-1의 모든 원시 다항식의 서브세트만의 데이터베이스를 유지하는 것은 데이터베이스에 포함되지 않는 다항식에 대한 확률이 0인 확률 분포를 시행한다.
본 발명의 실시예에 따르면, 방법은 원시 다항식을 선택하고, 통신 디바이스에 의해 생성 다항식을 계산하는 단계를 더 포함한다. 다시 말하면, 송신기 및 수신기와 같은 통신 세션에 참여하고 있는 2개의 통신 디바이스의 시나리오에서, 원시 다항식은 공유된 비밀을 포함하는 결정론적 방식에 기초하여 각각의 통신 디바이스에 의해 선택될 수 있다. 생성 다항식은 선택한 원시 다항식에 기초하여 각각의 통신 디바이스에 의해 계산된다.
대안으로, 원시 다항식, 또는 원시 다항식을 생성하는 방법을 나타내는 정보는 통신 디바이스에 의해 수신될 수 있고, 생성 다항식은 수신된 원시 다항식 또는 원시 다항식을 생성하는 방법을 나타내는 수신된 정보에 기초하여 계산된다. 예를 들어, 통신 디바이스 중 하나, 예를 들어, 송신기는 원시 다항식을 선택하여, 원시 다항식, 또는 원시 다항식을 생성하는 방법을 나타내는 정보를 수신기에 송신할 수 있다. 그런 다음, 생성 다항식은 송신기에 의해 선택된 원시 다항식에 기초하여 각각의 통신 디바이스에 의해 계산된다. 원시 다항식은 또한 제 3 자, 즉, 2개의 통신 디바이스 사이의 통신 세션에 관련되지 않는 네트워크 노드에 의해 선택될 수 있고, 원시 다항식 또는 원시 다항식을 생성하는 방법을 나타내는 정보는 2개의 통신 디바이스에 분배된다. 제 3 자는 예를 들어 통신 네트워크에서의 키 서버 또는 AAA(Authentication, Authorization, and Accounting) 서버일 수 있다.
또 다른 대안으로서, 생성 다항식 또는 생성 다항식을 나타내는 정보는 통신 디바이스에 의해 수신될 수 있다. 예를 들어, 통신 디바이스 중 하나, 예를 들어, 송신기는 그것이 선택한 원시 다항식에 기초하거나 수신된 원시 다항식에 기초하여 생성 다항식을 계산할 수 있고, 생성 다항식 또는 생성 다항식을 생성하는 방법을 나타내는 정보를 수신기에 송신할 수 있다. 생성 다항식은 또한 제 3 자, 즉, 통신 네트워크에서의 키 서버 또는 AAA 서버와 같은 두 통신 디바이스 사이의 통신 세션에 관련되지 않은 네트워크 노드에 의해 계산될 수 있고, 생성 다항식 또는 생성 다항식을 생성하는 방법을 나타내는 정보는 두 통신 디바이스에 분배된다.
본 발명의 실시예에 따르면, 원시 다항식은 의사 랜덤하게 선택된다. 본 개시 내용 전체에 걸쳐, 의사 랜덤 선택은 랜덤하게 나타나는 프로세스, 즉 통계적 랜덤성 또는 계산상의 랜덤성을 나타내는 원시 다항식의 시퀀스를 초래하지만, 실제로 결정론적 규칙에 의존하는 프로세스로 이해된다. 통계적 랜덤성은 생성된 원시 다항식의 확률 분포가 일부 메트릭에서 모든 원시 다항식의 세트에 걸친 균일한 분포에 근접하다는 것을 의미한다. 계산상의 랜덤성은 효율적인 알고리즘이 일부 메트릭에서 모든 원시 다항식의 세트에 걸친 균일한 분포와 생성된 원시 다항식의 확률 분포를 구별할 수 없다는 것을 의미한다.
본 발명의 실시예에 따르면, 방법은 길이 n의 패드 s를 의사 랜덤하게 생성하는 단계를 더 포함하며, 여기서 제 1 함수는 패드를 갖는 덧셈(addition)을 포함한다. 의사 랜덤하게 생성된 패드를 부가하는 것은 해시 함수에 의해 암호화 체크섬을 생성하는 선형 변환이 아핀(affine) 변환으로 변환된다는 점에서 유리하다. 패드가 없는 경우, 상대는 모두 0의 메시지를 성공적으로 주입할 수 있다. 선택적으로, 패드는 의사 랜덤하게 생성될 수 있다. 또한 선택적으로, 패드는 제 1 암호화 키와 동일하거나 상이할 수 있는 제 2 암호화 키에 기초하여 생성될 수 있다.
본 발명의 실시예에 따르면, 원시 다항식은 메시지에 특정한 정보에 부가적으로 기초하여 선택된다. 즉, 원시 다항식은 상대에게 랜덤하게 나타나면서 메시지의 송신기 및 수신기에게만 알려지는 방식으로 메시지 특정 정보에 기초하여 선택된다. 메시지 특정 정보는 예를 들어 메시지 시퀀스 번호, 메시지 식별자, 메시지에 포함된 타임 스탬프 등 중 어느 하나 또는 이의 조합을 포함할 수 있다. 따라서, 메시지 특정 정보는 비밀일 필요가 없으며, 원시 다항식의 선택에 영향을 주는 방식만이 비밀일 필요가 있다는 것을 주목한다.
본 발명의 실시예에 따르면, 방법은 송신 디바이스에 의해 수행된다. 이러한 방법은 메시지를 획득하는 단계, 메시지에 대한 암호화 체크섬을 생성하는 단계, 생성된 암호화 체크섬을 메시지에 첨부하는 단계, 메시지 및 첨부된 암호화 체크섬을 FEC 코드의 코드워드로 인코딩하는 단계, 및 FEC 코드워드를 송신하는 단계를 포함한다.
본 발명의 실시예에 따르면, 메시지 및 첨부된 암호화 체크섬을 FEC 코드의 코드워드로 인코딩하는 단계는 메시지 및 첨부된 암호화 체크섬에 기초하여 FEC 코드의 하나 이상의 체크 비트를 생성하는 단계, 및 생성된 FEC 체크 비트를 메시지 및 첨부된 암호화 체크섬에 첨부하는 단계를 포함한다. 이 경우, 체크 비트는 수신기에서 FEC 코드워드로부터 분리될 수 있다. 이러한 FEC 코드는 일반적으로 분리 가능한 코드로서 지칭된다.
본 발명의 다른 실시예에 따르면, 방법은 수신 디바이스에 의해 수행된다. 방법은 FEC 코드의 코드워드를 수신하는 단계, FEC 코드워드로부터 메시지 및 첨부된 제 1 암호화 체크섬을 추출하는 단계, 메시지에 대한 제 2 암호화 체크섬을 생성하는 단계, 및 제 1 암호화 체크섬 및 제 2 암호화 체크섬이 동일한지를 검증하는 단계를 포함한다. 그렇지 않은 경우, 메시지의 무결성이 형성될 수 없다. 즉, 메시지는 의도적으로 또는 실수로 수정되었다. 메시지 및 첨부된 제 1 암호화 체크섬은 FEC 코드워드를 디코딩함으로써 FEC 코드워드로부터 추출된다.
본 발명의 실시예에 따르면, FEC 코드워드는 메시지, 첨부된 제 1 암호화 체크섬, 및 FEC 코드의 하나 이상의 첨부된 체크 비트를 포함하고, FEC 코드워드로부터 메시지 및 첨부된 제 1 암호화 체크섬을 추출하는 단계는 첨부된 FEC 체크 비트에 기초하여 메시지 및 첨부된 제 1 암호화 체크섬을 정정하는 단계를 포함한다. 이것은 분리 가능한 FEC 코드에 대한 케이스이다.
어떤 경우에 본 발명의 이점이 본 발명의 제 1 양태의 실시예를 참조하여 설명되었지만, 대응하는 추론은 본 발명의 다른 양태의 실시예에 적용된다.
본 발명의 추가의 목적, 특징 및 이점은 다음의 상세한 개시 내용, 도면 및 첨부된 청구항을 연구할 때 명백해질 것이다. 당업자는 본 발명의 상이한 특징이 다음에 설명된 것과 다른 실시예를 생성하도록 조합될 수 있음을 인식한다.
본 발명의 상술한 목적 및 부가적인 목적, 특징 및 이점은 첨부된 도면을 참조하여 본 발명의 실시예에 대한 다음의 예시적이고 비제한적인 상세한 설명을 통해 더 잘 이해될 것이다.
도 1은 통신 시스템을 도시한다.
도 2는 코드워드를 도시한다.
도 3은 메시지 인증을 예시하는 블록도를 도시한다.
도 4는 본 발명의 실시예에 따른 송신기의 방법에 대한 흐름도를 도시한다.
도 5는 본 발명의 실시예에 따른 수신기의 방법에 대한 흐름도를 도시한다.
도 6은 본 발명의 실시예에 따른 송신기를 도시한다.
도 7은 본 발명의 실시예에 따른 수신기를 도시한다.
도 8은 본 발명의 다른 실시예에 따른 송신기를 도시한다.
도 9는 본 발명의 다른 실시예에 따른 수신기를 도시한다.
도 10은 본 발명의 실시예에 따른 IC를 도시한다.
도 11은 본 발명의 실시예에 따른 이동 전화를 도시한다.
모든 도면은 개략적인 것으로, 반드시 축척은 아니며, 일반적으로 본 발명을 명료하게 하기 위해 필요한 부분만을 도시하고, 다른 부분은 생략되거나 단지 제안될 수 있다.
본 발명은 이제 본 발명의 특정 실시예가 도시되는 첨부된 도면을 참조하여 본 명세서에서 더욱 충분히 설명될 것이다. 그러나, 본 발명은 많은 상이한 형태로 구체화될 수 있으며, 본 명세서에 설명된 실시예에 한정되는 것으로 해석되지 않아야 한다. 오히려, 이러한 실시예는 본 개시 내용이 철저하고 완전하며 당업자에게 본 발명의 범위를 충분히 전달할 수 있도록 예로서 제공된다.
도 1에서, 통신 네트워크(103)를 통해 전달하기 위해 구성되는 각각 송신기 및 수신기로서 지칭된 본 개시 내용 전반에 걸쳐 송신 디바이스(101) 및 수신 디바이스(102)의 두 통신 디바이스를 포함하는 통신 시스템(100)이 도시된다. 특히, 송신기(101)는 메시지(105)를 송신하기 위해 구성되고, 수신기(102)는 메시지(105)를 수신하기 위해 구성된다. 바람직하게는, 통신 디바이스(101 및 102)는 메시지를 송수신하기 위해 구성된다. 송신기(101) 및 수신기(102)는 컴퓨터, 이동 단말기, 사용자 장비(UE), M2M/loT 타입의 디바이스, 또는 게이트웨이, RNC(Radio Network Controller), RBS(Radio Base Stations), NodeB 또는 eNodeB와 같은 RAN(Radio Access Network)의 노드와 같이 통신 네트워크(103)를 통해 통신을 수행할 수 있는 임의의 타입의 디바이스일 수 있다. 통신 네트워크(103)는 유선 또는 무선 네트워크, 예를 들어 GSM과 같은 RAN,, UMTS, LTE, WLAN/WiFi 네트워크, 이더넷 네트워크, 기업 네트워크, 인터넷 등의 임의의 하나 또는 조합일 수 있다.
통신 네트워크(103)를 통해 송신기(101)로부터 수신기(102)로 송신되는 메시지(105)는 랜덤/비의도적 또는 의도적/악의적인 수정을 겪을 수 있다. 랜덤 수정은 예를 들어 버스트 에러 또는 비-인접한 t 비트 에러(t = 2)에 의해 야기될 수 있으며, 이는 통신 네트워크(103)의 무선 네트워크의 무선 인터페이스를 통하거나 Turbo 코드 디코더와 같은 일부 FEC 디코더에 의해 송신 중에 발생한다. 반면에, 악의적인 수정은 도 1에 또한 도시되는 상대(104)로부터 유래할 수 있다. 상대(104)는 송신기(101)에 의해 송신된 메시지(105)를 인터셉트하고, 메시지의 수정된 사본을 수신기(102)에 재송신할 수 있다. 상대(104)는 또한 송신기(101)로부터 수신된 메시지의 수정에 의존하지 않고 새로운 메시지를 생성하려고 시도할 수 있다. 통상적으로, 상대(104)의 의도는 악의적인 메시지를 수신기(102), 특히 수신기(102)의 네트워크 인터페이스, 운영 체제 또는 애플리케이션에 주입하는 것이다.
본 기술 분야에서, 메시지(105)에 대한 무결성 보증에 의해 메시지(105)의 랜덤 수정을 탐지하는 것이 알려져 있다. 이것은 도 2에 도시된 바와 같이 CRC와 같은 체크섬을 메시지(105)에 제공함으로써 달성될 수 있다. 본 발명의 실시예에 따른 체크섬의 사용은 신뢰성이 없거나 잡음이 있는 통신 채널을 통해 데이터 송신에서의 에러를 제어하기 위해 사용되는 FEC(Forward Error Correction) 코드와 관련하여 설명된 본 개시 내용의 전반에 걸쳐 있다. FEC 코드는 예를 들어 LTE 네트워크에서 사용된다. FEC의 아이디어는 송신기(101)가 에러 정정 코드(error-correcting code)를 사용함으로써 메시지를 중복 방식으로 인코딩하고, 수신기(102)가 특정 에러를 탐지하고 정정하도록 허용하는 것이다. 상이한 타입의 에러를 탐지하는 능력은 사용된 FEC 코드의 타입에 의존한다. 그러나, 본 발명은 FEC에 의존하지 않는 시나리오에서도 유용할 수 있다는 것을 주목한다. 예를 들어, 이것은 어떤 이유로 송신기와 수신기 사이의 채널이 상술한 바와 같이 FEC 디코더에서 발생할 수 있는 것과 유사한 더블 비트 에러를 발생시키는 경향이 있는 케이스일 수 있다.
이를 위해, CRC와 같은 체크섬(203)은 도 2에서 헤더(201) 및 페이로드를 반송하고 메시지(204)에 첨부된 바디(body)(202)를 포함하는 것으로 도시되는 메시지(204)에 대해 생성된다. 메시지(204) 및 첨부된 체크섬(203)은 후속하여 FEC 코드워드(206)로 인코딩된다. 도 2의 상위 부분(210)에 도시된 바와 같이, 분리 가능한 FEC 코드를 갖는 FEC 알고리즘이 사용되면, 다수의 FEC 체크 비트(205)는 FEC 알고리즘에 기초하여 생성되고 메시지(204) 및 체크섬(203)에 첨부되어, 분리 가능한 체크 비트(205)를 갖는 FEC 코드워드(206)를 생성시킬 것이다. 대안으로서, 도 2의 하위 부분(220)에 도시된 바와 같이, 분리 가능한 FEC 코드를 사용하지 않는 FEC 알고리즘을 구상할 수 있다. 후자의 경우, 메시지(204) 및 체크섬(203)은 중복 비트를 제공하기 위해 메시지(204) 및 체크섬(203)의 조합된 길이와 비교하여 증가된 길이를 갖는 FEC 코드 워드(206)로 인코딩된다. 그리고 나서, (도 1의 메시지(105)에 대응하거나 반송되는) 코드워드(206)는, 도 3을 참조하여 이하에서 설명되는 바와 같이, 도 1의 송신기(101) 및 수신기(102)에 각각 대응하는 송신기 측(도 3에서 왼쪽) 및 수신기 측(도 3에서 오른쪽)을 예시하는 블록도(300)를 도시하는 메시지(204)의 무결성이 검증되는 수신기(102)로 송신된다.
송신기(101)에서, 수신기(102)로 송신되어야 하는 메시지(204)는 획득되고, 예를 들어 송신기(101)의 프로토콜 스택(stack)의 상위 계층으로부터 수신되고, 제 1 체크섬(도 3의 CS)(203), 특히 CRC를 계산하기 위해 구성된 알고리즘(301)으로 공급된다. 메시지(204) 이외에, 체크섬 알고리즘(301)은 입력으로서 공유 비밀, 예를 들어 암호화 키를 수신하고, 출력으로서 제 1 체크섬(203)을 생성한다. 선택적으로, 체크섬 알고리즘(301)은 제 1 체크섬(203)이 생성되는 것에 기초하여 입력으로서 초기화 값(Initialization Value; IV)을 부가적으로 수신할 수 있다. IV는 체크섬 알고리즘(301)에 대한 별개의 입력일 수 있거나, 예를 들어 이것을 메시지(204)에 추가하거나 첨부함으로써 메시지(204)의 일부로서 입력될 수 있다. 그 다음, 메시지(204) 및 체크섬(203)은, FEC 인코딩 알고리즘(311)에 의해, 후속하여 예를 들어 통신 네트워크(103)를 통해 메시지(105)로서 수신기(102)로 송신되는 FEC 코드워드(206)로 인코딩되기 전에 체크섬(203)을 메시지(204)에 첨부함으로써 조합된다.
수신기(102)에서, FEC 코드워드(216)가 수신되어 FEC 디코딩 알고리즘(312)에 공급되며, FEC 디코딩 알고리즘(312)은 FEC 인코더(311)에 대응하고, 송신기(101)로부터 비롯하는 FEC 코드워드(206)의 송신 동안 발생된 버스트 에러를 탐지하고 정정할 수 있다. 임의의 송신 에러가 없는 경우, 수신기(102)에 의해 수신된 FEC 코드워드(216)는 송신기(101)에 의해 송신된 FEC 코드워드(206)와 동일하다. FEC 디코더(312)로부터의 출력은 메시지(214) 및 이의 체크섬(213)(도 3의 CS')이다. 메시지(214) 및 체크섬(213)은 FEC 디코더(312)에 의해 발생된 에러 때문에 송신기 측의 FEC 인코더(311)에 공급되는 메시지(204) 및 체크섬(203)과 각각 상이할 수 있다는 것을 주목한다. 이러한 에러는 Turbo 코드 디코딩이 확률적인 판정을 기반으로하므로 LTE에서 자주 사용되는 Turbo 코드 디코더에 의해 발생될 수 있다. Turbo 코드 디코더에 의해 발생된 공통 타입의 에러는 더블 비트 에러이며, 여기서 2개의 플립된 비트는 반드시 연속적이지는 않다.
메시지(314)는 송신기(101)의 체크섬 알고리즘(301)과 동일한 체크섬 알고리즘(301)에 공급되고, 체크섬 알고리즘(301)은 메시지(314)에 기초하고, 또한 송신기(101)에 의해 사용된 공유된 비밀과 동일한 공유된 비밀에 기초하여 제 2 체크섬(223)(도 3의 CS")을 생성한다. 선택적으로, 체크섬 알고리즘(301)은 송신기(101)에 의해 사용된 IV와 동일한 입력으로서 IV를 부가적으로 수신할 수 있다. 그 다음, 메시지(314)의 무결성은 제 2 체크섬(223)을 비교기(305)에 공급하여 수신된 코드워드(206)로부터 추출된 제 1 체크섬(213)과 비교함으로써 검증된다. 비교 결과는 예를 들어 수신기(102)의 통신 스택의 상위 계층에 대한 추가의 사용을 위해 비교기(305)에 의해 이용 가능하게 되고, 제 1 체크섬(213)과 제 2 체크섬(223)이 동일한지 여부를 나타낸다. 예를 들어, 비교기(305)에 의해 출력된 결과는 Boolean 값일 수 있으며, 높은 값(Boolean "1")은 두 체크섬이 동일함을 나타내고, 낮은 값(Boolean "0")은 두 체크섬이 상이함을 나타내며, 그 반대의 경우도 마찬가지이다. 동일하면, 메시지(304)의 무결성은, 즉 수신기(102)에 의해 수신된 메시지(214)가 송신기(101)에 의해 송신된 메시지(204)와 동일한 것으로 추정될 수 있다. 메시지(214)의 무결성을 검증함으로써, 메시지(204)가 송신(105) 동안 수정되지 않은 어떤 확률로 추론될 수 있다.
알려진 체크섬, 특히 HMAC 또는 CBC-MAC와 같은 암호화 해시 함수인 CRC는 메시지의 랜덤 수정을 탐지하기 위해 설계된다. 더욱 구체적으로, 차수 n의 생성 다항식 p(x)를 갖는 CRC는 n보다 작거나 같은 길이의 모든 버스트 에러를 탐지할 수 있다. 더욱이, CRC는 생성 다항식 p(x)의 배수가 아닌 임의의 에러를 탐지할 것이다. CRC의 인코딩 및 디코딩은 하드웨어, LFSR 및 소프트웨어를 사용하여 효율적으로 구현될 수 있다.
송신기(101)에서의 인코딩을 위해, 메시지 M(x)(204)는 통상적으로 먼저 xn로 곱해진 다음, 모듈로 생성 다항식 p(x)으로 나뉘진다. 나머지의 다항식 계수는,
Figure pct00007
CRC 체크섬(203), 즉 메시지 다이제스트를 구성하고, 메시지(204)와 체크섬(203)의 조합을 형성하기 위해 데이터 비트,
Figure pct00008
에 가산된다.
본 개시 내용의 전체에 걸쳐,
Figure pct00009
는 (유한 GF(2)에 대해 Boolean AND와 동등한) 유한 GF 곱셈이고, "mod"는 유한 필드의 다항식 모듈로 나눗셈의 나머지이다. xn에 의한 곱셈은 메시지 M(x)(204)를 n 비트만큼 시프트시킨다는 것을 주목한다. 즉, 메시지 M(x)(204)는 CRC 체크섬(203)과 조합하기 전에 시프트된다. 결과적으로, 메시지 비트는 체크섬 비트로부터 분리 가능하다. 그 후, 메시지(204) 및 체크섬(203)은 FEC 인코더(311)에 의해 FEC 코드워드(206)로 인코딩되며, FEC 인코더(311)는 특정 FEC 알고리즘에 따라 동작한다. LTE에서, Turbo 코드는 공통으로 사용된다.
수신기(102)에서의 디코딩에 대해, FEC 코드워드(216)에서 수신된 데이터 비트
Figure pct00010
는 먼저 FEC 인코더(31l)에 대응하여 동작하는 FEC 디코더(312)에 공급되고, 이에 따라 모듈로 생성 다항식 p(x)로 나뉘어지는 메시지(214) 및 체크섬(213)을 추출한다. 생성된 나머지의 체크섬(223)의 다항식 계수는,
Figure pct00011
코드 워드(206)로 수신된 체크 비트 r(x)(213)(CS')와 비교된다. 에러가 발생하지 않았으면, 즉 메시지(204)가 송신(105) 동안 수정되지 않았고, 더블 비트 에러가 FEC 디코더(312)에 의해 발생되지 않았다면, 나머지 r'(x)는 수신된 나머지 r(x)와 동일하다. 불일치는 메시지(203)에서 플립된 비트, 체크섬(203)에서 플립된 비트, 또는 둘 다의 에러를 나타낸다.
통상의 CRC 기술은 랜덤 수정 또는 에러를 탐지하는데 유용하지만, 상대(104)는 체크섬 알고리즘(301)에 의해 이용된 생성 다항식 p(x)이 송신기(101) 및 수신기(102)에만 알려진 비밀이 아니므로 수신기(102)에서 CRC 체크를 통과하는 송신기(101)에 의해 송신된 메시지에 대한 수정을 쉽게 크래프트할 수 있다. 예를 들어, 상대(104)는 e(x) mod p(x) = 0이 되도록 생성 다항식 p(x)의 배수인 다항식에 대응하는 에러 e(x)를 송신된 메시지 M(x)(204)에 가산할 수 있다. 더욱이, 상대(104)는 송신기(101)에 의해 송신된 메시지(204)를 아마도 악의적인 콘텐츠와 상이한 메시지(304)로 대체하여, 송신기(101)와 동일한 체크섬 알고리즘(301)을 사용하여 그것을 인코딩하고, 무결성 체크를 통과시키는 수신기(102)로 그것을 송신할 수 있다.
특히 사용자 평면에서 데이터 무결성을 제공하기 위한 자원 효율적인 솔루션은 기존의 CRC를 암호화된 안전한 CRC로 대체하는 것이며, 이러한 안전한 CRC는 통상적인 CRC와 동일한 랜덤 에러 탐지 능력을 갖지만, 임의의 의도적 또는 악의적인 수정을 높은 확률로 탐지할 수도 있다. 기존의 CRC와 동일한 크기의 암호화된 안전한 CRC를 사용하는 이점은 기존의 프로토콜 스택이 메시지 크기의 변화를 설명하기 위해 전체 프로토콜 스택을 재설계할 필요없이 메시지 인증을 지원하도록 확장될 수 있다는 것이다.
Krawczyk에 의해 제안된 암호화된 안전한 CRC는 생성 다항식을 송신기(101)와 수신기(102)에만 알려진 공유된 비밀로 만드는 아이디어에 기초한다. 이에 의해 상대(104)는 수신기(102)에서 무결성 체크를 통과하기 위해 메시지를 설계할 수 없다. 이것은 보안의 관점에서 만족스럽게 작업하지만, Krawczyk에 의해 제안된 생성 다항식은 더블 비트 에러를 탐지하는 것을 허용하지 않는다.
다음에서 설명되는 본 발명의 실시예는 송신기(101)로부터 수신기(102)로 송신된 메시지(105)의 무결성이 기존의 CRC와 동일한 크기이지만, 기존의 CRC가 제한되는 랜덤 에러 이외에 높은 확률로 고의적 악의적인 수정을 탐지할 수 있는 암호화 체크섬에 의해 검증될 수 있다는 점에서 유리하다. Krawczyk에 의해 제안된 암호화 체크섬과는 대조적으로, 본 발명의 실시예는 제안된 생성 다항식이 FEC 디코더(312)에 의해 발생될 수 있는 더블 비트 에러를 탐지하는 능력을 갖는다는 점에서 더 유리하다.
이를 위해, 본 발명의 실시예는 도 2 및 도 3에 도시된 CRC와 같은 기존의 체크섬(203)을 대체하는 암호화 체크섬을 이용한다. 메시지(204) 또는 이의 부분, 예를 들어, 바디(202)는 또한 본 발명의 일부 실시예에서 암호화될 수 있다. 이러한 경우에, 수신기(102)는 무결성 검증을 수행하기 전에 메시지 또는 메시지의 일부를 먼저 해독할 수 있다. 대안으로, 해독 프로세스의 적어도 일부는 체크섬 검증과 인터리빙(interleaving)될 수 있다. 또 다른 대안으로서, 수신기(102)가 수신된 메시지를 먼저 해독할 필요가 없을 수 있다. 수신기(102)에서 수신된 메시지를 먼저 해독할 필요성은 송신기(101)에서의 처리 순서에 달려 있다. 예를 들어, 체크섬(203)이 생성되어 메시지(204)에 첨부된 후에 메시지 암호화가 송신기(101)에서 적용되면, 수신기(102)는 통상적으로 먼저 수신된 코드워드(216)의 적어도 일부를 해독할 필요가 있다. 반면에, 송신기(101)가 암호화된 메시지에 대한 체크섬(203)을 계산하기 전에 먼저 메시지(204)를 암호화한다면, 수신기(102)는 체크섬(223)이 계산되고 수신된 암호화된 메시지의 무결성이 검증될 때까지 해독를 연기할 수 있다. 본 개시 내용 전반에 걸쳐, 달리 언급되지 않으면, 해독은 필요에 따라 수행된다고 추정한다.
따라서, 송신기(101)(도 3의 CS) 및 수신기(102)(도 3의 CS") 각각에서 암호화된 안전한 체크섬을 생성하기 위해 사용되는 체크섬 알고리즘(301)은 다음에서 설명되는 바와 같이 Krawczyk에 의해 제안된 것과 비교하여 수정된다.
체크섬 알고리즘(301)은 메시지 M(x)(204)에 대한 암호화 체크섬(203)을 생성하기 위한 해시 함수 hp(M)에 의존한다. 이것은 M(x), f(M(x)), modulo p(x)의 제 2 함수 f의 나눗셈의 제 1 함수 g로서 암호화 체크섬 t(M)(203)를 계산하는 단계를 포함하며, 즉,
Figure pct00012
여기서
Figure pct00013
은 해시 함수이다. 생성 다항식은 다음과 같은 형식이다.
Figure pct00014
여기서, p1(x)는 Galois Field, 특히 순서 2의 Galois 필드, GF(2)에 걸친 원시 다항식의 세트로부터 선택되는 차수 n-1의 원시 다항식이다. 원시 다항식 p1(x)는 제 1 암호화 키, 즉 송신기(101) 및 수신기 (102)에 알려지는 공유된 비밀에 기초하여 선택될 수 있다. 본 기술 분야에 알려진 바와 같이, 공유된 비밀은 예를 들어 공개 키 기술 또는 SIM(Subscriber Identity Module), USIM(Universal SIM) 등에 의해 지원된 대칭 기술에 의해 형성될 수 있다. 식 (2)에 따라 원시 다항식 p1(x)의 선택 및 생성 다항식 p(x)의 계산은 송신기(101) 및 수신기(102)에 의해, 예를 들어 체크섬 알고리즘(301)에서 수행될 수 있다.
대안으로서, 송신기(101) 및/또는 수신기(102)는 또한 원시 다항식 p1(x), 또는 원시 다항식 p1(x)을 생성하는 방법을 나타내는 정보를 수신하고, 수신된 원시 다항식 p1(x) 또는 원시 다항식 p1(x)을 생성하는 방법을 나타내는 수신된 정보에 기초하여 생성 다항식 p(x)을 계산하기 위해 구성될 수 있다. 예를 들어, 송신기(101)는 원시 다항식 p1(x)을 선택하고, 생성 다항식 p(x)을 계산하며, 원시 다항식 p1(x) 또는 원시 다항식 p1(x)을 생성하는 방법을 나타내는 정보를 수신기(102)에 송신하기 위해 구성될 수 있다. 이에 대응하여, 수신기(102)는 원시 다항식 p1(x), 또는 원시 다항식 p1(x)을 생성하는 방법을 나타내는 정보를 수신하고, 수신된 원시 다항식 p1(x) 또는 원시 다항식 p1(x)을 생성하는 방법을 나타내는 수신된 정보에 기초하여 생성 다항식 p(x)을 계산하기 위해 구성될 수 있다. 대안으로, 송신기(101) 및 수신기(102)는 둘 다 원시 다항식 p1(x), 또는 키 또는 AAA 서버(106)와 같은 제 3 자로부터 원시 다항식 p1(x)을 생성하는 방법을 나타내는 정보를 수신하고, 수신된 원시 다항식 p1(x) 또는 원시 다항식 p1(x)을 생성하는 방법을 나타내는 수신된 정보에 기초하여 생성 다항식 p(x)을 계산하기 위해 구성될 수 있다. 이 경우에, 수신된 원시 다항식 p1(x), 또는 원시 다항식 p1(x)을 생성하는 방법을 나타내는 수신된 정보는 공유된 비밀 및 선택적 IV 대신에 체크섬 알고리즘(301)에 대한 입력으로서 사용된다.
또 다른 대안으로서, 송신기(101) 및/또는 수신기(102)는 또한 생성 다항식 p(x) 또는 생성 다항식 p(x)을 생성하는 방법을 나타내는 정보를 수신하기 위해 구성될 수 있다. 예를 들어, 송신기(101)는 원시 다항식 p1(x)을 선택하고, 생성 다항식 p(x)을 계산하며, 생성 다항식 p(x), 또는 생성 다항식 p(x)을 생성하는 방법을 나타내는 정보를 수신기(102)에 송신하기 위해 구성될 수 있다. 이에 대응하여, 수신기(102)는 생성 다항식 p(x), 또는 생성 다항식 p(x)을 생성하는 방법을 나타내는 정보를 수신하기 위해 구성될 수 있다. 대안으로, 송신기(101) 및 수신기(102)는 둘 다 생성 다항식 p(x), 또는 키 또는 AAA 서버(106)와 같은 제 3 자로부터 생성 다항식 p(x)을 생성하는 방법을 나타내는 정보를 수신하기 위해 구성될 수 있다. 이 경우에, 수신된 생성 다항식 p(x), 또는 생성 다항식 p(x)을 생성하는 방법을 나타내는 수신된 정보는 공유된 비밀 및 선택적 IV 대신에 체크섬 알고리즘(301)에 대한 입력으로서 사용된다.
원시 다항식 p1(x) 또는 생성 다항식 p(x)을 생성하는 방법을 나타내는 정보는 예를 들어 송신기(101) 및 수신기(102) 둘 다에 알려진 원시 다항식 또는 생성 다항식의 리스트, 또는 각각 원시 다항식 p1(x) 또는 생성 다항식 p(x)의 계수에 인덱스를 포함시킬 수 있다. 대안으로, 원시 다항식을 생성하는 방법을 나타내는 정보는 시드(seed)에 따라 원시 다항식을 생성하는 결정론적 알고리즘에 대한 입력으로서 사용되는 시드일 수 있다. 예를 들어, 시드는 임의의 다항식일 수 있고, 결정론적 알고리즘은 원시 다항식이 발견될 때까지 시드 입력으로부터 시작하는 사전식 순서로 연속적인 다항식을 테스트함으로써 연산할 수 있다. 특정 다항식이 원시인지 여부를 테스트하는 것은 본 기술 분야에서 잘 알려져있다[예를 들어, M. Zivkovic, "Generation of primitive binary polynomials", International Conference on Algebra, Logic and Discrete Mathematics, April 14-16, 1995, Nis 참조].
예를 들어, 차수 n-1의 원시 다항식 p1(x)은 다음과 같이 나타내어진다:
Figure pct00015
원시 다항식 p1(x)을 생성하는 방법을 나타내는 정보는 계수의 세트{ci}를 포함할 수 있으며, 여기서 GF(2)에 대한 모든 i = 0, ..., n-1에 대해 ci = 0 또는 1이다.
이에 대응하여, 차수 n의 생성 다항식 p(x)이 다음과 같이 나타내어지면,
Figure pct00016
생성 다항식 p(x)을 생성하는 방법을 나타내는 정보는 계수의 세트
Figure pct00017
를 포함할 수 있으며, 여기서 GF(2)에 대한 모든 i = 0, ..., n에 대해
Figure pct00018
= 0 또는 1이다.
원시 다항식 p1(x), 생성 다항식 p(x), 또는 원시 다항식 p1(x) 또는 생성 다항식 p(x)을 각각 생성하는 방법을 나타내는 정보는 통신 세션의 초기화 프로세스의 일부로서 수행되는 핸드셰이크 절차(handshake procedure) 동안 송신기(101) 및/또는 수신기(102)와 같이 통신 세션에 관련된 디바이스에 제공될 수 있다. 예를 들어, AKA(Authentication and Key Agreement) 절차 등이 초기화 프로세스의 일부로서 이용되면, AKA에 의해 생성된 키는 상술한 제 1 암호화 키로서 사용될 수 있고, 또한 상술한 바와 같이 원시 다항식을 생성하는 결정론적 알고리즘에 대한 입력으로서 사용될 수 있다. 대안으로, 제 1 암호화 키는 적절한 원시 다항식의 미리 계산된 테이블에 대한 인덱스로서 사용될 수 있다.
또한 선택적으로, 제 1 함수 g는 길이 n의 패드 s를 갖는 덧셈을 포함할 수 있으며, 즉,
Figure pct00019
여기서 "+"는 Boolean 비트별(bitwise) XOR 연산이다. 패드 s는 예를 들어 제 1 암호화 키와 동일하거나 상이할 수 있는 제 2 암호화 키에 기초하여 의사 랜덤하게 생성될 수 있다. 제 1 및/또는 제 2 암호화 키는, 예를 들어, 제 3 암호화 키 및 송신기(101) 및 수신기(102)에게 알려진 일부 정보로부터 의사 랜덤 비트 시퀀스를 생성하고, 생성된 비트 시퀀스의 일부를 제 1 암호 키로 선택하고 비트 시퀀스의 나머지 비트를 제 2 암호 키로 선택함으로써 제 3 암호화 키로부터 생성될 수 있다. 랜덤 패드 s의 덧셈는 해시 함수 hp(M), 즉 hp(A) + hp(B) = hp(A + B)에 의해 암호화 체크섬을 생성하는 선형 변환이 아핀(affine) 변환, hp(M) + s로 변환된다는 점에서 유리하다. 패드가 없는 경우, 즉 hp(0) = 0인 경우, 해시 함수에 사용된 생성 다항식에 관계없이, 상대가 모두 0인 메시지를 주입할 수 있다. 스트림 암호(stream cipher)를 이용한 암호화가 송신기(101)에서 적용되면, 패드 s는 암호화 함수에 의해 제공되어, 암호화 및 무결성 처리가 "인터리빙(interleaving)"할 수 있다. 이 경우에, 수신기(102)는 (i) 먼저 해독에 의해 패드 s를 제거한 다음 체크섬(213)으로서 hp(M)만을 처리하거나, (ii) 패드를 제거하지 않고 체크섬(213)으로서 hp(M) + s를 처리할 수 있다.
본 발명의 실시예에 사용된 패드는 1900년대 초에 Vernam에 의해 도입된 잘 알려진 일회용 패드와 유사하다. Vernam 암호에서, 메시지는 Boolean XOR 연산을 사용하여 패드와 조금씩(bit-by-bit) 조합되었다. 본 발명의 실시예에서, 패드는 유사한 방식으로 암호화 체크섬과 조합된다.
다음에서, 본 발명의 실시예에 따라 암호화 체크섬을 계산하기 위해 제안된 패밀리 해시 함수의 보안이 분석되고, Krawczyk와 유사한 암호화 체크섬과 비교된다.
다음과 같이 정의되는 암호화된 안전한 해시 함수의 (m, n) 패밀리를 고려한다. p1(x)가 Galois Field에 대한 차수 n-1의 원시 다항식인 식 (4)에 따른 이진 길이 m의 임의의 메시지 M(x) 및 각각의 생성 다항식 p(x)에 대해, 해시 함수 hp는 다항식의 이진 계수로서 정의된다.
Figure pct00020
인증 태그, 즉 메시지 다이제스트 또는 암호화된 안전한 체크섬을 계산하기 위해,
Figure pct00021
원시 다항식 p1(x)가 바람직하게는 의사 랜덤하게 생성되고, 생성 다항식 p(x)는 식 (4)에 따라 형성되고, 해시 함수 hp는 평가되며, 의사 랜덤하게 생성된 패드 s는 명시적으로 또는 암호화 프로세스의 일부로 부가된다. 원시 다항식 p1(x)을 생성하는 것은 Galois Field에 대한 차수 n-1의 모든 다항식의 세트로부터 의사 랜덤하게 선택된 각각의 다항식에 대한 원시에 대한 테스트를 실행하거나, Galois Field에 대한 순서 n-1의 바람직하게는 모든 원시 다항식의 세트를 포함하는 데이터베이스로부터 각각의 원시 다항식 p1(x)을 의사 랜덤하게 작성하는데 필요로 한다는 것을 주목한다.
제안된 해시 함수 패밀리의 보안을 분석하기 위해, M(x) 및 t를 본 후에, 상대(104)가 t' = t가 되도록 메시지 M'x)≠(x)를 발견할 수 있다면, 상대(104)는 인증을 파기하는 데 성공한 것으로 추정된다. 여기서, 상대(104)는 특정 메시지를 인증하기 위해 사용되는 특정 해시 함수 hp 및 패드 s가 아니라, 해시 함수의 (m, n) 패밀리를 알고 있는 것으로 추정된다.
분석은 주어진 길이의 모든 메시지에 대한 CRC의 분포를 고려하여 수행된다. 최악의 시나리오가 여기에서 고려된다는 것을 주목하며, 즉, 상대(104)는 체크섬을 설계하려고 노력함으로써 자신의 기회를 최대화하는 것으로 추정되고, 상대(104)는 성공 확률을 최대화하는이러한 메시지를 알고 있는(선택하는) 것으로 추정한다. 따라서, 성공 확률은 2개의 상이한 메시지 M 및 M'가 식 (10)에 따라 계산된 동일한 체크섬 t를 갖는 최대 확률에 의존하는데, 그 이유는 이것이 상대(104)가 송신기(101)에 의해 송신된 메시지를 탐지되지 않고, 즉 수신기(102)에서 무결성 체크를 통과시켜 다른 메시지로 대체할 수 있다는 것을 의미하기 때문이다. 즉, 다음의 것을 찾으며,
Figure pct00022
여기서, 최대 값은 모든 별개의 m-비트 메시지 M 및 M'에 대해 취해지고, 확률 Pr은 식 (4)에 따라 해시 함수를 정의하는 생성 다항식 p(x)의 랜덤 선택에 대해 취해진다.
Figure pct00023
인 경우에만
Figure pct00024
이므로, 패드 s의 존재는 확률에 영향을 미치지 않는다는 것을 주목한다. 확률은 통계량이며, 랜덤 이벤트를 예측하는 최적의 전략은 이벤트의 통계적 분포에 따라 예측을 하는 것임을 더 주목한다. 예를 들어, (가상의 완전한 코인(coin)의) 코인 플립(coin-flip)이 헤드 또는 테일(tail)을 올리는 지 예측하는 것은 무슨 자원이 이용 가능한지에 관계없이 1/2 이상의 성공으로 행해질 수 없다. 따라서, 식 (11)은 상대가 처리할 수 있는 계산 자원이 무엇이든 관계없이 임의의 상대의 성공 확률의 상한으로 이어진다.
정리 1(부록 참조)에 따르면, 임의의 m 및 n 값과 임의의 메시지 M에 대해, 어떤 상대도 다음의 것보다 큰 확률을 갖는 랜덤하게 선택된 생성 다항식에 기초하여 암호화 체크섬으로 인증을 파기하는 데 성공할 수 없다:
Figure pct00025
여기서 φ는 잘 알려진 Euler의 파이(totient) 함수이다. 확률 ε은 충돌 확률(collision probability)이라고 한다. 2n-1 - 1이 소수(prime)이면, 식 (12)은 다음의 것으로 감소하며,
Figure pct00026
2n-1 - 1이 소수가 아닌 경우에, 식 (12)은 다음의 것으로 근사화될 수 있다:
Figure pct00027
비교를 위해, Krawczyk와 유사한 기약 생성 다항식에 대한 충돌 확률이 주어진다:
Figure pct00028
알 수 있는 바와 같이, 2n-1 - 1이 소수인 경우(예를 들어 n = 32에 대해 유지함), 제안된 암호화된 안전한 CRC는 Krawczyk의 암호화된 안전한 CRC(식 (15))와 거의 동일한 충돌 확률(식 (13))을 가지며, 따라서 유사한 보안을 제공한다.
예를 들어, n = 32 및 m = 6114에 대해, 본 발명의 실시예에 대한 충돌 확률은 ε = 2.8615·10-6(식 (13))인 반면에, Krawczyk와 유사한 암호화된 안전한 CRC에 대한 충돌 확률은 εKr = 2.8620·10-6(식 (15))이다. 게다가, 제시된 암호화된 안전한 CRC는 최대 2n-1 - 1 비트 크기의 메시지에 대한 모든 더블 비트 에러를 탐지할 수 있으며, 이는 Krawczyk의 암호화된 안전한 CRC에 대한 경우가 아니다.
본 명세서에 제시된 보안 분석은 균일한 랜덤 파라미터, 예를 들어 랜덤하게 선택된 다항식의 추정에 기초하지만, 이러한 파라미터는 실제로 의사 랜덤하게 생성된다. 그러나, 이러한 차이는 실제로 균일한 분포와 구별될 수 없는 출력 분포를 생성하는 의사 랜덤 생성기가 알려져 있으므로 중요하지 않다. 따라서, 상대는 이러한 분포의 차이를 악용할 수 없다.
본 발명의 실시예는 송신기(101) 및 수신기(102)에 대해 결정론적인 방식으로 상대(104)에 대해 생성 다항식 p(x) 및 패드 s 중 적어도 하나의 예측 불가능한 변화에 기초한다. 즉, 생성 다항식 p(x) 및/또는 패드 s의 변화는 송신기(101)와 수신기(102) 사이에서 동기화되어야 한다.
원시 다항식이 의사 랜덤하게 선택되는 공유된 비밀, 즉 제 1 암호화 키는 체크섬 알고리즘(301)의 출력을 상대(104)에 대해 예측할 수 없게 하도록 의도되는 것이지만, 체크섬 알고리즘(301)은 선택적으로 메시지의 시퀀스 수 또는 메시지 내의 몇몇 다른 고유 정보, 예를 들어 타임 스탬프, 메시지 식별자 또는 난수와 같은 몇몇 (비밀이 아닌(non-secret)) 메시지 종속 데이터에 기초하여 원시 다항식 p1(x)을 선택할 수 있다. 이러한 부가적인 정보는 예를 들어 메시지(204)의 헤더(201)에 반송될 수 있다.
일반적으로, 각각의 메시지에 대해 새로운 생성 다항식을 계산할 필요는 없을 수 있지만, 송신기(101)와 수신기(102) 사이의 새로운 세션의 시작에서 생성 다항식을 생성하고, 세션 동안 송신기(101)와 수신기(102) 사이에서 교환되는 모든 메시지에 대해 고정되게 유지하는 것으로 충분하다. 그러나, 패드는 각각의 메시지에 대해 변경되어야 하고, 메시지 의존 데이터, 즉 메시지에 특정한 정보에 따라 변경될 수 있다.
도 4에서, 메시지를 인증하기 위한 송신 디바이스의 방법의 실시예(400)가 도시된다. 방법(400)의 실시예는 예를 들어 송신기(101)에 의해 수행될 수 있다. 방법(400)은 예를 들어 송신기(101)의 통신 스택의 상위 계층 또는 송신기(101)에 의해 실행되는 애플리케이션으로부터 메시지를 획득하는 단계(401), 메시지에 대한 암호화 체크섬을 생성하는 단계, 생성된 암호화 체크섬을 메시지에 첨부하는 단계(406), 메시지 및 첨부된 암호화 체크섬을 FEC 코드의 코드워드로 인코딩하는 단계(407), 및 FEC 코드워드를 송신하는 단계(408)를 포함한다.
더욱 구체적으로, 암호화 체크섬을 생성하는 단계는
Figure pct00029
의 제 2 함수 모듈로 차수 n,
Figure pct00030
의 생성 다항식 p(x)의 나눗셈의 제 1 함수 g로서 암호화 체크섬을 계산하는 단계(405)를 포함한다. 생성 다항식은
Figure pct00031
로서 계산되며, 여기서 p1(x)는 차수 n-1의 원시 다항식이며, 원시 다항식은 제 1 암호화 키에 기초하여 Galois Field, 특히 GF(2)에 대한 차수 n-1의 원시 다항식의 세트로부터 선택된다. 제 1 암호화 키는 메시지의 송신기 및 수신기에 알려진 공유된 비밀이다. 바람직하게는, 원시 다항식은 의사 랜덤하게 선택된다.
방법(400)은 원시 다항식을 선택하는 단계(402) 및 생성 다항식을 계산하는 단계(403)를 더 포함할 수 있다. 대안으로, 방법(400)은 원시 다항식, 또는 원시 다항식을 생성하는 방법을 나타내는 정보를 수신하는 단계, 및 수신된 원시 다항식 또는 원시 다항식을 생성하는 방법을 나타내는 수신된 정보에 기초하여 생성 다항식을 계산하는 단계(도 4에 도시되지 않음)를 더 포함할 수 있다. 또 다른 대안으로서, 방법(400)은 생성 다항식 또는 생성 다항식을 생성하는 방법을 나타내는 정보를 수신하는 단계(도 4에 도시되지 않음)를 더 포함할 수 있다. 원시 다항식, 생성 다항식, 또는 각각의 다항식을 생성하는 방법을 나타내는 정보는 통신 세션에 관련된 다른 디바이스, 또는 제 3 자로부터 수신될 수 있다. 예를 들면, 송신기(101)는 수신기(102), 키 또는 AAA 서버(106) 등으로부터 원시 다항식, 생성 다항식, 또는 각각의 다항식을 생성하는 방법을 나타내는 정보를 수신할 수 있다.
메시지 및 첨부된 암호화 체크섬을 FEC 코드워드로 인코딩하는 단계(407)는 선택적으로 메시지 및 첨부된 암호화 체크섬에 기초하여 FEC 코드의 하나 이상의 체크 비트를 생성하는 단계, 및 생성된 FEC 체크 비트를 메시지 및 첨부된 암호화 체크섬에 첨부하는 단계를 포함할 수 있다. 이것은 분리 가능한 FEC 코드에 대한 경우이다.
방법(400)은 길이 n의 패드 s를 의사 랜덤하게 생성하는 단계(404)를 더 포함할 수 있으며, 여기서 제 1 함수 g는 패드 s를 갖는 덧셈을 포함한다. 패드 s는 제 1 암호화 키와 동일하거나 상이할 수 있는 제 2 암호화 키에 기초하여 생성될 수 있다. 제 2 및 제 1 암호화 키는 메시지의 송신기 및 수신기에게 알려진 공유된 비밀이다. 선택적으로, 원시 다항식 p1(x)와 패드 s, 또는 둘 다 중 적어도 하나는 메시지 시퀀스 수, 타임 스탬프, 난수 등과 같은 메시지에 특정한 정보에 따라 생성될 수 있다.
도 5에서, 메시지를 인증하기 위한 수신 디바이스의 방법의 실시예(500)가 도시된다. 방법(500)의 실시예는 예를 들어 수신기(102)에 의해 수행될 수 있다. 방법(500)은 FEC 코드워드, 즉, 메시지 및 첨부된 제 1 암호화 체크섬의 인코딩된 표현을 수신하는 단계(501), FEC 코드워드를 디코딩함으로써 FEC 코드워드로부터 메시지 및 첨부된 제 1 암호화 체크섬을 추출하는 단계(502), 메시지에 대한 제 2 암호화 체크섬을 생성하는 단계, 및 제 1 암호화 체크섬 및 제 2 암호화 체크섬이 동일한지를 검증하는 단계(508)를 포함한다. 그렇지 않은 경우, 메시지의 무결성이 형성될 수 없다. 즉, 메시지는 실수로/랜덤하게 또는 의도적으로/악의적으로 수정되었다.
더욱 구체적으로, 제 2 암호화 체크섬을 생성하는 단계는
Figure pct00032
의 제 2 함수 모듈로 차수 n,
Figure pct00033
의 생성 다항식 p(x)의 나눗셈의 제 1 함수 g로서 암호화 체크섬을 계산하는 단계(505)를 포함한다. 생성 다항식은
Figure pct00034
로서 계산되며, 여기서 p1(x)는 차수 n-1의 원시 다항식이며, 원시 다항식은 제 1 암호화 키에 기초하여 Galois Field, 특히 GF(2)에 대한 차수 n-1의 원시 다항식의 세트로부터 선택된다. 제 1 암호화 키는 메시지의 송신기 및 수신기에 알려진 공유된 비밀이다. 바람직하게는, 원시 다항식은 의사 랜덤하게 선택된다.
방법(500)은 원시 다항식을 선택하는 단계(504) 및 생성 다항식을 계산하는 단계(505)를 더 포함할 수 있다. 대안으로, 방법(500)은 원시 다항식, 또는 원시 다항식을 생성하는 방법을 나타내는 정보를 수신하는 단계, 및 수신된 원시 다항식 또는 원시 다항식을 생성하는 방법을 나타내는 수신된 정보에 기초하여 생성 다항식을 계산하는 단계(도 5에 도시되지 않음)를 더 포함할 수 있다. 또 다른 대안으로서, 방법(500)은 생성 다항식 또는 생성 다항식을 생성하는 방법을 나타내는 정보를 수신하는 단계(도 5에 도시되지 않음)를 더 포함할 수 있다. 원시 다항식, 생성 다항식, 또는 각각의 다항식을 생성하는 방법을 나타내는 정보는 통신 세션에 관련된 다른 디바이스, 또는 제 3 자로부터 수신될 수 있다. 예를 들면, 수신기(102)는 송신기(101), 키 또는 AAA 서버(106) 등으로부터 원시 다항식, 생성 다항식, 또는 각각의 다항식을 생성하는 방법을 나타내는 정보를 수신할 수 있다.
선택적으로, FEC 코드워드는 메시지, 첨부된 제 1 암호화 체크섬, 및 FEC 코드의 하나 이상의 첨부된 체크 비트를 포함할 수 있다. 이 경우에, 방법(500)은 첨부된 FEC 체크 비트에 기초하여 메시지 및 첨부된 제 1 암호화 체크섬을 정정하는 단계(503)를 더 포함할 수 있다.
방법(500)은 길이 n의 패드 s를 의사 랜덤하게 생성하는 단계(506)를 더 포함할 수 있으며, 여기서 제 1 함수 g는 패드 s를 갖는 덧셈을 포함한다. 패드 s는 제 1 암호화 키와 동일하거나 상이할 수 있는 제 2 암호화 키에 기초하여 생성될 수 있다. 제 2 및 제 1 암호화 키는 메시지의 송신기 및 수신기에게 알려진 공유된 비밀이다. 선택적으로, 원시 다항식 p1(x)와 패드 s, 또는 둘 다 중 적어도 하나는 메시지 시퀀스 수, 타임 스탬프, 난수 등과 같은 메시지에 특정한 정보에 따라 생성될 수 있다.
본 발명의 실시예에 따른 암호화 체크섬의 계산은 기존의 CRC에 사용되는 것과 동일한 타입의 연산에 기초한다. 따라서, 그것은 본 발명의 실시예가 가변 의사 랜덤 생성 다항식을 이용하는 것을 제외하고는 통상의 CRC의 단순성의 대부분을 유지한다. 따라서, 하드웨어에서 본 발명의 실시예를 구현하는 것은 간단하고, 생성된 구현은 매우 자원 효율적이다. GF(2)에 대한 다항식을 모듈로 나누는 연산은 LFSR을 통해 구현될 수 있으며, 여기서 LFSR의 탭은 본 기술 분야에 알려진 바와 같이 생성 다항식 p(x)을 결정한다. xn에 의한 곱셈조차도 고성능으로 하드웨어에서 구현될 수 있다. 그러나, 생성 다항식이 고정되고 사전에 알려지고, 구현 회로가 통상적으로 하드웨어에 내장된(hardwired) 생성 다항식을 결정하는 피드백 연결을 갖는 기존의 CRC와는 대조적으로, 본 발명의 실시예에 따른 암호화 체크섬은 피드백 연결이 프로그램 가능한 구현을 필요로 한다. 이러한 피드백 연결은 해싱을 위한 핵심(key)이고, 변경 가능하고 비밀이어야 하는 이러한 피드백 연결의 실제 구성이다. 암호화되지 않은 CRC 회로 중 일부는 또한 상이한 생성 다항식에 기초하여 상이한 CRC 표준을 지원하거나, 상이한 다항식 차수를 지원할 필요가 있는 경우에 프로그래밍 가능한 연결을 사용할 수 있다는 것을 주목한다(예를 들어, J. Birch, L. G. Christensen, and M. Skov, "A programmable 800 Mbit/s CRC check/generator unit for LAN 6 and MANs", Comp. Networks and ISDN Sys., 1992 참조].
소프트웨어에서 CRC 생성기의 효율적인 구현이 또한 존재한다. 이러한 구현에서, 원시 다항식이 의사 랜덤하게 선택되는 특정 암호화 키에 의존하는 미리 계산된 테이블을 사용함으로써 상당한 속도 향상이 달성될 수 있다. 따라서, 암호화 키 당 한 번만 계산되며, 이는 많은 애플리케이션에 적합할 수 있다.
본 발명의 실시예에 따른 해시 함수 패밀리에서의 함수는 본질적으로 해시 함수가 적용되는 메시지의 길이가 아니라 생성 다항식 p(x)에 의해 정의된다. 그러므로, 이것은 실제로 바람직한 상이한 길이의 메시지에 적용될 수 있다. 특히, 메시지 M(x)에 대응하는 다항식은 "0"보다는 오히려 리딩 계수(leading coefficient)로서 "1"을 가져야 한다(M이 길이 m이면, M(x)는 적절한 차수 m임). 이것은 메시지와 다항식 간의 일대일 매핑을 결정하며, 특히 메시지에 0을 추가하여 메시지를 변경하는 것을 방지한다. 예를 들어, 메시지 01011은 5비트 메시지가 아닌 4비트 메시지 1011로서 처리되어야 한다. 그렇지 않으면, 두 메시지는 동일한 메시지 다항식
Figure pct00035
으로 나타내어지며, 따라서 인코딩 후에 동일한 체크섬을 가질 것이다. 그렇지 않으면, 상대는 하나 이상의 리딩(leading) 0을 메시지에 간단히 추가할 수 있으며, 이는 새로운 메시지가 동일한 체크섬을 가져야 한다는 것을 안다. 대안적으로 또는 부가적으로, 예를 들어, 메시지 길이를 메시지에 덧붙이거나 첨부함으로써, 명시적인 길이 인디케이션(indication)은 인증/검증 프로세스에 대한 입력으로서 사용될 수 있다.
수신기 측에서, 메시지의 무결성의 검증은 메시지 요소의 순차적 수신과 동시에 메시지를 다소 처리하는 FSM(Finite State Machine)에 의해 효율적으로 구현될 수 있으며, 요소는 통상적으로 비트이다. 이러한 FSM은 또한 수신기의 MAC(Medium Access Control) 계층 내에 통합될 수 있으며, 통상적으로 체크섬 디코더, 비교기 및 제어 블록으로 구성된다. 체크섬 디코더는 수신된 메시지 요소가 하나씩, 즉 조금씩 도달할 때 수신된 메시지 요소에 대한 체크 비트를 다시 계산한다. 비교기는 다시 계산된 체크 비트를 메시지에서 수신된 체크 비트, 즉 인증 태그 또는 체크섬과 비교한다. 다시 계산된 체크 비트와 수신된 체크 비트가 일치하지 않으면, 비교기는 에러 신호를 제어 블록에 송신하며, 이는 메시지의 무결성이 검증될 수 없음을 나타낸다.
도 6에서, 도 1에 도시된 송신기(101)와 같이 메시지를 인증하기 위한 송신 디바이스의 실시예(600)가 예시된다. 송신기(600)는 예를 들어 송신기(600)의 통신 스택의 상위 계층 또는 송신기(600)에 의해 실행되는 애플리케이션으로부터 메시지를 획득하기 위한 메시지 버퍼(601), 메시지에 대한 암호화 체크섬을 생성하기 위한 체크섬 생성기(602), 생성된 암호화 체크섬을 메시지에 첨부함으로써 코드워드를 형성하기 위한 코드워드 버퍼(603), 메시지 및 첨부된 암호화 체크섬을 FEC 코드워드로 인코딩하기 위한 FEC 인코더(604), FEC 코드 워드를 송신하기 위한 인터페이스(604)(도 6에서의 "I/O"), 및 제 1 암호화 키, 즉, 메시지의 송신기(600) 및 수신기에 알려진 공유된 비밀을 체크섬 생성기(602)에 제공하기 위한 공유된 비밀 모듈(606)을 포함한다. 인터페이스(605)는 예를 들어 RAN과의 통신을 수행하기 위해 구성된 네트워크 인터페이스 또는 무선 송수신기일 수 있다.
더욱 구체적으로, 체크섬 생성기(602)는
Figure pct00036
의 제 2 함수 모듈로 차수 n,
Figure pct00037
의 생성 다항식 p(x)의 나눗셈의 제 1 함수 g로서 암호화 체크섬을 계산함으로써 암호화 체크섬을 생성하기 위해 구성된다. 생성 다항식은
Figure pct00038
로서 계산되며, 여기서 p1(x)는 차수 n-1의 원시 다항식이며, 원시 다항식은 제 1 암호화 키에 기초하여 Galois Field, 특히 GF(2)에 대한 차수 n-1의 원시 다항식의 세트로부터 선택된다.
선택적으로, 송신기(600), 특히 체크섬 생성기(602)는 원시 다항식을 선택하고 생성 다항식을 계산하기 위해 구성될 수 있다. 대안으로, 이것은 원시 다항식, 또는 원시 다항식을 생성하는 방법을 나타내는 정보를 수신하고, 수신된 원시 다항식 또는 원시 다항식을 생성하는 방법을 나타내는 수신된 정보에 기초하여 생성 다항식을 계산하기 위해 구성될 수 있다(도 6에 도시되지 않음). 또 다른 대안으로서, 이것은 생성 다항식 또는 생성 다항식을 생성하는 방법을 나타내는 정보를 수신하기 위해 구성될 수 있다(도 6에 도시되지 않음). 원시 다항식, 생성 다항식, 또는 각각의 다항식을 생성하는 방법을 나타내는 정보는 통신 세션에 관련된 다른 디바이스, 또는 제 3 자로부터 수신될 수 있다. 예를 들면, 송신기(101)는 수신기(102), 키 또는 AAA 서버(106) 등으로부터 원시 다항식, 생성 다항식, 또는 각각의 다항식을 생성하는 방법을 나타내는 정보를 수신할 수 있다.
체크섬 생성기(602)는 길이 n의 패드 s를 의사 랜덤하게 생성하기 위해 더 구성될 수 있으며, 여기서 제 1 함수 g는 패드 s를 갖는 덧셈을 포함한다. 패드 s는 제 1 암호화 키와 동일하거나 상이할 수 있는 제 2 암호화 키에 기초하여 생성될 수 있다. 제 2 암호화 키는 메시지의 송신기(600) 및 수신기에게 알려진 공유된 비밀이다. 따라서, 공유된 비밀 모듈(606)은 제 2 암호화 키를 체크섬 생성기(602)에 제공하기 위해 더 구성될 수 있다. 대안으로, 패드 s는 체크섬 생성기(602)에 의해 생성되기 보다는 상술한 바와 같이 암호화 알고리즘에 의해 제공될 수 있다.
선택적으로, 체크섬 생성기(602)는 메시지 시퀀스 수, 타임 스탬프, 난수 등과 같은 메시지에 특정한 정보에 따라 원시 다항식 p1(x)와 패드 s, 또는 둘 다 중 적어도 하나를 생성하기 위해 구성될 수 있다. 이러한 정보는 체크섬 생성기(602), 특히 체크섬 생성기(602)에 포함된 LFSR에 대한 입력으로서 이용될 수 있다.
도 7에서, 도 1에 도시된 수신기(102)와 같이 메시지를 인증하기 위한 수신 디바이스의 실시예(700)가 예시된다.
도 7에는,도 1에 도시 된 수신기 (102)와 같이, 메시지를 인증하기위한 수신기 장치의 일 실시 예 (700)가 도시되어있다. 수신기(700)는 FEC 코드워드(도 7에서의 "I/O"), 즉 메시지 및 첨부된 제 1 암호화 체크섬의 인코딩된 표현을 수신하기 위한 인터페이스(701), 메시지를 추출한 다음 FEC 코드워드로부터 첨부된 제 1 암호화 체크섬을 추출하기 위한 FEC 디코더(702), FEC 디코더(702)에 의해 출력된 코드워드로부터 메시지 및 제 1 암호화 체크섬을 추출하기 위한 코드워드 버퍼(704), 메시지에 대한 제 2 암호화 체크섬을 생성하기 위한 체크섬 생성기(703), 제 1 암호화 체크섬 및 제 2 암호화 체크섬이 동일한지를 검증하기 위한 비교기(705), 및 제 1 암호화 키, 즉, 메시지의 수신기(700) 및 송신기에 알려진 공유된 비밀을 체크섬 생성기(703)에 제공하기 위한 공유된 비밀 모듈(707)을 포함한다. 수신기(700)는 수신된 메시지를 저장하고, 수신된 메시지의 무결성이 검증된 비교기(705)에 의해 수신된 인디케이션에 응답하여 메시지를 수신기(700)의 통신 스택의 상위 계층 또는 수신기(700)에 의해 실행되는 애플리케이션에 전달하기 위한 메시지 버퍼(706)를 더 포함할 수 있다. 인터페이스(701)는 예를 들어 RAN과의 통신을 수행하기 위해 구성된 네트워크 인터페이스 또는 무선 송수신기일 수 있다.
더욱 구체적으로, 체크섬 생성기(703)는 도 6을 참조로 설명된 체크섬 생성기(602)와 유사하고,
Figure pct00039
의 제 2 함수 모듈로 차수 n,
Figure pct00040
의 생성 다항식 p(x)의 나눗셈의 제 1 함수 g로서 암호화 체크섬을 계산함으로써 제 2 암호화 체크섬을 생성하기 위해 구성된다. 생성 다항식은
Figure pct00041
로서 계산되며, 여기서 p1(x)는 차수 n-1의 원시 다항식이며, 원시 다항식은 제 1 암호화 키에 기초하여 Galois Field, 특히 GF(2)에 대한 차수 n-1의 원시 다항식의 세트로부터 선택된다.
선택적으로, 수신기(700), 특히 체크섬 생성기(703)는 원시 다항식을 선택하고 생성 다항식을 계산하기 위해 구성될 수 있다. 대안으로, 이것은 원시 다항식, 또는 원시 다항식을 생성하는 방법을 나타내는 정보를 수신하고, 수신된 원시 다항식 또는 원시 다항식을 생성하는 방법을 나타내는 수신된 정보에 기초하여 생성 다항식을 계산하기 위해 구성될 수 있다(도 7에 도시되지 않음). 또 다른 대안으로서, 이것은 생성 다항식 또는 생성 다항식을 생성하는 방법을 나타내는 정보를 수신하기 위해 구성될 수 있다(도 7에 도시되지 않음). 원시 다항식, 생성 다항식, 또는 각각의 다항식을 생성하는 방법을 나타내는 정보는 통신 세션에 관련된 다른 디바이스, 또는 제 3 자로부터 수신될 수 있다. 예를 들어, 수신기(102)는 송신기(101), 키 또는 AAA 서버(106) 등으로부터 원시 다항식, 생성 다항식, 또는 각각의 다항식을 생성하는 방법을 나타내는 정보를 수신할 수 있다.
체크섬 생성기(703)는 길이 n의 패드 s를 의사 랜덤하게 생성하기 위해 더 구성될 수 있으며, 여기서 제 1 함수 g는 패드 s를 갖는 덧셈을 포함한다. 패드 s는 제 1 암호화 키와 동일하거나 상이할 수 있는 제 2 암호화 키에 기초하여 생성될 수 있다. 제 2 암호화 키는 메시지의 수신기(700) 및 송신기에게 알려진 공유된 비밀이다. 따라서, 공유된 비밀 모듈(707)은 제 2 암호화 키를 체크섬 생성기(703)에 제공하기 위해 더 구성될 수 있다. 대안으로, 패드 s는 체크섬 생성기(703)에 의해 생성되기 보다는 상술한 바와 같이 암호화 알고리즘에 의해 제공될 수 있다.
선택적으로, 체크섬 생성기(703)는 메시지 시퀀스 수, 타임 스탬프, 난수 등과 같이 수신된 메시지에 특정한 정보에 따라 원시 다항식 p1(x)와 패드 s, 또는 둘 다 중 적어도 하나를 생성하기 위해 구성될 수 있다. 이러한 정보는 체크섬 생성기(703), 특히 체크섬 생성기(703)에 포함된 LFSR에 대한 입력으로서 이용될 수 있다.
송신기(600) 및 수신기(700)의 실시예는 본 기술 분야에 공지된 바와 같이 하드웨어, 소프트웨어 또는 이의 조합으로 구현될 수 있다. 예를 들어, 모듈(601 내지 606) 및 모듈(701 내지 707)은 전자 회로, 특히 디지털 2진 로직에 의해 구현될 수 있다. 대안으로, 모듈(601 내지 606) 및 모듈(701 내지 707)은 디지털 신호 프로세서(Digital Signal Processor; DSP)에 기초하여 구현될 수 있다. 인터페이스(605 및 701)는 RAN의 무선 인터페이스를 통해 코드워드를 각각 송수신하기 위해 구성된 아날로그 전자 회로를 포함할 수 있다는 것이 이해될 것이다.
체크섬 생성기(602 및 703)의 실시예는 표준 CRC 생성기와 매우 유사하게 동작하며, 이의 구현은 본 기술 분야에 공지되어 있다. 의사 랜덤하게 생성된 패드 s에 의존하는 체크섬 생성기(602 및 703)의 실시예는
Figure pct00042
를 나타내는 n 비트 문자열과 n 비트 패드 s 사이의 비트별 XOR 연산에 의해 패드 s의 덧셈을 구현할 수 있다.
도 8에서, 메시지를 인증하기 위한 송신 디바이스의 대안적 실시예(800)가 도시된다. 송신기(800)는 프로세서(801), 예를 들어 DSP, 소프트웨어, 즉 컴퓨터 실행 가능한 명령어가 프로세서(801)상에서 실행될 때, 특히 도 4를 참조하여 송신기(800)가 상술한 메시지를 인증하는 송신기의 방법의 실시예를 구현하도록 하기 위해 컴퓨터 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(803)을 포함하는 메모리(802)를 포함한다. 송신기(800)는 통신 네트워크, 예를 들어, 통신 네트워크(103)를 통해 통신을 수행하기 위한 인터페이스(804)(도 8에서의 "I/O")를 더 포함할 수 있다. 인터페이스(804)는 예를 들어 RAN과의 통신을 수행하기 위해 구성된 네트워크 인터페이스 또는 무선 송수신기일 수 있다.
도 9에서, 메시지를 인증하기 위한 수신 디바이스의 대안적 실시예(900)가 도시된다. 수신기(900)는 프로세서(901), 예를 들어 DSP, 소프트웨어, 즉 컴퓨터 실행 가능한 명령어가 프로세서(901)상에서 실행될 때, 특히 도 5를 참조하여 수신기(900)가 상술한 메시지를 인증하는 수신기의 방법의 실시예를 구현하도록 하기 위해 컴퓨터 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(903)을 포함하는 메모리(902)를 포함한다. 수신기(900)는 통신 네트워크, 예를 들어, 통신 네트워크(103)를 통해 통신을 수행하기 위한 인터페이스(904)(도 9에서의 "I/O")를 더 포함할 수 있다. 인터페이스(904)는 예를 들어 RAN과의 통신을 수행하기 위해 구성된 네트워크 인터페이스 또는 무선 송수신기일 수 있다.
도 6 내지 도 9를 참조하여 설명된 송신기 및 수신기의 실시예(1001)는 도 10에 도시된 집적 회로(IC)(1000)에서 구현될 수 있다. 더욱이, 도 6 내지 도 9를 참조하여 설명된 송신기 및 수신기의 실시예(1101)는 또한 도 11에 도시된 이동 전화(1100)와 같은 이동 단말기에서 구현될 수 있다. 또 다른 대안으로서, 도 6 내지 도 9를 참조하여 설명된 송신기 및 수신기의 실시예(1101)는 또한 RAN의 노드, 예를 들어, 게이트웨이, RNC, 또는 RBS, NodeB, eNodeB, WLAN 액세스 포인트 등과 같은 무선 액세스 노드에서 구현될 수 있다.
당업자는 본 발명이 결코 상술한 실시예로 제한되지 않는다는 것을 인식한다. 대조적으로, 첨부된 청구항의 범위 내에서 많은 수정 및 변형이 가능하다.
부록
Euler의 파이 함수라고도 불리는 파이 함수 (totient function) φ(k)는 k에 대해 상대적으로 소수이고, 즉, k와 공통인 임의의 인자를 포함하지 않는 k보다 작거나 같은 양의 정수로서 정의된다. k가 소수이면, φ(k) = k -1인 것으로 알려져 있다. 또한, k는 k가 소수이고, a > 0인 타입 ka이면,
Figure pct00043
인 것으로 알려져 있다. 아래의 증명에 사용되는 파이 함수의 다른 특성은
Figure pct00044
이다는 것이다.
정리 1 n 및 m의 임의의 값에 대하여, 다음과 같은 타입의 생성 다항식 타입에 기초한 해시 함수의 패밀리,
p(x) = (1 + x)·p1(x), (1)
여기서, p1(x)는 차수 n-1의 원시 다항식이고, 아래에 대해
Figure pct00045
이다.
Figure pct00046
(2)
증명: 해시 함수의 패밀리는 + - 선형 및 ε-균형인 경우에 ε-opt-secure이다. 식 (1)에 따른 타입의 생성 다항식에 기초한 해시 함수의 패밀리는 나눗셈 모듈로 다항식이 선형 연산이므로 + - 선형이며, 여기서 덧셈은 비트별 XOR 연산과 동등하다. 패밀리가 또한 ε-균형을 이루고 있음을 보여주기 위해, GF(2)에 대한 차수 n의 임의의 다항식 p(x), 길이 m의 임의의 0이 아닌 메시지 M 및 길이 n의 임의의 문자열 c에 대해,
Figure pct00047
인 경우에만
Figure pct00048
이다. 다른 한편으로, p(x)가
Figure pct00049
를 나눌 경우에만
Figure pct00050
이다.
Figure pct00051
라고 한다. 명백히, q(x)는 m + n보다 작거나 같은 차수의 0이 아닌 다항식이고, p(x)는 q(x)를 나누는 차수 n의 다항식이다. p(x) = (1 + x)·p1(x)이므로, 이것은 1 + x와 p1(x)가 q(x)의 인자라는 것을 의미한다.
고유 인수 분해 특성 때문에, 각각의 차수 n-1의 q(x)의 최대 (m+n-1)/(n-1) 소인수가 있다. 다시 말하면, M을 c로 매핑하는 CRC 패밀리에는 최대 (m+n-1)/(n-1) 해시 함수가 있다. 다른 한편으로, 해시 패밀리의 크기는 GF(2)에 대한 차수 n-1의 원시 다항식의 수인
Figure pct00052
와 같다.
그래서,
Figure pct00053
(3)
Figure pct00054
이 소수이면, 식 (2)은 다음으로 약분한다
Figure pct00055
(4)
일반적인 경우에
Figure pct00056
이므로, 다음과 같이 식 (2)을 근사화할 수 있다:
Figure pct00057
(5)

Claims (38)

  1. 메시지 M(x)(204; 214)에 대한 암호화 체크섬(203; 223)을 생성하기 위한 통신 디바이스의 방법(400; 500)에 있어서,
    Figure pct00058
    의 제 2 함수 모듈로 차수 n,
    Figure pct00059
    의 생성 다항식 p(x)의 나눗셈의 제 1 함수 g로서 암호화 체크섬을 계산하는 단계(405; 507)를 포함하며, 상기 생성 다항식은
    Figure pct00060
    로서 계산되며, p1(x)는 제 1 암호화 키에 기초하여 Galois Field에 대한 차수 n-1의 원시 다항식의 세트로부터 선택되는 차수 n-1의 원시 다항식인, 통신 디바이스의 방법.
  2. 제 1 항에 있어서,
    상기 원시 다항식을 선택하는 단계(402; 504), 및
    상기 생성 다항식을 계산하는 단계(403; 505)를 더 포함하는, 통신 디바이스의 방법.
  3. 제 1 항에 있어서,
    상기 원시 다항식 또는 상기 원시 다항식을 생성하는 방법을 나타내는 정보를 수신하는 단계, 및
    상기 수신된 원시 다항식 또는 상기 원시 다항식을 생성하는 방법을 나타내는 상기 수신된 정보에 기초하여 상기 생성 다항식을 계산하는 단계(403; 505)를 더 포함하는, 통신 디바이스의 방법.
  4. 제 1 항에 있어서,
    상기 생성 다항식 또는 상기 생성 다항식을 생성하는 방법을 나타내는 정보를 수신하는 단계를 더 포함하는, 통신 디바이스의 방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 원시 다항식은 의사 랜덤하게 선택되는, 통신 디바이스의 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    길이 n의 패드 s를 생성하는 단계(404; 506)를 더 포함하며, 상기 제 1 함수는 상기 패드를 갖는 덧셈을 포함하는, 통신 디바이스의 방법.
  7. 제 6 항에 있어서,
    상기 패드는 제 2 암호화 키에 기초하여 생성되는, 통신 디바이스의 방법.
  8. 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,
    상기 원시 다항식은 부가적으로 상기 메시지에 특정한 정보에 기초하여 선택되는, 통신 디바이스의 방법.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 패드는 상기 메시지에 특정한 정보에 의존하는, 통신 디바이스의 방법.
  10. 제 8 항 또는 제 9 항에 있어서,
    상기 메시지에 특정한 정보는 메시지 시퀀스 수를 포함하는, 통신 디바이스의 방법.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
    상기 제 2 함수는 고정된 다항식 xn과의 곱셈을 포함하는, 통신 디바이스의 방법.
  12. 메시지(204)를 인증하기 위한 송신 디바이스(101)의 방법(400)에 있어서,
    상기 메시지를 획득하는 단계(401),
    제 1 항 내지 제 11 항 중 어느 한 항에 따라 상기 메시지에 대한 암호화 체크섬을 생성하는 단계,
    상기 생성된 암호화 체크섬을 상기 메시지에 첨부하는 단계(406),
    상기 메시지 및 상기 첨부된 암호화 체크섬을 송신하는 단계(408)를 포함하는, 송신 디바이스의 방법.
  13. 제 12 항에 있어서,
    상기 메시지 및 상기 첨부된 암호화 체크섬을 FEC(Forward Error Correction) 코드의 코드워드로 인코딩하는 단계(407)를 더 포함하며,
    상기 메시지 및 상기 첨부된 체크섬은 상기 FEC 코드워드로 송신되는, 송신 디바이스의 방법.
  14. 제 13 항에 있어서,
    상기 메시지 및 상기 첨부된 암호화 체크섬을 FEC 코드의 코드워드로 인코딩하는 단계는,
    상기 메시지 및 상기 첨부된 암호화 체크섬에 기초하여 상기 FEC 코드의 하나 이상의 체크 비트를 생성하는 단계, 및
    상기 생성된 FEC 체크 비트를 상기 메시지 및 상기 첨부된 암호화 체크섬에 첨부하는 단계를 포함하는, 송신 디바이스의 방법.
  15. 메시지(214)를 인증하기 위한 수신 디바이스(102)의 방법(500)에 있어서,
    상기 메시지 및 첨부된 제 1 암호화 체크섬을 수신하는 단계(501),
    제 1 항 내지 제 11 항 중 어느 한 항에 따라 상기 메시지에 대한 제 2 암호화 체크섬을 생성하는 단계, 및
    상기 제 1 암호화 체크섬 및 상기 제 2 암호화 체크섬이 동일한지를 검증하는 단계(508)를 포함하는, 수신 디바이스의 방법.
  16. 제 15 항에 있어서,
    상기 메시지 및 상기 첨부된 제 1 암호화 체크섬은 FEC(Forward Error Correction) 코드의 코드워드로 수신되고, 상기 방법은,
    상기 FEC 코드워드로부터 상기 메시지 및 상기 첨부된 제 1 암호화 체크섬을 추출하는 단계(502)를 더 포함하는, 수신 디바이스의 방법.
  17. 제 16 항에 있어서,
    상기 FEC 코드워드는 상기 메시지, 상기 첨부된 제 1 암호화 체크섬, 및 상기 FEC 코드의 하나 이상의 첨부된 체크 비트를 포함하며, 상기 FEC 코드워드로부터 상기 메시지 및 상기 첨부된 제 1 암호화 체크섬을 추출하는 단계는,
    상기 첨부된 FEC 체크 비트에 기초하여 상기 메시지 및 상기 첨부된 제 1 암호화 체크섬을 정정하는 단계(503)를 포함하는, 수신 디바이스의 방법.
  18. 컴퓨터 실행 가능한 명령어가 디바이스에 포함된 처리 유닛상에서 실행될 때, 상기 디바이스가 제 1 항 내지 제 17 항 중 어느 한 항에 따른 방법을 수행하도록 하기 위한 컴퓨터 실행 가능한 명령어를 포함하는 컴퓨터 프로그램(803; 903).
  19. 제 18 항에 따른 컴퓨터 프로그램을 내장한 컴퓨터 판독 가능한 저장 매체를 포함하는 컴퓨터 프로그램 제품(802; 902).
  20. 메시지 M(x)에 대한 암호화 체크섬을 생성하기 위한 체크섬 생성기(602; 703; 800; 900)에 있어서,
    Figure pct00061
    의 제 2 함수 모듈로 차수 n,
    Figure pct00062
    의 생성 다항식 p(x)의 나눗셈의 제 1 함수 g로서 상기 암호화 체크섬을 계산하기 위해 구성되는 수단을 포함하며, 상기 생성 다항식은
    Figure pct00063
    로서 계산되며, p1(x)는 제 1 암호화 키에 기초하여 Galois Field에 대한 차수 n-1의 원시 다항식의 세트로부터 선택되는 차수 n-1의 원시 다항식인, 체크섬 생성기.
  21. 제 20 항에 있어서,
    상기 수단은,
    상기 원시 다항식을 선택하고,
    상기 생성 다항식을 계산하기 위해 더 구성되는, 체크섬 생성기.
  22. 제 20 항에 있어서,
    상기 수단은,
    상기 원시 다항식 또는 상기 원시 다항식을 생성하는 방법을 나타내는 정보를 수신하고,
    상기 수신된 원시 다항식 또는 상기 원시 다항식을 생성하는 방법을 나타내는 상기 수신된 정보에 기초하여 상기 생성 다항식을 계산하기 위해 더 구성되는, 체크섬 생성기.
  23. 제 20 항에 있어서,
    상기 수단은,
    상기 생성 다항식 또는 상기 생성 다항식을 생성하는 방법을 나타내는 정보를 수신하기 위해 구성되는, 체크섬 생성기.
  24. 제 20 항 내지 제 23 항 중 어느 한 항에 있어서,
    상기 원시 다항식은 의사 랜덤하게 선택되는, 체크섬 생성기.
  25. 제 20 항 내지 제 24 항 중 어느 한 항에 있어서,
    상기 수단은 길이 n의 패드 s를 생성하기 위해 더 구성되며, 상기 제 1 함수는 상기 패드를 갖는 덧셈을 포함하는, 체크섬 생성기.
  26. 제 25 항에 있어서,
    상기 수단은 제 2 암호화 키에 기초하여 상기 패드를 생성하기 위해 더 구성되는, 체크섬 생성기.
  27. 제 20 항 내지 제 26 항 중 어느 한 항에 있어서,
    상기 원시 다항식은 부가적으로 상기 메시지에 특정한 정보에 기초하여 선택되는, 체크섬 생성기.
  28. 제 26 항 또는 제 27 항에 있어서,
    상기 패드는 상기 메시지에 특정한 정보에 의존하는, 체크섬 생성기.
  29. 제 27 항 또는 제 28 항에 있어서,
    상기 메시지에 특정한 정보는 메시지 시퀀스 수를 포함하는, 체크섬 생성기.
  30. 제 20 항 내지 제 29 항 중 어느 한 항에 있어서,
    상기 제 2 함수는 고정된 다항식 xn과의 곱셈을 포함하는, 체크섬 생성기.
  31. 메시지를 인증하기 위한 송신 디바이스(600; 800)에 있어서,
    제 20 항 내지 제 30 항 중 어느 한 항에 따른 체크섬 생성기(602), 및 수단을 포함하며, 상기 수단은,
    상기 메시지를 획득하고(601),
    상기 체크섬 생성기를 사용하여 상기 메시지에 대한 암호화 체크섬을 생성하고,
    상기 생성된 암호화 체크섬을 상기 메시지에 첨부하며(603),
    상기 메시지 및 상기 첨부된 암호화 체크섬을 송신하기(605) 위해 구성되는, 송신 디바이스.
  32. 제 31 항에 있어서,
    상기 수단은,
    상기 메시지 및 상기 첨부된 암호화 체크섬을 FEC(Forward Error Correction) 코드의 코드워드로 인코딩하기 위해 더 구성되며,
    상기 메시지 및 상기 첨부된 체크섬은 상기 FEC 코드워드로 송신되는, 송신 디바이스.
  33. 제 32 항에 있어서,
    상기 수단은,
    상기 메시지 및 상기 첨부된 암호화 체크섬에 기초하여 상기 FEC 코드의 하나 이상의 체크 비트를 생성하고,
    상기 생성된 FEC 체크 비트를 상기 메시지 및 상기 첨부된 암호화 체크섬에 첨부함으로써
    상기 메시지 및 상기 첨부된 암호화 체크섬을 FEC 코드의 코드워드로 인코딩하기 위해 구성되는, 송신 디바이스.
  34. 메시지를 인증하기 위한 수신 디바이스(700; 900)에 있어서,
    제 20 항 내지 제 30 항 중 어느 한 항에 따른 체크섬 생성기(703), 및 수단을 포함하며, 상기 수단은,
    상기 메시지 및 첨부된 제 1 암호화 체크섬을 수신하고(701),
    상기 체크섬 생성기를 사용하여 상기 메시지에 대한 제 2 암호화 체크섬을 생성하며,
    상기 제 1 암호화 체크섬 및 상기 제 2 암호화 체크섬이 동일한지를 검증하기(705) 위해 구성되는, 수신 디바이스.
  35. 제 34 항에 있어서,
    상기 메시지 및 상기 첨부된 제 1 암호화 체크섬은 FEC(Forward Error Correction) 코드의 코드워드로 수신되고, 상기 수단은,
    상기 FEC 코드워드로부터 상기 메시지 및 상기 첨부된 제 1 암호화 체크섬을 추출하기(702) 위해 더 구성되는, 수신 디바이스.
  36. 제 35 항에 있어서,
    상기 FEC 코드워드는 상기 메시지, 상기 첨부된 제 1 암호화 체크섬, 및 상기 FEC 코드의 하나 이상의 첨부된 체크 비트를 포함하며, 상기 수단은,
    상기 첨부된 FEC 체크 비트에 기초하여 상기 메시지 및 상기 첨부된 제 1 암호화 체크섬을 정정함으로써
    상기 FEC 코드워드로부터 상기 메시지 및 상기 첨부된 제 1 암호화 체크섬을 추출하기 위해 구성되는, 수신 디바이스.
  37. 제 31 항 내지 제 33 항 중 어느 한 항에 따른 송신 디바이스(1101) 및 제 34 항 내지 제 36 항 중 어느 한 항에 따른 수신 디바이스(1101) 중 적어도 하나를 포함하는, 이동 단말기.
  38. 제 31 항 내지 제 33 항 중 어느 한 항에 따른 송신 디바이스(1101) 및 제 34 항 내지 제 36 항 중 어느 한 항에 따른 수신 디바이스(1101) 중 적어도 하나를 포함하는, 무선 액세스 노드.
KR1020177032971A 2015-05-04 2015-05-04 암호화 체크섬 생성 KR20170137872A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2015/059482 WO2016177385A1 (en) 2015-05-04 2015-05-04 Generating cryptographic checksums

Publications (1)

Publication Number Publication Date
KR20170137872A true KR20170137872A (ko) 2017-12-13

Family

ID=54843798

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177032971A KR20170137872A (ko) 2015-05-04 2015-05-04 암호화 체크섬 생성

Country Status (5)

Country Link
US (1) US10623187B2 (ko)
EP (1) EP3292653A1 (ko)
KR (1) KR20170137872A (ko)
CN (1) CN107592968B (ko)
WO (1) WO2016177385A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3043807B1 (fr) * 2015-11-18 2017-12-08 Bull Sas Dispositif de validation de communication
US10594491B2 (en) * 2015-12-24 2020-03-17 Intel Corporation Cryptographic system memory management
KR101988849B1 (ko) * 2017-08-30 2019-06-13 에스케이텔레콤 주식회사 네트워크장치 및 네트워크장치의 메시지 무결성 체크 방법
TW201919361A (zh) * 2017-11-09 2019-05-16 張英輝 以雜文加強保護之區塊加密及其解密之方法
US11032061B2 (en) * 2018-04-27 2021-06-08 Microsoft Technology Licensing, Llc Enabling constant plaintext space in bootstrapping in fully homomorphic encryption
KR101942030B1 (ko) * 2018-11-13 2019-01-24 동국대학교 산학협력단 메시지에 대한 무결성 검증이 지원되는 부호 기반의 암호화가 가능한 전자 장치 및 그 동작 방법
CN111835691B (zh) * 2019-04-22 2022-09-27 中国移动通信有限公司研究院 一种认证信息处理方法、终端和网络设备
CN111262686A (zh) * 2020-01-17 2020-06-09 通号万全信号设备有限公司 一种rssp-i安全通信的安全校验方法
CN113765851B (zh) * 2020-06-03 2022-11-08 华为技术有限公司 一种数据处理方法及其设备
CN111831974B (zh) * 2020-06-30 2024-02-23 深圳数字电视国家工程实验室股份有限公司 接口保护方法、装置、电子设备及存储介质
CN115882876B (zh) * 2023-02-16 2023-06-13 苏州浪潮智能科技有限公司 一种数据编码校验方法、系统、设备、介质及电路

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5345507A (en) * 1993-09-08 1994-09-06 International Business Machines Corporation Secure message authentication for binary additive stream cipher systems
CN100425017C (zh) * 2005-12-08 2008-10-08 西安电子科技大学 基于预编码的并行卷积ldpc码的编码器及其快速编码方法
WO2012098543A2 (en) * 2011-01-18 2012-07-26 Fortress Gb Ltd. System and method for computerized negotiations based on coded integrity

Also Published As

Publication number Publication date
EP3292653A1 (en) 2018-03-14
CN107592968B (zh) 2021-05-11
CN107592968A (zh) 2018-01-16
US10623187B2 (en) 2020-04-14
US20180069706A1 (en) 2018-03-08
WO2016177385A1 (en) 2016-11-10

Similar Documents

Publication Publication Date Title
US10623187B2 (en) Generating cryptographic checksums
US10396996B2 (en) Generating cryptographic checksums
EP3161995B1 (en) Generating cryptographic checksums
US11991285B2 (en) Configurable cryptographic device
US8699712B2 (en) Randomization of plain text for GSM SACCH
JP2007140566A (ja) 効率的なパケット暗号化方法
Dubrova et al. CRC-based message authentication for 5G mobile technology
CN112715016B (zh) 密钥封装协议
JP3728500B2 (ja) 変調メッセージの認証システム及び方法
WO2008064153A2 (en) Processing method for message integrity with tolerance for non-sequential arrival of message data
US8122247B2 (en) Processing method for message integrity with tolerance for non-sequential arrival of message data
EP4082153B1 (en) Public/private key system with increased security
US10039059B2 (en) Energy saving in wireless devices
Mihaljević A Framework for Stream Ciphers Based on Pseudorandomness, Randomness and Coding
Zajac Hybrid encryption from McEliece cryptosystem with pseudo-random error vector
Dubrova et al. Error-correcting message authentication for 5g
Zhang et al. A Security Protocol for Wireless Sensor Networks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application