KR102541321B1 - 공동 보안 어드벤스드 ldpc 암호화 코딩 방법 및 장치 - Google Patents
공동 보안 어드벤스드 ldpc 암호화 코딩 방법 및 장치 Download PDFInfo
- Publication number
- KR102541321B1 KR102541321B1 KR1020150094780A KR20150094780A KR102541321B1 KR 102541321 B1 KR102541321 B1 KR 102541321B1 KR 1020150094780 A KR1020150094780 A KR 1020150094780A KR 20150094780 A KR20150094780 A KR 20150094780A KR 102541321 B1 KR102541321 B1 KR 102541321B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- outputting
- block
- row
- key
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
- G09C1/06—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system wherein elements corresponding to the signs making up the clear text are operatively connected with elements corresponding to the signs making up the ciphered text, the connections, during operation of the apparatus, being automatically and continuously permuted by a coding or key member
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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 using multiple parity bits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/63—Joint error correction and other techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0009—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
- H04L1/0013—Rate matching, e.g. puncturing or repetition of code symbols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0067—Rate matching
- H04L1/0068—Rate matching by puncturing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
Abstract
본 발명의 다양한 실시 예에 따른 송신 장치는, 일반 텍스트 데이터를 유효 부호율(Re)에 따라 인코딩하여 암호화 텍스트 데이터를 출력하는 제1 인코더와, 상기 암호화 텍스트 데이터에 대응하는 제1 인코딩 블록을 인코딩하여 제2 인코딩 블록을 출력하는 제2 인코더를 포함하고, 상기 유효 부호율(Re)은, Re=R/(1-Rpunc)에 의해 정의되며, 여기서 R은 부호율을 나타내고, Rpunc은 펑처링율을 나타내며, 상기 제1 인코딩 블록은, Zp x Rs x 2n 비트를 포함하고, 상기 제2 인코딩 블록은, Zp x 2n 비트를 포함하며, 여기서 n은 상기 일반 텍스트 데이터의 비트 수를 나타내고, Zp는 리프팅 인자를 나타내며, Rs는 SLSS 코드율을 나타내는 것을 특징으로 한다.
Description
본 발명은 일반적으로 데이터 암호화(encryption) 및 복호화(decryption), 보다 구체적으로는 고 성능 공동(joint) 보안(security) 어드벤스드(advanced) 저 밀도 패리티 체크(Low Density Parity Check) 암호화 코딩(cryptcoding)에 관한 것이다.
정보는 LTE-A(long-term evolution advanced) 표준과 같은 셀룰러(cellular) 표준, 또는 WiFi(wireless fidelity)/WiGig(wireless gigabit) 표준과 같은 무선(wireless) 표준에 따라 1기가비트/초(Gbps: gigabits per second)를 초과하는 높은 데이터 속도로 무선으로 송신될 수 있다. 높은 데이터 전송률(rate)은 초고화질(UHD: Ultra High Definition) 비디오, 고성능 인터랙티브(interactive) 게임, 및 클라우드 컴퓨팅(cloud computing)과 같은 많은 어플리케이션(application)을 활성화할 수 있게 한다. 사용자들은 클라우드 컴퓨팅 어플리케이션들을 사용하여 연산력(computing power), 배터리 수명 및 데이터 저장 가용성(availability)의 증가를 경험할 수 있다. 클라우드 컴퓨팅 어플리케이션들은 원격으로 위치된 서버들이 단말(UE: user equipment) 외부에서 데이터를 처리하도록 야기하고, 이로 인해 단말은 내부 모바일 처리 능력을 덜 포함할 수 있다. 클라우드 컴퓨팅 어플리케이션들은 클라우드에 사용자의 모바일 사진 및 비디오들을 자동적으로 저장하며, 이로 인해 사용자가 이용할 수 있는 데이터 저장 용량은 단말의 능력 이상으로 증가된다.
불행하게도, 침입자 및 도청자들은 클라우드 컴퓨팅 어플리케이션들을 해킹 기회로 인식하여, 클라우드에 저장되거나 무선으로 전송되는 데이터를 해킹한다. 사용자가 클라우드에 저장된 사용자의 사적인 정보가 해킹되었다고 인식하거나, 클라우드에 무선으로 전송된 정보가 해킹에 취약하다고 인식하는 경우, 해당 사용자 및 해당 사용자와 친분이 있는 다른 사람들은 클라우드 컴퓨팅과 관련된 데이터가 안전하지 않다는 인식에 기반하여 클라우드 컴퓨팅 어플리케이션 사용을 거부할 수 있다. 즉, 해킹은 클라우드 컴퓨팅 개념 및 시장에서의 클라우드 컴퓨팅의 구현에 큰 위협을 제기한다.
따라서 본 발명의 다양한 실시 예들은 일반 텍스트를 암호화하여 높은 보안성을 가지면서 전송에 용이한 암호화 텍스트를 생성하는 장치 및 방법을 제공한다.
본 발명의 다양한 실시 예에 따른 송신 장치는, 일반 텍스트 데이터를 유효 부호율(Re)에 따라 인코딩하여 암호화 텍스트 데이터를 출력하는 제1 인코더와, 상기 암호화 텍스트 데이터에 대응하는 제1 인코딩 블록을 인코딩하여 제2 인코딩 블록을 출력하는 제2 인코더를 포함하고, 상기 유효 부호율(Re)은, Re=R/(1-Rpunc)에 의해 정의되며, 여기서 R은 부호율을 나타내고, Rpunc은 펑처링율을 나타내며, 상기 제1 인코딩 블록은, Zp x Rs x 2n 비트를 포함하고, 상기 제2 인코딩 블록은, Zp x 2n 비트를 포함하며, 여기서 n은 상기 일반 텍스트 데이터의 비트 수를 나타내고, Zp는 리프팅 인자를 나타내며, Rs는 SLSS 코드율을 나타내는 것을 특징으로 한다.
본 발명의 다양한 실시 예에 따른 송신 방법은, 일반 텍스트 데이터를 유효 부호율(Re)에 따라 인코딩하여 암호화 텍스트 데이터를 출력하는 과정과, 상기 암호화 텍스트 데이터에 대응하는 제1 인코딩 블록을 인코딩하여 제2 인코딩 블록을 출력하는 과정을 포함하고, 상기 유효 부호율(Re)은, Re=R/(1-Rpunc)에 의해 정의되며, 여기서 R은 부호율을 나타내고, Rpunc은 펑처링율을 나타내며, 상기 제1 인코딩 블록은, Zp x Rs x 2n 비트를 포함하고, 상기 제2 인코딩 블록은, Zp x 2n 비트를 포함하며, 여기서 n은 상기 일반 텍스트 데이터의 비트 수를 나타내고, Zp는 리프팅 인자를 나타내며, Rs는 SLSS 코드율을 나타내는 것을 특징으로 한다.
본 발명의 다양한 실시 예에 따른 수신 장치는, 제1 인코딩 블록을 디코딩하여 제2 인코딩 블록에 대응하는 암호화 텍스트 데이터를 출력하는 제1 디코더와, 상기 암호화 텍스트 데이터를 유효 부호율(Re)에 따라 디코딩하여 일반 텍스트 데이터를 출력하는 제2 디코더를 포함하고, 상기 유효 부호율(Re)는, Re=R/(1-Rpunc)에 의해 정의되며, 여기서 R은 부호율을 나타내고, Rpunc은 펑처링율을 나타내며, 상기 제1 인코딩 블록은, Zp x 2n 비트를 포함하고, 상기 제2 인코딩 블록은, Zp x Rs x 2n 비트를 포함하며, 여기서 n은 상기 일반 텍스트 데이터의 비트 수를 나타내고, Zp는 리프팅 인자를 나타내며, Rs는 SLSS 코드율을 나타내는 것을 특징으로 한다.
본 발명의 다양한 실시 예에 따른 수신 방법은, 제1 인코딩 블록을 인코딩하여 제2 인코딩 블록에 대응하는 암호화 텍스트 데이터를 출력하는 과정과, 상기 암호화 텍스트 데이터를 유효 부호율(Re)에 따라 디코딩하여 일반 텍스트 데이터를 출력하는 과정을 포함하고, 상기 유효 부호율(Re)는, Re=R/(1-Rpunc)에 의해 정의되며, 여기서 R은 부호율을 나타내고, Rpunc은 펑처링율을 나타내며, 상기 제1 인코딩 블록은, Zp x 2n 비트를 포함하고, 상기 제2 인코딩 블록은, Zp x Rs x 2n 비트를 포함하며, 여기서 n은 상기 일반 텍스트 데이터의 비트 수를 나타내고, Zp는 리프팅 인자를 나타내며, Rs는 SLSS 코드율을 나타내는 것을 특징으로 한다.
다른 기술적 특징들은 하기의 도면, 발명을 실시하기 위한 구체적인 내용, 및 특허청구범위들로부터 당업자에게 쉽게 명백할 수 있다.
하기의 발명을 실시하기 위한 구체적인 내용에 앞서, 본 특허 문서 전반에 걸쳐 사용되는 특정 단어 및 구문들의 정의를 명시하는 것이 유리할 수 있다. 용어 "결합하다(couple)" 및 그의 파생어들은, 요소들이 서로 물리적으로 접촉하고 있든 접촉하고 있지 않든, 두 개 이상의 요소들 간의 모든 직접 또는 간접 통신을 의미한다. 용어 "송신하다(transmit)", "수신하다(receive)" 및 "통신하다(communicate)" 및 이들의 파생어들은 직접 및 간접 통신 모두를 포함한다. 용어 "포함하다(include)"와 "포함하다(comprise) 및 이들의 파생어는 제한 없는 포함을 의미한다. 용어 "또는"은 및/또는 의 의미를 포함한다. 구문 "~와 관련된(associated with)" 및 이의 파생 구문들은 포함하다(include), ~내에 포함되다(be included within), ~와 내적연결하다(interconnect with), 포함하다(contain), ~내에 포함되다(be contained within), ~에 또는 ~와 연결하다(connect to or with), ~에 또는 ~와 결합하다(couple to or with), ~와 통신할 수 있는(be communicable with), ~와 협력하다(cooperate with), 인터리브하다(interleave), 나란히 놓다(juxtapose), ~에 인접하다(be proximate to), ~에 또는 ~와 인접되다(be bound to or with), 가지다(have), ~의 속성을 갖다(have a property of), ~에 또는 ~와 관계가 있다(have a relationship to or with) 등을 의미한다. 용어 "제어기(controller)"는 적어도 하나의 동작을 제어하는 모든 장치, 시스템 또는 이들의 부분을 의미한다. 이러한 제어기는 하드웨어, 및 하드웨어와 소프트웨어 및/또는 펌웨어의 조합으로 구현될 수 있다. 모든 특정 제어기와 관련된 기능은 국부적이든 원격적이든 관계없이 집중화되거나 분산될 수 있다. 열거되는 항목들이 사용되는 경우 "~중 적어도 하나(at least one of)"라는 구문은 사용될 수 있는 열거된 항목 중 하나 또는 그 이상의 서로 다른 조합 및 요구되는 열거된 항목 중 하나의 항목을 의미한다. 예를 들어, "A, B 및 C 중 적어도 하나"는 다음의 조합, A, B, C, A와 B, A와 C, B와 C, 및 A와 B와 C 중 어느 하나를 포함한다.
다른 특정 단어 및 구문들의 정의가 본 특허 문서 전반에 걸쳐서 제공된다. 당업자는 대부분의 경우에, 이러한 정의들이 정의된 단어 및 구문들로 이전뿐 아니라 미래에 적용되어 사용된다는 것을 이해하여야 한다.
다양한 실시 예들에 따른 장치 및 동작 방법은, 일반 텍스트를 기반으로 높은 보안성을 가지면서도 전송에 용이한 암호화 텍스트를 제공할 수 있다.
다른 기술적 특징들은 하기의 도면, 발명을 실시하기 위한 구체적인 내용, 및 특허청구범위로부터 당업자에게 쉽게 이해될 수 있다.
도 1은 본 발명에 따른 예시적 무선 네트워크를 도시한다.
도 2a 및 도 2b는 본 발명에 따른 예시적 무선 송신 및 수신 경로들을 도시한다.
도 3은 본 발명에 따른 예시적 단말을 도시한다.
도 4a는 본 발명에 따른 데이터를 암호화하고 암호화된 데이터를 인코딩 하도록 구성된 장치를 도시한다.
도 4b는 본 발명에 따른 암호화 모듈을 도시한다.
도 5a는 본 발명에 따른 송신 장치를 도시한다.
도 5b는 본 발명에 따른 수신 장치를 도시한다.
도 6은 본 발명에 따른 공동 보안 어드벤스드 LDPC 암호화 코딩(JSALC: Joint Security Advanced LDPC Cryptcoding) 시스템을 도시한다.
도 7a는 본 발명에 따른 JSALC 인코딩 방식과 관련된 패리티 체크 H 행렬을 도시한다.
도 7b 및 도 7c는 도 7a의 패리티 체크 H 행렬 내의 부분행렬의 예들을 도시한다.
도 8은 본 발명에 따른, 기본 코드율(basic code rate)보다 적은 펑처링율(puncturing rate)을 갖는 JSALE LDPC 인코더/디코더에 의해 구현되는 JSALE 암호화 프로세스에 대한 LDPC H 행렬을 도시한다.
도 9는 본 발명에 따른 JSALE LDPC 인코더의 하드웨어 구현의 흐름도를 도시한다.
도 10은 본 발명에 따른 JSALE LDPC 디코더의 하드웨어 구현의 흐름도를 도시한다.
도 11은 본 발명에 따른, 기본 코드율과 동일한 펑처링율을 갖는 JSALE LDPC 인코더/디코더에 의해 구현되는 JSALE 암호화 프로세스에 대한 LDPC H-행렬을 도시한다.
도 12는 (Re=1)인 경우 JSALE 암호화/복호화 H-행렬의 예를 도시한다.
도 13은 본 발명에 따른 계층-Z H-행렬 방법의 예를 도시한다.
도 14는 JSALE 비트 에러 율(BER)/프레임 에러 율(FER) 성능을 도시한다.
도 15는 Re=4/5 및 Eb/N0=13 dB에서의 JSALE 디코딩 반복 횟수에 따른 JSALE FER/BER 성능을 도시한다.
도 16은 Zp=1(256 비트)을 갖는 JSALE 디코더와 비교되는 Zp=8(2048 비트)을 갖는 SLCC 디코더 성능을 도시한다.
도 17은 본 발명의 다양한 실시 예에 따른 송신 장치의 동작을 도시한 흐름도이다.
도 18은 본 발명의 다양한 실시 예에 따른 송신 장치의 암호화 동작을 도시한 흐름도이다.
도 19는 본 발명의 다양한 실시 예에 따른 수신 장치의 동작을 도시한 흐름도이다.
도 20은 본 발명의 다양한 실시 예에 따른 수신 장치의 복호화 동작을 도시한 흐름도이다.
도 1은 본 발명에 따른 예시적 무선 네트워크를 도시한다.
도 2a 및 도 2b는 본 발명에 따른 예시적 무선 송신 및 수신 경로들을 도시한다.
도 3은 본 발명에 따른 예시적 단말을 도시한다.
도 4a는 본 발명에 따른 데이터를 암호화하고 암호화된 데이터를 인코딩 하도록 구성된 장치를 도시한다.
도 4b는 본 발명에 따른 암호화 모듈을 도시한다.
도 5a는 본 발명에 따른 송신 장치를 도시한다.
도 5b는 본 발명에 따른 수신 장치를 도시한다.
도 6은 본 발명에 따른 공동 보안 어드벤스드 LDPC 암호화 코딩(JSALC: Joint Security Advanced LDPC Cryptcoding) 시스템을 도시한다.
도 7a는 본 발명에 따른 JSALC 인코딩 방식과 관련된 패리티 체크 H 행렬을 도시한다.
도 7b 및 도 7c는 도 7a의 패리티 체크 H 행렬 내의 부분행렬의 예들을 도시한다.
도 8은 본 발명에 따른, 기본 코드율(basic code rate)보다 적은 펑처링율(puncturing rate)을 갖는 JSALE LDPC 인코더/디코더에 의해 구현되는 JSALE 암호화 프로세스에 대한 LDPC H 행렬을 도시한다.
도 9는 본 발명에 따른 JSALE LDPC 인코더의 하드웨어 구현의 흐름도를 도시한다.
도 10은 본 발명에 따른 JSALE LDPC 디코더의 하드웨어 구현의 흐름도를 도시한다.
도 11은 본 발명에 따른, 기본 코드율과 동일한 펑처링율을 갖는 JSALE LDPC 인코더/디코더에 의해 구현되는 JSALE 암호화 프로세스에 대한 LDPC H-행렬을 도시한다.
도 12는 (Re=1)인 경우 JSALE 암호화/복호화 H-행렬의 예를 도시한다.
도 13은 본 발명에 따른 계층-Z H-행렬 방법의 예를 도시한다.
도 14는 JSALE 비트 에러 율(BER)/프레임 에러 율(FER) 성능을 도시한다.
도 15는 Re=4/5 및 Eb/N0=13 dB에서의 JSALE 디코딩 반복 횟수에 따른 JSALE FER/BER 성능을 도시한다.
도 16은 Zp=1(256 비트)을 갖는 JSALE 디코더와 비교되는 Zp=8(2048 비트)을 갖는 SLCC 디코더 성능을 도시한다.
도 17은 본 발명의 다양한 실시 예에 따른 송신 장치의 동작을 도시한 흐름도이다.
도 18은 본 발명의 다양한 실시 예에 따른 송신 장치의 암호화 동작을 도시한 흐름도이다.
도 19는 본 발명의 다양한 실시 예에 따른 수신 장치의 동작을 도시한 흐름도이다.
도 20은 본 발명의 다양한 실시 예에 따른 수신 장치의 복호화 동작을 도시한 흐름도이다.
후술할 도 1 내지 도 20, 및 본 특허 문서에서 본 발명의 원리를 설명하기 위해 사용되는 다양한 실시 예들은 단지 예시를 위한 것으로 어떠한 방식으로든 본 발명의 범위를 한정하는 의미로 해석되어서는 안 된다. 당업자들은 본 발명의 원리들이 적절하게 배치된 장치 또는 시스템으로 구현될 수 있음을 이해할 것이다.
다음에 열거될 문서 및 표준 설명들은 본 명세서에서 완전히 명시된 것처럼 본 발명에 포함된다: (i) 3GPP LTE Releases 8/10/11 TSG RAN WG1, http://www.3gpp.org/RAN1-Radio-layer-1 (hereinafter “REF1”); (ii) Van Nee, R., “Breaking the Gigabit-per-second barrier with 802.11AC,” Wireless Communications, IEEE, vol. 18, no. 2, pp. 4-7, April 2011 (hereinafter “REF2”); (iii) Perahia, E.; Cordeiro, Carlos; Minyoung Park; Yang, L.L., “IEEE 802.11ad: Defining the Next Generation Multi-Gbps Wi-Fi,” CCNC, 2010 7th IEEE, vol., no., pp.1-5, 9-12 January 2010 (hereinafter “REF3”); (iv) B. Rochwerger et al., “The RESERVOIR Model and Architecture for Open Federated Cloud Computing,” IBM Journal of Research and Development, Vol. 53, No. 4. (2009) (hereinafter “REF4”); (v) FIPS-46, “Specification for the Data Encryption Standard (DES),” Federal Information Processing Standards Publication, January 1977 (hereinafter “REF5”); (vi) FIPS-46-3, “Specification for the Data Encryption Standard (DES),” Federal Information Processing Standards Publication, October 1999 (hereinafter “REF6”); (vii) FIPS-197, “Specification for the Advanced Encryption Standard (AES),” Federal Information Processing Standards Publication, November 2001 (hereinafter “REF7”); (viii) R. McEliece, “A public-key cryptosystem based on algebraic coding theory,” DSN Progress Report, vol. 42-44, pp. 114?116, 1978 (hereinafter “REF8”); (ix) R G. Gallager, “Low-density parity-check codes,” Cambridge. MA: MIT Press, 1963 (hereinafter “REF9”); (x) D. J. C. MacKay, R. M. Neal, “Near Shannon limit performance of low density parity check codes,” Electronic Letters, 1996, 32:1645-1646 (hereinafter “REF10”); (xi) E. Boutillon, J. Castura, and F. R. Kschischang, “Decoder-first code design,” Proceedings of the 2nd Int’l Symposium on Turbo Codes and Related Topics, pp. 459-462, Brest, France, Sept 2000 (hereinafter “REF11”); (xii) T. Zhang, K. K. Parhi, “VLSI implementation-oriented (3,k)-regular low-density parity-check codes,” 2001 IEEE Workshop on Signal Processing Systems, pp. 25-36, Sept 2001 (hereinafter “REF12”); (xiii) Baykas, T.; Chin-Sean Sum; Zhou Lan; Junyi Wang; Rahman, M.A.; Harada, H.; Kato, S., “IEEE 802.15.3c: the first IEEE wireless standard for data rates over 1 Gb/s,” Communications Magazine, IEEE, vol. 49, no. 7, pp. 114, 121, July 2011 (hereinafter “REF13”); (xiv) E. Pisek, D. Rajan, J. Cleveland, “Gigabit rate low power LDPC decoder,” ITW 2011, pp. 518-522, Oct. 2011 (hereinafter “REF14”); (xv) T. Hwang and T. Rao, “Secret error-correcting codes (secc),” in Proceedings of the 8th annual international Cryptology Conference on Advances in Cryptology, pp. 535?563, 1988 (hereinafter “REF15”); (xvi) D. Gligoroski, S. Knapskog, and S. Andova, “Cryptcoding-encryption and error correction coding in a single step,” in Proceedings of International Conference on Security and Management. Citeseer, pp. 1?7, 2006 (hereinafter “REF16”); (xvii) C. Mathur, K. Narayan, and K. Subbalakshmi, “High diffusion cipher: Encryption and error correction in a single cryptographic primitive,” in Applied Cryptography and Network Security. Springer, pp. 309?324, 2006 (hereinafter “REF17”); (xviii) C. Mathur, “A mathematical framework for combining error correction and encryption,” Ph.D. dissertation, Stevens Institute of Technology, 2007 (hereinafter “REF18”); (xix) H. Cam, “A combined encryption and error correction scheme: Aes-turbo,” ISTANBUL University-Journal of Electrical & Electronics Engineering, vol. 9, no. 1, 2012 (hereinafter “REF19”); (xx) O. Adamo and M. Varanasi, “Joint scheme for physical layer error-correction and security,” ISRN Communications and Networking, vol. 2011, 2011 (hereinafter “REF20”); (xxi) Q. Chai and G. Gong, “Differential cryptanalysis of two joint encryption and error correction schemes,” in Global Telecommunications Conference (GLOBECOM 2011). IEEE, pp. 1?6, 2011 (hereinafter “REF21”); (xxii) C. P. Gupta, S. Gautam, “Joint AES Encryption and LDPC coding,” International Journal of Scientific & engineering Research, Volume 4, Issue 7, pp. 603-606, July 2013 (hereinafter “REF22”); (xxiii) J. Daemen and V. Rijmen, “The block cipher rijndael,” in Smart Card Research and Applications, Springer, pp. 277?284, 2000 (hereinafter “REF23”); (xxiv) D. J. C. MacKay, “Good error-correcting codes based on very sparse matrices,” IEEE Transactions on Information Theory, vol. 45, no. 2, pp. 399?431, 1999 (hereinafter “REF24”); (xxv) G.J. Sullivan; J.-R. Ohm; W.-J. Han; T. Wiegand, “Overview of the High Efficiency Video Coding (HEVC) Standard,” IEEE Transactions on Circuits and Systems for Video Technology, Sept 2012 (hereinafter “REF25”); (xxvi) D. A. Huffman, “A method for the construction of minimum redundancy codes,” Proc. IRE, 40:1098-1101, 1952 (hereinafter “REF26”); (xxvii) Nandan, S.; Deepthi, P.P.; Stuart, C.M., “Low Complex Crypto Based Channel Coding,” Communication Systems and Network Technologies (CSNT), 2012 International Conference on , vol., no., pp. 863-868, 11-13 May 2012 (hereinafter “REF27”); (xxviii) Q. Su, Y, Xiao, “Design of LDPC-based Error Correcting Cipher,” International Conference on Wireless, Mobile and Multimedia Networks, pp. 470-474, 2008 (hereinafter “REF28”); (xxix) S. Abu-Surra, E. Pisek, T. Henige, “Gigabit rate achieving low-power LDPC codes: Design and architecture,” WCNC 2011, pp. 1994-1999, March 2011 (hereinafter “REF29”); (xxx) C. Paar, J. Pelzl, “Understanding Cryptography,” Springer, 2010 (hereinafter “REF30”); (xxxi) L. Ning; L. Kanfeng; L. Wenliang; D. Zhongliang, “A joint encryption and error correction method used in satellite communications,” Communications, China , vol. 11, no. 3, pp. 70-79, March 2014 (hereinafter “REF31); and (xxxii) J. Daemen and V. Rijmen, “New criteria for linear maps in AES-like ciphers,” Cryptography and Comm., Springer, Vol. 1, Issue 1, pp. 47-69, April 2009 (hereinafter, “REF32”).
LTE-A, IEEE802.11ac, 및 IEEE80211.ad와 같은 셀룰러 및 WiFi/WiGig 무선 표준들은 1 Gbps를 초과하는 무선 전송을 위해 최대 데이터 전송률을 증가시켰다(REF3 참조). 이러한 높은 데이터 전송률은 초 고화질(UHD: Ultra High Definition) 비디오, 고성능 인터랙티브(interactive) 게임, 및 클라우드 컴퓨팅(cloud computing)과 같은 많은 어플리케이션을 활성화할 수 있게 한다. 특히 클라우드 컴퓨팅은 모바일 장치의 능력을 넘어 연산력(computing power), 모바일 장치 배터리 수명, 및 데이터 저장 가용성(availability)를 증가시킨다. 클라우드에 저장되거나 무선으로 전송되는 데이터는 어드벤스드 암호화 표준(AES: Advanced Encryption Standard)과 같은 상이한 암호화 방법들을 사용하여 암호화될 수 있다(REF7 참조). 그러나, AES는 (바이트 기반 공격으로도 언급되는) 제곱 공격(square attack)과 같은 상이한 공격들에 취약한 바이트 단위(byte-wise) 암호화이다. 즉, AES 암호화 방법은 바이트 당 8비트의 단위를 갖는, 바이트 단위 방식(byte-by-byte manner)으로 데이터를 암호화한다. 높은 보안 암호화 방법들은 무선 전송에 적용될 수 있다. 그러나 암호화 보안 레벨의 증가는 이에 대응하여 암호화/복호화 복잡성을 증가시킨다. 데이터 전송률(rate)의 증가로, 현재의 암호화 방법들의 사용은 암호화에 기인하는 전력 소비를 심각하게 증가시킨다.
도 1은 본 발명에 따른 예시적 무선 네트워크 100을 도시한다. 도 1에 도시된 무선 네트워크(100)의 실시 예는 단지 설명을 위한 것이다. 본 발명의 범위를 벗어나지 않는 한, 무선 네트워크 100의 다른 실시예들이 사용될 수 있다.
무선 네트워크 100은 기지국(eNB: eNodeB) 101, 기지국 102, 및 기지국 103을 포함한다. 기지국 101은 기지국 102 및 기지국 103과 통신한다. 또한, 기지국 101은 인터넷, 전용 IP 네트워크, 또는 다른 데이터 네트워크와 같은 적어도 하나의 인터넷 프로토콜(IP) 네트워크 130과 통신한다.
네트워크 유형에 따라, "기지국(base station)" 또는 "액세스 포인트(AP: Access Point)"와 같이 다른 잘 알려진 용어들이 기지국("eNodeB" 또는 "eNB") 대신 사용될 수 있다. 편의상, 본 특허 문서에서 사용되는 용어 기지국("eNodeB" 또는 "eNB")은 원격 단말기에 무선 액세스를 제공하는 네트워크 인프라스트럭쳐(infrastructure) 구성 요소들을 의미한다. 또한, 네트워크 유형에 따라, "이동국(mobile station)", "가입자국(subscriber station)", "원격 단말기(remote terminal)", "무선 단말기(wireless terminal)", 또는 "사용자 장치(user device)"와 같은 다른 잘 알려진 용어들이 단말(UE: User Equipment) 대신 사용될 수 있다. 편의상, 본 특허 문서에서 사용되는 용어 "단말(UE: User Equipment)"은 단말 (휴대폰이나 스마트폰과 같은)이 모바일 장치이든 (데스크톱 또는 자동 판매기와 같은) 고정 장치이든 기지국에 무선으로 액세스하는 원격 무선 장치를 의미한다.
기지국 102는 기지국 102의 커버리지 영역 120 내의 제 1 단말(복수 개의 단말(UE) 그룹)에게 네트워크 130에 대한 무선 광대역 액세스를 제공한다. 제1단말은 소기업(SB)에 위치할 수 있는 단말 111, 대기업(E)에 위치할 수 있는 단말 112, WiFi 핫스팟(HS)에 위치할 수 있는 단말 113, 제1 거주지(R)에 위치할 수 있는 단말 114, 제2 거주지(R)에 위치할 수 있는 단말 115, 및 휴대폰, 무선 랩톱, 무선 PDA 등과 같은 모바일 장치(M)일 수 있는 단말 116을 포함한다. 기지국 103은 기지국 103의 커버리지 영역 125 내의 제2 단말(복수 개의 단말(UE) 그룹)에게 네트워크 130에 대한 무선 광대역 액세스를 제공한다. 제2 단말(복수 개의 단말(UE) 그룹)은 단말 115 및 단말 116을 포함한다. 일부 실시 예에서, 기지국 101 내지 103 중 하나 이상은 5G, LTE, LTE-A, WiMAX, 또는 다른 어드벤스드 무선 통신 기술을 사용하여 서로 통신할 수 있고, 단말 111 내지 116과 통신할 수 있다.
점선은 커버리지 영역 120 및 125의 대략적인 범위를 나타내는데, 이는 단지 예시 및 설명을 위해 대략적인 원형으로 도시된 것이다. 커버리지 영역 120 및 125와 같이, 기지국과 관련된 커버리지 영역들은 천연 및 인공 장애물과 관련된 무선 환경에서의 변화 및 eNB들의 구성에 따라, 불규칙한 형상을 포함하는 다른 형상들을 가질 수 있다는 것을 명백히 이해하여야 한다.
보다 상세히 후술되는 바와 같이, 본 발명의 실시 예들은 고 성능 공동(joint) 보안(security) 어드벤스드(advanced) 저밀도 패리티 체크(LDPC: Low Density Parity Check) 암호화 코딩을 구현한다. 특정 실시 예에서, 하나 이상의 기지국 101, 기지국 102 및 기지국 103은 고성능 공동 보안 어드벤스드 LDPC 암호화 코딩을 구현하도록 구성된다.
도1은 무선 네트워크 100의 일 예를 도시하지만, 다양한 변경들이 도 1에 대해 이루어질 수 있다. 예를 들어, 무선 네트워크 100은 모든 적합한 배열로 임의의 수의 기지국 및 임의의 수의 단말을 포함할 수 있다. 또한, 기지국 101은 임의의 수의 단말과 직접 통신할 수 있고, 이들 단말에게 네트워크 130에 대한 무선 광대역 액세스를 제공할 수 있다. 마찬가지로, 각각의 기지국 102 내지 103은 네트워크 130과 직접 통신할 수 있고, 단말들에게 네트워크 130에 대한 직접 무선 광대역 액세스를 제공할 수 있다. 또한, 기지국 101, 102 및/또는 103은 외부 전화 네트워크 또는 다른 유형의 데이터 네트워크들과 같은 다른 또는 추가 외부 네트워크에 대한 액세스를 제공할 수 있다.
도 2a 및 도 2b는 본 발명에 따른 예시적인 무선 송신 및 수신 경로들을 도시한다. 다음의 설명에서, 송신 경로 200은 기지국(예를 들면, 기지국 102)에서 구현되는 것으로 기술될 수 있고, 수신 경로 250은 단말(예를 들면, 단말 116)에서 구현되는 것으로 기술될 수 있다. 그러나, 수신 경로 250은 기지국에서 구현될 수도 있고, 송신 경로 200은 단말에서 구현될 수 있다는 것을 이해하여야 할 것이다. 일부 실시 예에서, 송신 경로 200 및 수신 경로 250은 고 성능 공동 보안 어드벤스드 LDPC 암호화 코딩(JSALC: Joint Security Advanced LDPC Cryptcoding)을 구현하도록 구성된다.
송신 경로 200은 채널 코딩 및 변조 블록 205, 직렬-병렬 변환(S-to-P) 블록 210, 크기 N의 역 고속 푸리에 변환(IFFT) 블록 215, 병렬-직렬 변환(P-to-S) 블록 220, 순환 전치(cyclic prefix) 삽입 블록 255, 및 상향 변환 블록 230을 포함한다. 수신 경로 250은 하향 변환 블록 255, 순환 전치 제거 블록 260, 직렬-병렬 변환(S-to-P) 블록 265, 크기 N의 고속 푸리에 변환(FFT) 블록 270, 병렬-직렬 변환(P-to-S) 블록 275, 및 채널 디코딩 및 복조 블록 280을 포함한다.
송신 경로 200에서, 채널 코딩 및 변조 블록 205는 정보 비트들의 집합을 수신하고, 저밀도 패리티 체크(LDPC: Low Density Parity Check) 코딩과 같은 코딩을 적용하고, 주파수 도메인 변조 심볼들의 시퀀스(sequence)를 생성하기 위해 입력 비트들을 변조(예를 들면, QPSK(Quadrature Phase Shift Keying) 또는 QAM(Quadrature Amplitude Modulation))한다. 직렬-병렬 변환 블록 210은 N개의 병렬 심볼 스트림(stream)을 생성하기 위해 직렬 변조된 심볼들을 병렬 데이터로 변환(예를 들면 디-멀티플렉싱(de-multiplexing)한다. 여기서 N은 기지국 102 및 단말 116에서 사용되는 IFFT/FFT의 크기이다. 크기 N의 IFFT 블록 215는 시간 도메인 출력 신호들을 생성하기 위해 N개의 병렬 심볼 스트림들에서 IFFT 작업을 수행한다. 병렬-직렬 변환 블록 220은 직렬 시간 도메인 신호를 생성하기 위해 크기 N의 IFFT 블록 215로부터 병렬 시간 도메인 출력 심볼들을 변환(예를 들면, 멀티플렉싱(multiplexing)한다. 순환 전치 삽입 블록 225는 시간 도메인 신호에 순환 전치를 삽입한다. 상향 변환 블록 230은 무선 채널을 통한 전송을 위해 RF 주파수로 순환 전치 삽입 블록 225의 출력을 변조(예를 들면, 상향 변환)한다. 또한, 신호는 RF 주파수로 변환 전에 기저대역에서 필터링될 수 있다.
기지국 102로부터 전송된 RF 신호는 무선 채널을 통과한 후 단말 116에 도달하고, 단말 116에서 기지국 102에서의 작업들과 정반대의 작업들이 수행된다. 하향 변화 블록 255는 수신된 신호를 기저대역 주파수로 하향 변환하고, 순환 전치 제거 블록 260은 직렬 시간 도메인 기저대역 신호를 생성하기 위해 순환 전치를 제거한다. 직렬-병렬 변환 블록 265는 시간 도메인 기저대역 신호를 병렬 시간 도메인 신호들로 변환시킨다. 크기 N의 FFT 블록 270은 N개의 병렬 주파수 도메인 신호를 생성하기 위해 FFT 알고리즘을 수행한다. 병렬-직렬 변환 블록 275는 병렬 주파수 도메인 신호들을 변조된 데이터 심볼들의 시퀀스로 변환시킨다. 채널 디코딩 및 복조 블록 280은 원래의 입력 데이터 스트림을 복구하기 위해 변조된 심볼들을 복조하고 디코딩한다.
기지국 101 내지 103 각각은 단말 111 내지 116에 대한 하향링크 전송과 유사한 송신 경로(200)를 구현할 수 있고, 단말 111 내지 116으로부터의 상향링크 수신과 유사한 수신 경로 250을 구현할 수 있다. 마찬가지로, 단말 111 내지 116 각각은 기지국 101 내지 103에 대한 상향링크 전송을 위한 송신 경로(200)를 구현할 수 있고, 기지국 101 내지 103으로부터의 하향링크 수신을 위한 수신 경로 250을 구현할 수 있다.
도 2a 및 도 2b에서 각각의 구성 요소들은 하드웨어만을 사용하거나, 하드웨어와 소프트웨어/펌웨어의 조합을 사용하여 구현될 수 있다. 특정 예로서, 도 2a 및 도 2b에서 구성 요소들의 적어도 일부는 소프트웨어에서 구현될 수 있고, 다른 구성 요소들은 구성 가능한 하드웨어, 또는 구성 가능한 하드웨어와 소프트웨어의 혼합에 의해 구현될 수 있다. 예를 들어, FFT 블록(270) 및 IFFT 블록(215)은 구성 가능한 소프트웨어 알고리즘들로서 구현될 수 있고, 여기서 크기 N의 값은 구현에 따라 수정될 수 있다.
또한, FFT 및 IFFT를 사용하는 것으로 기술하지만, 이것은 단지 예시를 위한 것으로, 본 발명의 범위를 한정하는 것으로 해석되어서는 안 된다. 이산 푸리에 변환(DFT) 및 역 이산 푸리에 변환(IDFT) 기능과 같은 다른 유형의 변환들이 사용될 수 있다. DFT 및 IDFT 기능에 대해서 변수 N의 값은 (1, 2, 3, 4 등과 같이) 임의의 정수일 수 있고, FFT 및 IFFT 기능에 대해서 변수 N의 값은 (1, 2, 4, 8, 16 등과 같이) 2의 거듭제곱인 임의의 정수일 수 있다.
도 2a 및 도 2b는 무선 송신 및 수신 경로의 예들을 도시하지만, 다양한 변경들이 도 2a 및 도 2b에 이루어질 수 있다. 예를 들어, 도 2a 및 도 2b에서 다양한 구성 요소들은 결합될 수 있고, 더 세분화될 수 있고, 또는 생략될 수 있으며, 추가 구성 요소들이 특정 요구에 따라 추가될 수 있다. 또한, 도 2a 및 도 2b는 무선 네트워크에서 사용될 수 있는 송신 및 수신 경로 유형의 예들을 예시하기 위한 것이다. 모든 다른 적합한 아키텍처(architecture)들이 무선 네트워크에서의 무선 통신을 지원하기 위해 사용될 수 있다.
도 3은 본 발명에 따른 예시적인 단말 116을 도시한다. 도 3에 도시된 단말 116의 실시 예는 단지 설명을 위한 것이고, 도 1의 단말 111 내지 115는 동일하거나 유사한 구성을 가질 수 있다. 그러나, 단말은 매우 다양한 구성이 있고, 도 3은 단말의 특정 구현에 있어 본 발명의 범위를 제한하는 것은 아니다.
단말 116은 안테나 305, 무선 주파수(RF) 송수신기 310, 송신(TX) 처리 회로 315, 마이크로폰 320, 및 수신(RX) 처리 회로 325를 포함한다. 또한, 단말 116은 스피커 330, 메인 프로세서 340, 입출력(I/O) 인터페이스(IF: InterFace)) 345, 키패드 350, 디스플레이 355, 및 메모리 360을 포함한다. 메모리 360은 기본 운영 시스템(OS: Operating System) 프로그램 361 및 하나 이상의 어플리케이션 362을 포함한다.
RF 송수신기 310은 안테나 305로부터 네트워크 100의 기지국에 의해 전송되는 수신 RF 신호를 수신한다. RF 송수신기 310은 중간 주파수(IF: Intermediate Frequency) 또는 기저대역 신호를 생성하기 위해 수신 RF 신호를 하향 변환한다. 중간 주파수 또는 기저대역 신호는 RX 처리 회로 325에 송신되는데, RX 처리 회로 325는 기저대역 또는 중간주파수 신호를 필터링, 디코딩, 및/또는 디지털링에 의해 처리된 기저대역 신호를 생성한다. RF 처리 회로 325는 스피커 330에게 상기 처리된 기저대역 신호(예를 들면 음성 데이터)를 송신하거나 추가 처리를 위해 메인 프로세서 340에 기저대역 신호(예를 들면 웹 브라우징 데이터)를 송신한다.
TX 처리 회로 315는 마이크로폰 320으로부터 아날로그 또는 디지털 음성 데이터를 수신하거나 메인 프로세서 340으로부터 다른 송신 기저대역 데이터(예를 들면 웹 데이터(web data, 이메일(e-mail), 또는 인터랙티브(interactive) 비디오 게임 데이터)를 수신한다. TX 처리 회로 315는 처리된 기저대역 또는 중간 주파수 신호를 생성하기 위해 송신 기저대역 데이터를 인코딩(encoding), 멀티플렉싱(multiplexing), 및/또는 디지털링(digitaling)한다. RF 송수신기 310은 TX 처리 회로 315로부터 상기 송신 처리된 기저대역 또는 중간 주파수 신호를 수신하고, 기저대역 또는 중간 주파수 신호를 안테나를 통해 전송되는 RF 신호로 상향 변환한다.
메인 프로세서 340은 하나 이상의 프로세서 또는 다른 처리 장치들을 포함할 수 있고, 단말 116의 전체 동작을 제어하기 위해 메모리 360에 저장된 기본 OS 프로그램 361을 실행할 수 있다. 예를 들어, 메인 프로세서 340은 잘 알려진 원리들에 따라 RF 송수신기 310, RX 처리 회로 325 및 TX 처리 회로 315에 의해 순방향 채널 신호들의 수신 및 역방향 채널 신호들의 송신을 제어할 수 있다. 일부 실시 예에서, 메인 프로세서340은 적어도 하나의 마이크로프로세서 또는 마이크로제어기(microcontroller)를 포함한다.
또한, 메인 프로세서 340은 고 성능 공동 보안 어드벤스드 LDPC 암호화 코딩(JSALC: Joint Security Advanced LDPC Cryptcoding)을 구현하는 동작들과 같은, 메모리 360에 상주하는 다른 프로세스 및 프로그램들을 실행할 수 있다. 메인 프로세서 340은 실행 프로세스의 요구에 의해 데이터를 메모리 안 또는 밖으로 이동할 수 있다. 일부 실시 예에서, 메인 프로세서 340은 기지국 또는 운영자(operator)로부터 수신된 신호에 대응하기 위해 구성된다. 또한 메인 프로세서 340은 OS 프로그램 361을 기반으로 하여 어플리케이션 362를 실행하기 위해 구성된다. 또한, 메인 프로세서 340은 I/O 인터페이스 345와 결합되는데, 이로 인해 단말 116은 랩톱(laptop) 컴퓨터 및 헨드헬드(handheld) 컴퓨터와 같은 다른 장치와 연결할 수 있는 능력을 제공한다. I/O 인터페이스 345는 메인 프로세서 340과 이들의 부속 장치들 사이의 통신 경로이다.
또한, 메인 프로세서 340은 키패드 350 및 디스플레이 355에 결합된다. 단말 116의 운영자(operator)는 단말 116에 데이터를 입력하기 위해 키패드 350을 사용할 수 있다. 디스플레이 355는 웹사이트와 같은 텍스트 및/또는 적어도 하나의 제한된 그래픽을 랜더링(rendering)할 수 있는 액정 디스플레이(LCD: Liquid Crystal Display) 또는 다른 디스플레이일 수 있다.
메모리 360은 메인 프로세서 340에 결합된다. 메모리 360의 일부는 랜덤 액세스 메모리(RAM: Random Access Memory)를 포함할 수 있고, 메모리 360의 다른 일부는 플래시 메모리(Flash Memory) 또는 다른 읽기 전용 메모리(ROM: Read-Only Memory)를 포함할 수 있다.
도 3은 단말 116의 일 예를 도시하지만, 다양한 변경들이 도 3에서 이루어질 수 있다. 예를 들어, 도 3의 다양한 구성 요소들은 결합될 수 있고, 더 세분화될 수 있고, 또는 생략될 수 있으며, 필요에 따라 부가적인 구성 요소들이 추가될 수 있다. 특정 예로서, 메인 프로세서 340은 하나 이상의 중앙 처리 장치(CPU: Central Processing Unit) 및 하나 이상의 그래픽 처리 장치(GPU: Graphic Processing Unit)와 같이, 복수의 프로세서로 분할될 수 있다. 또한, 도 3은 휴대 전화 또는 스마트폰으로 구성된 단말 116을 도시하지만, 단말은 다른 유형의 모바일 장치 또는 고정 장치로 동작하도록 구성될 수 있다.
도 4a는 본 발명에 따른 데이터를 암호화하고 암호화된 데이터를 인코딩하도록 구성되는 장치를 도시한다. 특정 세부 사항들이 인코더 400의 구성 요소들로 참조와 함께 제공되지만, 다른 실시 예들에서는 더 많은, 더 적은, 또는 상이한 구성 요소들을 포함할 수 있음을 이해해야 한다.
인코더 400은 암호화 모듈 410 및 인코딩 모듈 420을 포함한다. 인코더 400에서, 암호화 모듈 410은 LDPC 인코딩 모듈과 분리된 모듈로, 인코딩 모듈 420과 합쳐지지 않는다. 암호화 모듈 410은 AES 암호화 알고리즘을 구현하도록 구성되는 전기적 처리 회로를 포함한다. 즉, 암호화 모듈 410은 128 비트 일반 텍스트(plaintext)와 같은 일반 텍스트 405를 수신하고, 일반 텍스트 405를 사용하여 암호화 텍스트(ciphertext) 415를 생성한다. 암호화 모듈 410은 라운드의 수(Nr)(예를 들면 10 라운드)를 포함한다. 암호화 모듈 410은 인코딩 모듈 420에 암호화 텍스트 415를 출력한다.
인코딩 모듈 420은 LDPC 인코딩 알고리즘을 구현하도록 구성되는 전기적 처리 회로를 포함한다. 즉, 인코딩 모듈 420은 암호화 모듈로부터 128 비트 암호화 텍스트와 같은 암호화 텍스트 415를 수신하고, 인코딩된 672 비트 블록들과 같은, 인코딩된 블록 425를 생성한다. 인코딩된 블록 425는 일반 텍스트 405의 암호화 인코딩된 표현이다. 인코딩 모듈 420은 인코딩된 블록 425를 전송하는 전송 모듈(도시되지 않음)로 인코딩된 블록 425를 출력한다.
도 4b는 도 4a의 암호화 모듈 410을 도시한다. 특정 세부 사항들이 암호화 모듈 410의 구성 요소들로 참조와 함께 제공되지만, 다른 실시 예들에서는 더 많은, 더 적은, 또는 상이한 구성 요소들을 포함할 수 있음을 이해해야 한다. 예를 들어, 암호화 모듈 410은 두 개의 키 추가 모듈(411a 및 411b), 바이트 치환 블록 412, 룩업 테이블(look up table) 413, 시프트로우(shiftrow) 블록 414, 및 믹스컬럼(MixColumn) 블록 415를 포함한다.
REF7에 기술된 어드벤스드 암호화 표준(AES: Advanced Encryption Standard)은 데이터 암호화 표준(DES: Data Encryption Standard)에 대한 보강의 일환으로 2000년대 초 10년간의 상용을 위해 공식적으로 받아들여졌다. AES는 AES-128, AES-192, 및 AES-256과 같은 복수의 키 길이들을 지원한다. AES 방법에 따르면, 일반 텍스트 405는 128 비트 블록에 배치되고, AES의 제1 라운드에 입력된다. 그후, 바이트 치환 블록 412는 일반 텍스트 데이터 405에 라운드 키 0을 추가한 데이터 416a를 수신한다(REF7 참조). 즉, AES-128 구현에 있어서, 키 추가 모듈 411a는 128 비트 일반 텍스트 데이터 405를 수신한다. 그리고 이에 대응하여, 키 추가 모듈 411a는 일반 텍스트 데이터 405에 라운드 키 0을 추가하는데 여기서 라운드 키 0는 128 비트의 길이를 갖는다. 그 후, 키 추가 모듈 411a는 바이트 치환 블록 412에 데이터 416a를 출력한다. 바이트 치환 블록 412는 각각의 바이트를, GF(28) 상의 곱의(multiplicative) 역수 값의 룩업 테이블(LUT: Look-Up-Table)에 기반한 해당 바이트 값으로 대체한다. 룩업 테이블 413은 "S-BOX"를 의미한다. S-BOX 413은 입력 바이트들에 대해 일대일 비선형 맵핑(mapping)을 수행(예를 들어, 입력 바이트가 A 및 B라면 S(A+B)≠S(A)+S(B)이다.)할 수 있도록 바이트 치환 블록 412를 활성화한다. 바이트 치환 블록 412는 4 바이트 행들을 원형적으로 시프트하는 행시프트(shiftrow) 블록 414에 데이터 417을 출력한다. 이후, 데이터 418은 믹스컬럼 계층 블록 415로 입력되고, 여기서 쉬프트된 행 데이터 열들이 행렬 곱을 통하여 변환된다. 행렬 곱은 고확산(high diffusion)을 제공하기 위해 비 이진수이다. 행렬 곱은 GF(28) 상에 구현된다. 제1 라운드는 믹스컬럼 데이터 419에 라운드 키 1을 추가하여 종료된다. 예를 들어, 다음 라운드는 키 추가 블록 411b가 다음 라운드를 위해 바이트 치환 블록 412에 데이터 416b를 출력하는 경우 시작한다. 동일한 반복 프로세스가 모든 제1 Nr-1 라운드에 적용된다. 마지막 라운드(즉, 라운드 Nr)에 있는 동안, 어떠한 믹스컬럼 계층 기능도 수행되지 않는다. 즉, 라운드 키 인덱스 i=Nr-1인 경우, 믹스컬럼 블록 415는 수신되는 데이터 418과 동일한 데이터 419를 간단하게 출력하고, 키 추가 모듈 411b는 수신되는 데이터 419와 동일한 데이터 415를 간단하게 출력한다. AES-128의 경우, Nr=10이다. AES-192 실시예에서, Nr=12이고, AES-256 실시예에서, Nr=14이다.
도 5a 및 도 5b는 본 발명에 따른 암호화 프로세스 및 채널 코딩 처리가 동일한 같은 장치에서 처리되는 통신 시스템을 도시한다. 도 5a는 송신 장치 500을 도시한다. 도 5b는 수신 장치 555를 도시한다. 특정 세부 사항들이 송신 장치 500 및 수신 장치 555의 구성 요소들로 참조와 함께 제공되지만, 다른 실시예들에서는 더 많은, 더 적은, 또는 상이한 구성 요소들을 포함할 수 있음을 이해해야 한다.
지난 수십 년 동안, 보안 측면에 대한 손실을 최소화하거나 없게 하면서 암호화/복호화 계산의 복잡성을 해결하기 위한 솔루션들이 제안되어왔다. 제안된 솔루션의 일 예로서, REF8은 암호화와 채널 코딩을 결합한 암호화 코딩을 기술한다. 구체적으로 REF8은, 보안 레벨을 유지하면서 암호화로 인한 계산 복잡성을 전체적으로 낮추고 데이터 속도를 높일 수 있는 암호 코딩을 기술한다. REF8의 암호화 코딩 방법들의 주요 문제는 채널 코드 복잡성이 암호화 프로세스를 지원하기 위해 크게 증가한다는 것이다. REF8의 암호화 코딩 방법들이 갖는 다른 문제는 채널 코드 프레임 에러율(FER: Frame-Error-Rate) 성능이 보안을 수용하기 위해 절충된다는 것이다. 암호화 코딩은 하나의 장치가 암호화 프로세스와 채널 코딩 프로세스를 둘 다 처리하는 경우 가능하다. 구체적으로, 암호화 코딩은 암호화 및 오류 수정 인코딩이 한 단계에서 수행되는 절차이다. 또한, 암호화 코딩은 복호화 및 오류 수정 디코딩이 한 단계에서 수행되는 절차이다. 도 5a 및 도5b는 채널 코딩/디코딩 프로세스에 대한 암호화/복호화 프로세스의 근접성을 나타내고, 이 근접성이 암호화 코딩을 가능하게 한다.
송신 장치 500은 암호화 코딩 모듈 530을 형성하기 위해 함께 연결되는 암호화 모듈 510 및 인코딩 모듈 520을 포함한다. 송신 장치 500은 송신 기저대역(Tx BB) 모듈 535, 송신 무선 주파수(Tx RF) 모듈 540, 및 송신 안테나와 같은 안테나 545를 포함한다. 도 5a의 구성 요소 510 및 520은 도 4a의 대응 구성 요소 410 및 420과 동일하거나 유사한 방법으로 동작할 수 있다. 특정 실시 예에서, Tx BB 모듈 535는 직교 주파수 분할 멀티플렉싱(OFDM: Orthogonal Frequency Division Multiplexing) 기저대역 프로세서를 포함한다.
암호화 코딩 모듈 530에서, 암호화 모듈 510은 인코딩 모듈 520과 통합된다. 즉, 암호화 코딩 모듈 530은 AES 암호화 알고리즘 및 LDPC 인코딩 알고리즘을 구현하도록 구성되는 전기적 처리 회로를 포함한다. 즉, 암호화 코딩 모듈 530은 암호화 모듈 510으로 128 비트 일반 텍스트(plaintext)를 수신하고, 10 라운드(Nr=10)에 따라 일반 텍스트 505a 사용하여 128 비트 암호화 텍스트 515를 생성한다. 그 후, 암호화 코딩 모듈 530은 672 비트 인코딩된 블록 525t를 생성하고, Tx BB 모듈 535에 인코딩된 블록 525t를 출력한다. 인코딩된 블록 525t는 일반 텍스트 데이터 505a의 암호화 인코딩된 표현이다.
저밀도 패리티 체크(LDPC: Low Density Parity Check) 코드들은 샤논의 한계(shannon limit)에 가까운 성능을 달성하는 능력을 갖는다(REF9 참조). 또한, LDPC 구조는 빠르고 효율적인 병렬 디코딩에 적합하다. 코드 복잡성을 감소시키는 주요 원동력은 순환 시프트 형태로 연속적인 Z개의 비트("리프팅 인자"로 지칭될 수도 있음)들을 그룹화하여 LDPC에 구조를 추가하는 준 순환(QC: Quasi-Cyclic) 코드를 사용하는 것이다. 패리티 계산은 인코딩 프로세스를 용이하도록 하기 위해 하삼각(lower triangular)(백 치환: Back Substitution) 방법에 따라 수행된다. 하삼각(백 치환) 방법에 따르면, 인코더 패리티 비트들은 현재 및 상부 행 방정식들에 기반하여 획득된다. REF8에 기술된 IEEE 802.11ad 표준(WiGig) 및 IEEE 802.15.3c 표준과 같은 원거리 통신 표준들은 그들의 물리적 계층 에러 제어 방식에 LDPC 코드들을 활용한다.
Tx RF 모듈 540은 안테나 545를 사용하여 많은 반송파 주파수 중 하나(예를 들어, 60기가헤르츠(GHz))에 전파를 전송하는 작은 전자 회로이다. Tx RF 모듈 540은 안테나 545와 결합되는데, 이는 안테나 545를 통해 광학 통신 채널 또는 RF 통신 채널과 같은 채널 550을 거쳐 무선으로 수신 장치 555에 인코딩된 블록(525t)을 전송하기 위함이다.
채널 550은 환경에 기반한 간섭에 취약하다. 그리고 이러한 간섭은 안테나 545에 의해 전송되는 인코딩된 블록 525t와 수신 장치 555의 안테나 560에서 수신되는 인코딩된 블록 525r이 다르게 되는 원인이 될 수 있다. 예를 들어, 채널 550에서의 간섭은, RF 스펙트럼 방출, RF 전파 방해(jamming), 비-네트워크 장치로부터의 전송, 오버랩핑 채널에서의 전송, 숨겨진 노드, 또는 하나의 채널을 공유하는 너무 많은 무선들로부터의 채널 혼잡으로 인해 오류들을 발생시킬 수 있다. 채널 550이 명확할 때, 안테나 545에 의해 전송되는 인코딩된 블록 525t는 안테나 560에서 수신되는 인코딩된 블록 525r과 동일하지만, 채널이 간섭을 가질 때(즉, 명확하지 않을 때)는 상이할 수 있다.
수신 장치 555는 인코딩된 블록 525r을 수신할 수 있는 수신 안테나 560, 수신 RF(Rx RF) 모듈 565, 수신 기저대역(Rx BB) 모듈 570 및 복호화 디코딩 모듈 575를 포함한다. 즉, 수신 장치 555는 복호화 디코딩 모듈 575을 형성하기 위해 연결되는 복호화 모듈 590 및 디코딩 모듈 580을 포함한다.
복호화 디코딩 모듈 575에서, 복호화 모듈 590은 디코딩 모듈 580에 통합된다. 즉, 복호화 디코딩 모듈 575는 AES 복호화 알고리즘 및 LDPC 디코딩 알고리즘을 구현하도록 구성되는 전기적 처리 회로를 포함한다. 복호화 디코딩 모듈 575는 디코딩 모듈 580로부터 672 비트 인코딩된 블록 525r을 수신하고, 수신된 672 비트 인코딩된 블록 525r을 사용하여 128 비트 암호화 텍스트 585를 생성한다. 그 후, 복호화 디코딩 모듈 575는 10 라운드(Nr=10)에 따라 128 비트 일반 텍스트 505b를 생성하고 128 비트 일반 텍스트 505b를 출력한다. 128 비트 일반 텍스트 505b는 일반 텍스트 505a의 복호화 디코딩된 표현이다. 즉, 128 비트 일반 텍스트 505b는 일반 텍스트 505a와 동일하다.
암호화와 에러 수정을 결합하는 다른 예로서, REF8은 암호화를 위해 에러 수정 코드를 사용하는 과정과, 보안을 위해 에러 수정에 사용되는 동일한 하드웨어를 활용하는 대수 코드들에 의한 공개 키 암호 체계를 사용하는 과정을 기술한다. REF8의 시스템에서 모든 사용자는 일반적인 보안 매개변수의 집합, n, k, t를 공유하는데, 여기서 GF(2m) 상의 디그리(degree) t의 각각의 기약 다항식(irreducible polynomial)에 대해 길이 n=2m의 2진법의 기약 Goppa 코드가 존재하고, 차원(dimension)은 상관 관계 k≥n-mt에 대응하며, 일반적인 보안 매개변수들의 집합은 속도 R=k/n을 갖는 t개 이하의 에러의 모든 패턴을 수정할 수 있다.
암호화와 에러 수정을 결합하는 다른 예로서, 공동 AES-LDPC 코드는 하나의 프리미티브(primitive)로 암호화 및 오류 수정을 결합하는 개인 키 암호 체계를 포함한다(REF81 참조). 라인달(Rijndael) 암호화(AES)와 같이, 공동 AES-LDPC 방식은 반복된다. 공동 AES-LDPC 암호화는 7 라운드로 이루어지는데, 처음 6 라운드는 6라운드를 갖는 AES 방법과 동일하고, LDPC 인코더 방식이 에러 수정을 위해 제 7 라운드의 끝에 첨부된다. 따라서, 공동 AES-LDPC 방식은 128 비트 일반 텍스트(plaintext)를 256 비트 암호화 텍스트(ciphertext)로 암호화하고, 코드율(rate) R=1/2 LDPC 코드를 제공한다. REF81에서의 방식과 같은 공동(joint) AES-LDPC 방식들에서, 마지막 4회의 AES 라운드는 LDPC 인코딩으로 대체된다. 공동 AES-LDPC 방식들의 특정 문제는 다음과 같다:
1) 에러 수정 LDPC 코드 구조는 128 비트 AES로 정렬(align)되지만, BER 성능을 크게 향상시킬 수 있는 더 높은 LDPC 블록 크기들을 사용하는 능력이 필요하다.
2) LDPC 코드 확산은 코드의 최소 거리에 기반하는데, 이는 k=128=43.5인 일반 텍스트 크기보가 훨씬 작다.
3) LDPC 코드는 선형 코드이고, 따라서 해커로부터의 모든 선형 공격에 취약하다. 즉, LDPC 코드의 선형성은 코드의 보안을 크게 감소시킨다. 감소된 라운드의 AES 128 암호화에 대해, 라운드 횟수가 Nr=6인 경우, 암호화된 암호화 텍스트는 Nr=10및 Rp=49을 특징으로 하는 AES-128 표준보다 보안이 훨씬 덜한 Rp=46의 최대 비트 전파율(propatation rate)를 갖는다.
공동(joint) AES-LDPC 방식은 충분한 성능과 함께 충분한 보안을 제공하지 않는다. 특히, 공동 AES-LDPC 방식은 제곱 공격(square attack)들에 대한 저항뿐 아니라 차분 및 선형 암호 분석에 대한 강한 저항을 갖는 강한 암호로서 작용하는 (AES와 결합하면서) LDPC 코드의 잠재적 강도를 실현하기 위한 랜덤성 때문에 높은 복잡성을 요구한다.
도 6은 본 발명의 실시 예들에 따른 공동 보안 어드벤스드 LDPC 암호화 코딩(JSALC: Joint Security Advanced LDPC Cryptcoding) 시스템을 도시한다. 도 6에 도시된 JSALC 시스템 600의 실시예는 단지 설명을 위한 것이다. 본 발명의 범위를 벗어나지 않는 한 다른 실시예들이 사용될 수 있다. 또한, 후술하는 바와 같이, 오류 수정과 암호화를 결합하는 전술한 예와 비교할 때, JSALC 시스템 및 방법들은 보안 레벨을 증가시키고 코드들의 BER을 감소시키면서 시스템의 전체 하드웨어 복잡성을 감소시킨다. 구체적으로 JSALC 시스템 및 방법들은 둘 다 적어도 AES 표준 암호화 방법만큼 높은 보안 레벨을 제공하고, 전술한 연결된 암호 코딩 방법들에 비해 감소된 복잡성을 가지면서, LDPC 코드와 같이 현재 사용되는 채널 코드의 BER 성능을 유지한다.
JSALC 시스템 600은 LDPC 코드를 기반으로 하는 공동 보안 어드벤스드 LDPC JSALC 암호화 코딩(JSALC: Joint Security Advanced LDPC Cryptcoding)이라 불리는 암호화 코딩 방법을 각각 구현하는 JSALC 송신기 601 및 JSALC 수신기 602를 포함한다. JSALC 암호화 코딩 방법은 두 부분, 즉 1) 공동 보안 어드벤스드 LDPC 암호화(JSALE: Joint Security Advanced LDPC Encryption)라 불리는 암호화 부분, 및 2) 보안 LDPC 채널 코딩(SLCC: security LDPC Channel Coding)이라 불리는 대응하는 채널 코딩 부분으로 구성된다. 즉, JSALC 시스템 600은 암호화/복호화 부분(즉, JSALE 부분) 및 채널 코딩/디코딩 부분(즉, SLCC 부분)을 포함한다. 따라서, 송신기 601은 JSALE LDPC 인코더 610, 경판정(hard decision) 버퍼 620, 및 SLCC 인코더 630을 포함한다. 수신기 602는 SLCC 디코더 640, 판정 버퍼 650, 및 JSALE LDPC 디코더 660을 포함한다. JSALC 송신기 601 및 JSALC 수신기 602의 하드웨어 구현은 JSALE 및 SLCC 베이스 H 행렬을 통합하여 복잡성을 감소시키고 하드웨어 재사용을 증가시킨다. 보다 구체적으로, JSALE LDPC 인코더 610/디코더 660 및 SLCC 인코더 630/디코더 640은 동일한 기본 H 행렬 구조를 공유하는데, 여기서 JSALE 인코더/디코더와 SLCC 인코더/디코더의 차이는 SLCC 또한 최종 ZpX256 비트 블록을 생성하기 위해 Zp 만큼 256 비트를 리프팅하는 제2 레벨 리프팅 인자(Zp)를 사용한다는 것이다. JSALE LDPC 인코더 610 및 디코더 660의 하드웨어 구현은 각각 도 9 및 도 10을 참조하여 보다 상세히 후술된다.
AES 표준과 동일하거나 높은 보안을 달성하기 위해, 모든 보안 시스템은 모든 차분 또는 선형 공격들로부터 보호하기 위한 비선형 함수(예를 들면, S-BOX), 모든 선택된 일반적 텍스트 공격으로부터 보호하기 위한 128 비트 이상의 키 입력, 및 49(즉, AES 표준의 확산 레벨) 이상의 저 복잡성 고 확산과 같은 특성을 가질 필요가 있다. 저 복잡성 고 확산 값은 라운드들 사이에서 고 확산(HD: High Diffusion) 함수를 기반으로 하는 라운드의 측정이다. JSALE LDPC 인코더 610 및 디코더 660은 전술한 특징들을 모두 통합하는 JSALE 암호화/복호화 방법을 구현한다.
JSALE LDPC 인코더 610은 일반 텍스트를 순차적으로 인코딩하는 준 순환(QC: Quasi-Cyclic) LDPC 계층화된 인코더를 사용하여 일반 텍스트를 암호화한다. "순차적으로"는 제1 행부터 마지막 행까지의 행 단위(row-by-row)를 의미한다. JSALE LDPC 인코더 610은 행들 사이에서 키 추가, 비선형 바이트 치환, 및 고 확산 동작들을 수행한다. JSALE LDPC 인코더 610은 도 8을 참조하여 보다 구체적으로 후술되는 H 행렬을 사용한다. H 행렬 패리티 부분은 저 복잡성 인코딩을 제공하는 하삼각(lower triangular)이다. 특정 실시 예들에서, 인코딩된 데이터는 최종 비율(즉, 유효율(Re))을 Re=R/(1-Rpunc)로 증가시키기 위해 펑처링율(Rpunc)로 펑처링(puncturing)된다. 는 펑처링율(Rpunc)의 보완율로 정의되고, 임을 유의한다.
일 예로서, JSALE LDPC 인코더 610은 128 비트 일반 텍스트 데이터 605a를 수신하고, 데이터 605a를 암호 코딩하며, 경판정 버퍼 620에 암호화 텍스트 615를 출력한다. 암호화 텍스트 615는 128/Re로 표현되는 길이를 갖는다. 경판정 버퍼 620은 Zp x Rs x 256로서 표현되는 비트 길이를 갖는 JSALE 인코딩된 데이터 블록 625를 출력한다. 표 1은 SLCC 코드율(Rs)을 기반으로 하여 SLCC 인코더 630에 의해 출력되는 비트의 수 사이의 관계를 요약한다. 또한, SLCC 인코더 630은 JSALE 인코딩된 데이터 625를 인코딩하고, SLCC 인코딩된 데이터 블록 635t를 출력한다. SLCC 인코딩된 데이터 블록 635t는 Zp x 256 비트로 표현되는 비트 길이를 갖는다. JSALC 송신기 601은 JSALC 수신기 602에 데이터 635t를 전송한다. 아래의 표 1은 128 비트 일반 텍스트 입력을 기반으로 하여 JSALC 송신기로부터 출력되는 최종 비트 수와 Rs 값들 사이의 관계를 나타낸다.
Rs | Zp x Rs x 256 비트 |
1/2 | 128 |
5/8 | 160 |
3/4 | 192 |
13/16 | 208 |
JSALE LDPC 디코더 660은 역순으로 순차적으로 암호화 텍스트를 디코딩하는 준 순환(QC: Quasi-Cyclic) LDPC 계층화된 디코더를 사용하여 암호화 텍스트를 복호화한다. 디코더 660에서, “순차적으로”는 마지막 행에서 제 1 행까지 행 단위(row-by-row)를 의미한다. JSALE LDPC 디코더 660은 행들 사이에서 키 추가, 역 고확산, 및 역 비선형 바이트 치환 작업들을 수행한다. JSALE LDPC 디코더 660은 JSALE LDPC 인코더 610가 사용하는 동일한 H 행렬을 사용한다.
일 예로서, JSALC 수신기 602는 JSALC 송신기 601로부터 데이터 635r를 수신한다. 데이터 635t가 명확한 채널을 통해 전송되는 경우에는 데이터 635t의 인코딩된 블록들은 SLCC 디코더 640에서 수신된 데이터 635r와 동일하지만, 채널 간섭이 있는 경우에는 상이할 수 있다. SLCC 인코딩된 데이터 635t의 블록들은 Zp x 256 비트로 표현되는 비트 길이를 갖는다. SLCC 디코더 640은 JSALE 인코딩된 데이터 635r를 디코딩하고, Zp x Rs x 256으로 표현되는 비트 길이를 갖는 JSALE 인코딩된 데이터 645의 블록들을 출력한다. 판정 버퍼 650은 SLCC 디코더 640로부터 JSALE 인코딩된 데이터 블록 645를 수신한다. 또한, 표 1의 관계들이 SLCC 디코더 640에 적용된다. 판정 버퍼 650은 JSALE LDPC 디코더 660에 암호화 텍스트 655를 출력한다. 특정 실시 예들에서, 판정 버퍼 650은 JSALE LDPC 디코더 660에 다중 비트 정확성 LLR입력을 생성하는 연판정 버퍼이다. 특정 실시예들에서, 판정 버퍼 650은 JSALE LDPC 디코더 660에 단일 비트 정확성 LLR 입력을 생성하는 경판정 버퍼이다. LLR 입력이 단일 비트 정확성인지 다중 비트 정확성인지를 기반으로 하여, JSALE 복호화 처리는 각각 하드 또는 소프트(경(hard) 또는 연(soft))일 수 있다. 암호화 텍스트 655는 128/Re로서 표현되는 길이를 갖는다. JSALE LDPC 디코더 660은 128 비트 일반 텍스트 데이터 605b를 복구하여 출력하기 위해 암호화 텍스트 655를 복호화 디코딩한다. 128 비트 일반 텍스트 605b는 일반 텍스트 605b가 일반 텍스트 데이터 605a와 동일한 일반 텍스트 데이터 605a의 복호화 디코딩된 표현이다.
특정 실시예들에서, 송신기 601은 최종 전송 코드율(Re)을 Re=R/(1-Rpunc)까지 증가시키기 위해 펑처링율(Rpunc)으로 H 행렬을 펑처링하여 수신기 602에 전송되는 암호화 텍스트 615의 비트 수를 감소시킨다. 즉, 송신기 601은 수신기 602와 공통인 펑처링 패턴에 따라 H 행렬을 펑처링한다. 암호화 텍스트 615의 비트 길이를 감소시키기 위해, 수신기 602는 송신기 601와 공통 펑처링 패턴 및 공통 H 행렬 순환 시프트 값들을 공유한다. 따라서, 수신기 602는 REF34에 기술된 신뢰 전파(BP: Belief Propagation) 반복 디코딩 방법들 중 하나를 사용하여 데이터를 디코딩할 수 있다. 또한, 수신기 602는 각각의 반복에서 마지막 행부터 역으로 제1 행까지 역순으로 데이터 635r을 복호화/디코딩할 수 있다. 또한, 펑처링 패턴이 키일수 있기 때문에, 전송되는 코드율을 Re=dR/(1-Rpunc)로 약간 감소시킴으로써, 송신기 601은 수신기 602에 채널을 통해 비트들의 더미 셋을 전송할 수 있는데, 여기서 d→1은 더미율(dummy rate)을 의미한다. 공통 펑처링 패턴이 수신기 602가 더미 비트들의 위치를 알고, 데이터를 제대로 복호/디코딩할 수 있도록 하기 때문에 수신기 602는 더미 비트들을 펑처링한다. 상이한 펑처링 패턴들이 높은 코드율을 제공하기 위해 적용될 수 있다는 것을 유의한다. 그러나, 데이터를 제대로 디코딩하기 위해서 JSALE LDPC 디코더 660은 더 높은 코드율을 더 많은 반복 횟수로 수행해야 할 것이다. 디코더의 반복 회수가 선형적으로 증가하는 것은 전체 복호화 복잡성을 증가시킨다. 그리고 LDPC 디코더의 반복 횟수 증가는 암호 분석 복잡성을 선형적으로 증가시킨다. 또한, JSALE LDPC의 최대 우도(ML: Maximum-Likelihood) 디코딩은 매우 복잡한 O(2128)이기 때문에, 모든 브루트 포스(brute force) ML 암호 분석은 비실용적이다.
다른 암호화 코딩 방법들과 달리, JSALC 시스템 600의 JSALE 암호화 부분은 무선 시스템의 채널 코딩을 대체하지 않는다. JSALE는 특정 무선 채널 특성에 맞게 조정되는 무선 시스템 채널 코더(SLCC)와 함께 작업하는 암호화 계층의 일부이다. 결과적으로, JSALE 방법은 모든 종래의 AES 128 시스템들보다 4배 높은 보안 레벨을 가지며, 전체 데이터율에 영향을 전혀 미치지 않거나 최소한의 영향(≤20%)을 미친다. JSALE 방법이 전체 데이터율에 미치는 영향의 정도는 JSALE의 에러 복원력 요건에 의존한다. 또한, 프레임 에러율(FER: Frame Error Rate)에서 Eb/N0<2dB를 가지는 보안 LDPC 채널 코드(SLCC) FER/BER 성능 제 1 표준은 랜덤 코딩 바운드(RCB: Random Coding Bound)로부터 단지 1dB(decibel)를 갖는 10-2와 동일하다. 기술적 장점으로, JSALC 시스템 600은 JSALE 및 SLCC 부분 모두에 대해 LDPC 인코더/디코더 하드웨어 리소스들을 재사용함으로써, JSALC 시스템 하드웨어가 도 5a 및 도 5b의 암호화 코딩 모듈 530 및 복호화 디코딩 575들을, 다른 AES/LDPC 연결된 시스템들보다 적은 전력을 소비하고 전반적으로 더 작은 영역을 소비하도록 야기한다. 요컨대, JSALC 시스템은 다른 암호 코딩 시스템들보다 높은 보안 암호화 방법이고, 허용 가능한 채널 코드 BER/FER 성능을 유지한다.
도 7a는 본 발명의 실시예들에 따른 JSALC 인코딩 방식과 관련된 패리티 체크 H 행렬을 도시한다. 예를 들어, JSALE LDPC 인코더 610 및 디코더 660은 암호화 코딩 함수들을 수행하기 위해 H 행렬 700을 사용할 수 있다. 도 7a에 도시된 H 행렬 700의 실시 예는 단지 설명을 위한 것이다. 본 발명의 범위를 벗어나지 않는 한, 다른 실시 예들이 사용될 수 있다.
H 행렬 700은 심볼 당 336개의 부반송파(QPSK에 대한 이중 비트)의 WiGig OFDM 크기를 기반으로 하는 WiGig 표준에 부합하는 1/2 코드율의 H 행렬이다. 또한, 1/2 코드율의 H 행렬은 672개의 프레임/비트(bpf)의 전송을 나타내는 672 x 336 행렬이다. 구체적으로, H 행렬 700은 행 당 672개의 비트 및 열 당 336 개의 비트를 가지며, 따라서 각각의 프레임 전송은 H 행렬 700의 행에 해당한다. 다른 실시예 들에서, H 행렬은 5/8, 3/4 또는 13/16의 코드율(R)과 같이 모든 적합한 비율을 가질 수 있다. (1,3)행, (2,4)행, (5,7)행 및 (6,8)행은 디코딩할 수 있는 LDPC 비율 1/2의 4 계층을 만드는 상호 배타적인 행의 쌍들이다. REF14는 LDPC 코드 및 디코더 아키텍처 및 해당 구현 복잡성에 관해 더 상세히 기술한다.
또한, 도시된 H 행렬 700은 42의 리프팅 인자(Z)와 672 비트의 블록 크기(N)를 갖는다. 본 발명과 함께 사용하기 위한 H 행렬의 다른 실시 예들은 다른 블록 크기 및 리프팅 인자들을 가질 수 있다. 리프팅 인자는 순환 시프트 형태로 그룹화되는 연속적인 비트들의 수(Z)를 표시한다. 즉, 리프트 인자 Z=42는 블록 크기(N=672)가 (N/Z)=(672/42)=16인 비트들의 Z 그룹을 형성하도록 블록 코드가 42개의 비트로 그룹화됨을 표시한다. 비트들의 Z 그룹의 각각은 H 행렬 700이 16개의 열을 포함하도록 열을 형성한다. 처음 8개의 열 705는 시스템(또는 데이터) 비트를 나타내고, 두 번째 8개의 열 710은 패리티 비트(또는 여분의 비트)를 나타낸다. 이와 같이, H 행렬 700을 사용하는 각각의 프레임 전송은 336개의 시스테매틱 비트(systematic bit) 및 336개의 패리티 비트를 포함한다. Z 리프팅 인자는 순환 시프트 형태로 행렬 당 비트의 수를 정의한다. 결과적으로, H 행렬 700의 16개의 열 각각은 크기 Z×Z 비트를 가지는 다수의 단위 행렬(identity matrix)들을 포함하고, 각각의 단위 행렬은 H 행렬 700의 행을 형성한다. H 행렬 700에서 행의 수는 8((열 당 비트 수/z)=(336/42)=8로부터 도출되거나, R x (행의 수) = (1/2) x 16 = 8로부터 도출되는) 일 수 있다. H 행렬 700에서 각각의 행은 계층을 형성한다. 8개의 행들은 0부터 7까지 순차적으로 인덱스(index)되거나 넘버링되고, 8개의 계층들은 1부터 8까지 인덱스된다.
각각의 숫자는 크기 ZxZ 비트의 단위 행렬의 순환 시프트인 부분행렬을 나타낸다. '-1' 값은 제로 행렬을 나타낸다. 따라서, '-1' 값은 위치가 계산에 사용되지 않는다는 것을 지시한다. 나머지 값들(즉, '-1'이 아닌 값들을 갖는 값들)은 부분행렬을 나타내는 위치 값들이다.
예를 들어, 첫 번째 행(행 0)에서, 첫 번째 열(열 0)은 숫자 40를 보이며, 이는 첫 번째 42개 비트들이 첫 번째 42개의 패리티 방정식들에서 40개의 비트만큼 오른쪽으로 순환적으로 시프트되고, 나머지 비트들에 대하여도 그러함을 의미한다. 도 7b는 숫자 40으로 표현되는 부분행렬을 도시하고, 중앙의 30개 행들은 생략되었다. 구체적으로, 숫자 40으로 표현되는 부분행렬에서, 행들은 0부터 41까지 인덱스되고, 열들은 0부터 41까지 인덱스되며, 첫 번째 행은 열 인덱스 40을 갖는 열에서 "1"의 비트 값을 포함하는 것을 제외하고, 모두 제로를 포함한다. 또한, 숫자 40으로 표현되는 부분행렬에서, 두 번째 행(행 1)은 열 인덱스 41을 갖는 마지막 열에서 "1"의 비트 값을 포함하는 것을 제외하고, 모두 0을 포함한다. 또한, 숫자 40으로 표현되는 부분행렬에서, 세 번째 행(행 2)은 열 인덱스 0을 갖는 첫 번째 열에서 "1"의 비트 값을 포함하는 것을 제외하고, 모두 0을 포함한다. 이 패턴은, 마지막 행(행 41)이 열 인덱스 39를 갖는 40 번째 열에서 "1"의 비트 값을 포함하는 것을 제외하고, 모두 0을 포함하도록 부분행렬의 남아있는 열들에 대해 계속된다.
다른 예로서, 도 7c는 숫자 18로 표현되는 부분행렬을 도시하는데, 여러 행들이 생략되었다. H 행렬 700에서, 패리티 비트들의 첫 번째 열(즉, 열 8)에서 제1 계층에 배치된 부분행렬은 숫자 18로 표현된다. H 행렬 700의 패리티 부분 710의 제1 계층에서, 첫 번째 열을 제외한 모든 열은 0 부분행렬을 포함한다. 숫자 18로 표현된 부분행렬은 시스테매틱 비트(systematic bit)들의 제1 계층에 대해 XOR 함수를 적용함으로써 생성되는 패리티 비트들을 포함한다. 구체적으로, XOR(40, 38, 13, 5)은 숫자 18로 표현된 부분행렬의 첫 번째 행의 열 18의 비트값을 생성한다. XOR(41, 39, 14, 6)은 숫자 18로 표현된 부분행렬의 첫 번째 행의 열 19의 비트값을 생성한다. 계층 1 내에서 Z개의 행 각각의 시스테매틱 비트 705에 XOR 함수를 적용하는 이러한 프로세스는 다음 계층이 처리될 때까지 반복된다.
후속 계층인 계층 2는 이전 계층인 계층 1이 부분행렬을 생성했던 동일한 열에서 제1 부분행렬을 생성한다. 계층 2에서, 숫자 2로 표현된 부분행렬은 시스테매틱 비트(systematic bit) 705의 제2 계층과 이전 계층 패리티 비트들 둘 다에 XOR 함수를 적용하는 것으로부터 생성되는 패리티 비트들을 포함한다. 구체적으로, XOR(34, 35, 27, 30, 18)은 숫자 2로 표현되는 부분행렬의 제1 행의 열 2의 비트값을 생성한다. 비트값들이 숫자 2로 표현되는 부분행렬의 전체에 대해 생성된 후에, 계층 2는 숫자 2로 표현되는 부분행렬을 사용하여 계층 2의 다음 열에서 제2 부분행렬을 생성한다. 구체적으로, 계층 2에서, XOR(34, 35, 27, 30, 2)은 숫자 1로 표현되는 부분행렬의 제1 행의 열 1의 비트값을 생성한다. 패리티 비트들의 이전 계층과 동일한 열에서 패리티 비트들의 제1 부분행렬을 생성하고 나서 동일한 계층의 이전 열을 사용하여 다음 열에서 패리티 비트들의 제2 부분행렬을 생성하는 이러한 프로세스는 모든 계층이 처리될 때까지 반복된다.
도 8은 본 발명의 실시예들에 따른, 기본 코드율(1/2)보다 작은 펑처링율을 갖는 JSALE LDPC 인코더 610/디코더 660에 의해 구현되는 JSALE 암호화 프로세스 801에 대한 LDPC H 행렬 800을 도시한다. 도 8에 도시된 JSALE 프로세스 801의 실시 예는 단지 설명을 위한 것이다. 본 발명의 범위를 벗어나지 않는 한 다른 실시 예들이 사용될 수 있다.
H 행렬 800은 도 7a의 H 행렬과 동일하거나 유사할 수 있다. H 행렬 800의 각각의 부분행렬은 해당 행 인덱스(i) 및 열 인덱스(j)에 따라 "Si,j"로 라벨링되고, 행 인덱스 및 열 인덱스들은 각각 0부터 15까지의 정수들의 집합이다. 예를 들어, H 행렬 800의 제1 행(행 0)에서, 제1 열(열 0)은 "S0,0"으로 라벨링되고, H 행렬 700의 계층 1에서 부분행렬 "40"을 나타낼 수 있다. 마찬가지로, 부분행렬 "S0,8", "S1,8", "S1,9" 및 "S2,10"은 H 행렬 700의 계층 1의 부분행렬 "18", H 행렬 700의 계층 2의 부분행렬 "2", H 행렬 700의 계층 2의 부분행렬 "1", 및 H 행렬 700의 계층 3의 부분행렬 "41"을 각각 나타낼 수 있다. QC-LDPC 블록 크기는 속도 R=1/2, 리프팅 인자 Z=16, 16개의 열, 및 8개의 행을 갖는 256 비트의 LDPC 블록 H 행렬로부터 도출되고, 열의 개수는 (비트의 개수/리프팅 인자)=(256/16)=16으로 표현되고, 행의 개수는 (열의 개수)xR=16x(1/2)=8로 표현된다.
JSALE LDPC 인코더 610은 시스테매틱 비트(systematic bit)의 각각의 열에 대한 입력 단자(input terminal)와 같은, 복수의 입력 단자를 통해 128 비트 일반 텍스트 605a를 수신하고, 각각의 입력 단자는 병렬로 데이터의 16 비트를 수신한다. H 행렬 800의 제1 계층을 생성하기 위해, JSALE LDPC 인코더 610은 제1 키 802a를 사용하여 키 추가를 수행하고, 이후 비선형 바이트 치환(S-BOX)을 수행하며, 이후 128 비트 일반 텍스트 605a을 사용하여 고 확산(HD) 작업들을 수행한다. 다음, JSALE LDPC 인코더 610은 부분행렬 "S0,8"에 대한 패리티 비트들을 생성한다. 즉, JSALC 송신기 601은 {"S0,0", …, "S0,7"}에 JSALE 방법을 적용하는 일반 텍스트 605a를 암호화한다.그리고 SLCC 인코더 630은 SLCC 방법을 사용하여 계층 1의 패리티 부분을 첨부하여 계층 1을 채널 코딩한다.
H 행렬 800의 각각의 후속 계층을 생성하기 위해, JSALE LDPC 인코더 610은 행들 사이에서 각각의 라운드에 대해 점진적으로 더 큰 키 802b 내지 802o를 사용하는 키 추가, S-Box 작업, 및 HD 작업을 수행한다. 즉, H 행렬 800의 행 i를 생성하기 위해, JSALE LDPC 인코더 610은 이전의 행 데이터 {"Si-1,0"…"Si-1,7+i"}에 i번째 키 802b 내지 802o를 적용하여 키 추가를 수행하는데, 여기서 i는 현재의 라운드(행)에 대한 인덱스이다. 구체적으로, H 행렬 800의 제2 계층을 생성하기 위해, JSALE LDPC 인코더 610은 행 0 데이터 {"S0,0"…"S0,8"}에 제2 키 802b(행 1 키)를 적용하는 키 추가를 수행하는데, 여기서 제2 계층에 대한 i=1이다. 제2 키 802b는 비트의 개수에 의해 제1 키 802a)보다 길다. 각각의 키 추가 단계(802b 내지 802o) 후, 이전의 행 데이터 {"Si-1,0"…"Si-1,7+i"}는 비선형 S-Box 함수에 공급된다. 이후, 이전의 행 데이터 {"Si-1,0"…"Si-1,7+i"}는 4 비트 확산을 보장하는 고 확산(HD) 함수 블록으로 들어간다. 이후, SLCC 인코더 630 채널은 현재의 라운드 데이터 {"Si,0"…"Si,7+i"}를 코딩한다. 반복 프로세스는 모든 Nr=8 라운드(행) 내내 계속된다. 이 시점에서, JSALC 송신기 601은 JSALC 수신기 602에 256 비트 암호화 텍스트 805를 전송한다. 암호화 텍스트 805의 256 비트는 보안된 키 교환을 사용하여 비밀 키로서 전송된다. 256 비트 스크램블러(scrambler)에 대한 시드 또는 XOE 256 비트 인코딩된 암호화 텍스트 805 출력은 같은 키를 사용한다. 송신기 601이 256 비트 암호화 텍스트 805를 전송하는 실시 예들에서, JSALE LDPC 인코더 610으로부터의 출력 데이터 615는 암호화 텍스트 805의 256 비트이다. 송신기 601이 256 비트보다 적은 암호화 텍스트 805를 전송하는 실시 예들에서, 출력 데이터 615는, JSALE LDPC 인코더 610에 의해 생성된 암호화 텍스트 805의 256 비트가 출력 데이터 615로서 JSALE LDPC 인코더 610로부터 출력되기 전에 펑처링되기 때문에, 256 비트 인코딩된 암호화 텍스트와 805 동일하지 않다. 특정 실시예들에서, 512 비트(16x8x4=512로 도출됨, 0000은 사용안함을 지시함) 중에서 단지 최대 256(8x8x4=256) 비트가 0이 아니다(하삼각 및 Wr=8).
특정 실시 예들에서, 암호화 키의 크기는 128 비트와 같이 일정하다. 예를 들어, 제1 계층에 대한 후속 계층들에 대해, 키 802b 내지 802o가 행 당 동일한 수의 열(즉, 128 비트)에 추가되도록 이전 계층으로부터의 시스템 데이터 {"Si-1,0"…"Si-1,7"}가 펑처링율(Rpunc)로 펑처링된다. 제1 키 802a는 제1 라운드(라운드 i=0)에 대해 128 비트의 키 길이를 갖는다.
JSALE 암호화 QC-LDPC H 행렬 순환 시프트 값들은 비밀로 유지될 수 있거나, JSALC 암호 코딩된 데이터를 수신하도록 의도되지 않은 장치들로부터 보안을 유지할 수 있다. 또한 펑처링 패턴이 비밀로 유지될 수 있다. 암호화 키는 보안 채널을 통해 송신기 601와 수신기 602 사이에 전달된다. 암호화 키의 크기는 128 비트 내지 256 비트 사이에서 달라진다. 예를 들어, 제1 계층에 대한 후속 계층들에 대해, 증가하는 키 크기가 H 행렬의 패리티 부분에 추가되고, 키 길이는 행 당 점진적으로 증가한다. 제1 키 802a는 제1 라운드(라운드 i=0)에 대해 128 비트의 키 길이를 갖는다.
도 9는 본 발명의 실시예들에 따른 JSALE LDPC 인코더 610의 하드웨어 구현의 흐름도를 도시한다. 도 9에 도시된 인코더 610의 실시예는 단지 설명을 위한 것이다. 본 발명의 범위를 벗어나지 않는 한, 다른 실시 예들이 사용될 수 있다.
도 9 및 도 10의 JSALE 암호화/복호화 흐름도는 Rpunc=1/2(Re=1), Nr=8인 경우에 대한 암호화/인코딩 및 복호화/디코딩 예들을 각각 도시한다. 각각의 LDPC 인코딩 행 1≤i≤8에서, 인코딩된 데이터가 새로운 패리티 열에 의해 첨부된다. 인코딩된 데이터는 이후 다음 키 추가 전에 열 1≤i=8에 의해 펑처링되어, 128 비트 기반으로서 전체 프로세스의 유지를 제공한다. Rpunc=1/2(즉, Re=1)인 경우, JSALE 복호화/디코딩 하드웨어는 마지막 행에서 제1 행까지 암호화의 역 순서로 처리한다. 복호화/디코딩은 경 판정으로서 처리될 수 있다. Rpunc=1/2(Re=1) JSALE 암호화의 장점은 일반 텍스트를 복호화하여 복구하는 데 단지 한번의 LDPC 디코딩 반복만을 요구한다는 것이다. Rpunc=1/2(Re=1)에서 처리의 단점은 에러 복원력이 없다는 것이다. 그러나, 명확한 채널을 통한 전송들과 같은 특정 구현들에서, 에러 복원력은 단점이 아닐 수 있는데, 이는 높은 유효율(Re=1)와 같은 기술적 장점을 가지기 때문이다.
JSALE LDPC 인코더 610은 도 8을 참조하여 전술한 JSALE 암호화 프로세스 801을 구현한다. JSALE LDPC 인코더 610은 키 추가 계층 처리 블록 905a, 905b, S-Box 처리 블록 910, HD 처리 블록 915, 인코딩 블록 920, 및 열 펑처링 처리 블록 925를 포함한다. 편의를 위해, 본 발명의 실시 예들에서, 바이트 치환 블록 및 S-Box LUT는 "S-BOX"로서 함께 언급된다. 구성 요소들(905a, 905b 및 910)은 도 4a의 AES 표준 암호화 블록의 각각의 구성 요소들(411a, 411b 및 412)과 동일하거나 유사할 수 있다는 것을 유의한다.
제1 라운드에서, 행 키 인덱스(i)는 0으로 설정된다. 키 추가 계층 905a는 128 비트 일반 텍스트 605a를 수신하고, 일반 텍스트 605a 및 키 802a에 XOR 함수를 적용하여 일반화 텍스트 605a에 제1 키 802a(행 키 0)를 추가하고, 데이터 930의 128 비트를 출력한다. 예를 들어, 데이터 930은 도 4a에 도시된 암호화 모듈(표준 AES) 410의 키 추가 모듈 411a로부터 출력되는 데이터 416a와 유사할 수 있다. 데이터 930의 128 비트를 수신하는 단계에 대응하여, S-BOX 910은 S-BOX LUT로부터 해당 128 비트 데이터 935를 비선형적으로 출력한다. 예를 들어, S-BOX 910과 관련된 S-BOX LUT는 도 4a에 도시된 LUT 413와 유사할 수 있다. 또한, 128 비트 데이터 935는 암호화 모듈(표준 AES) 410의 바이트 치환 블록 412로부터 출력되는 데이터 417와 유사할 수 있다. 128 비트 데이터 935를 수신하는 단계에 대응하여, HD 블록 915는 열 순열(column permutation)에 따라 열들을 섞는 49 또는 그 이상의 HD 값을 갖는 저 복잡성 고 확산 함수를 적용하고, 128 비트 데이터 940을 출력한다. 이러한 제1 라운드의 경우, 128 비트 데이터 940은 H 행렬 800의 계층 1의 시스템 부분, 즉 {S0,0 … S0,7}을 나타낸다. 128 비트의 데이터 940을 수신하는 단계에 대응하여, 인코더 920은 데이터 940의 128 비트 및 H 행렬 700을 기반으로 하여 16개의 패리티 비트(즉, 부분행렬 S0,8)를 생성하고, 128 비트 데이터 940에 새롭게 생성된 패리티 부분행렬 S0,8을 연결시켜, 144 비트 데이터 945를 출력한다.
열 펑처링 블록 925가 없는 인코더 610의 실시 예들에서, 144 비트 데이터 945가 제1 라운드, 즉 {S0,0 … S0,8}의 출력이다. 다음 라운드(즉, 제2 라운드)는 144 비트 암호 코딩된 데이터 945를 수신하는 키 추가 계층 905b에서 시작하고, 하나 만큼(즉, i++) 행 키 인덱스를 증가시키며, 암호 코딩된 데이터 945에 다음 키 802b(행 키 i)를 추가하여 암호 코딩의 제2 라운드를 처리하는 S-BOX 910에 데이터 955의 144 비트를 출력한다. 즉, 펑처 블록 925가 없는 인코더 610의 실시 예들에서, 인코더 610은 SLCC 인코더 630이 암호화 텍스트 615의 모든 비트에 대해 인코딩된 블록 635t의 2 비트를 생성하기 때문에, Re=1/4의 유효 코드율에 대응하여 수신되는 일반 텍스트 데이터 605a의 모든 비트에 대해 2 비트 암호화 텍스트 805를 생성한다. 인코더 610이 펑처링하지 않는 경우, 보완 펑처링율()은 H 행렬의 기본 코드율(R)보다 작고, 기본 코드율보다 작은 비펑처링 유효 코드율(Re)(Re<R)을 제공한다.
열 펑처링 블록 925를 갖는 인코더 610의 특정 실시 예들에서, 제1 라운드의 출력은 열 펑처링 블록 925로부터 출력되는 데이터 950이다. 열 펑처링 블록 925는 송신기 601이 펑처링율(Rpunc)을 기반으로 하여 (1≥Re≥1/2)의 범위 내에서 유효 코드율(effective code rate)을 조정할 수 있도록 한다. 즉, 인코더 610은 H 행렬 700 기본 코드율(R=1/2)에 따라 수신되는 일반 텍스트 데이터 605a의 모든 비트에 대해 2 비트 암호화 텍스트 805를 생성한다(즉, R은 최종 유효 코드율(Re)과 구별된다). 열 펑처링 블록 925는 암호화된 데이터 945로부터 비트들의 부분 집합 또는 일부를 펑처링하거나 그렇지 않으면 제거함으로써, SLCC 인코더 630이 256 비트 암호화 텍스트 805a 중에서 펑처링된 비트들의 부분집합을 수신하는 것을 방지한다. SLCC 인코더 630은, 펑처링되고 감소된 길이의 암호화 텍스트 615의 모든 비트에 대해, 인코딩된 블록 635t의 1/R개의 비트(즉, Rs=1/2에 대해 2 비트)를 생성한다. 펑처링된 암호화 텍스트 615는 256 비트 미만인 비트 길이를 갖기 때문에, 인코딩된 블록 635t는 [256>(ZpxRsx256)≥128]의 범위 내에 다수의 비트를 포함한다. 제1 라운드에서, 열 펑처링 블록 925는 출력 데이터 945를 수신하고, 열 인덱스(j)를 0으로 설정하며 열 j를 펑처링하여 펑처링된 데이터 650을 출력한다. 펑처링된 데이터 950은 비트들의 (Rpunc x 128)의 비트 길이를 가지는데, 예를 들어, Rpunc=8/9이면 데이터 950은 128 비트의 비트 길이를 갖는다. 인코더 610의 열 펑처링 블록 925는 1보다 작고 H 행렬의 기본 코드율(R)과 크거나 같은 보완 펑처링율()을 구현하는데, 이로 인해 1보다 작고 기본 코드율보다 큰 부분 펑처링 유효 코드율을 제공한다.
열 펑처링 블록 925를 갖는 인코더 610의 특정 실시 예들에서, 다음 라운드(즉, 제2 라운드)는 키 추가 계층 905b에서 시작한다. 제1 라운드 이후의 라운드들을 처리하기 위해, 키 추가 계층 905b는 펑처링된 128 비트 데이터 950의 비트 (Rpunc x 128)개를 수신하고, 행 키 인덱스를 하나씩(즉, i++) 증가시킨다. 그리고 키 추가 계층 905b는, 128 비트 데이터(950)에 다음 키 802b(행 키 i)를 추가하고, 암호 코딩의 제2 라운드를 처리하기 위해 S-BOX 910에 데이터 955의 128 비트를 출력한다. 즉, 펑처링 블록 925를 포함하는 인코더 610의 실시 예들에서, 인코더 610은 수신되는 일반 텍스트 데이터 605a의 모든 비트에 대해 암호화 텍스트 805의 2 비트 미만을 생성한다. 이는 1≥Re>1/2의 범위에서 유효 코드율에 대응하는데, SLCC 인코더 630은 암호화 텍스트 615에서 모든 비트에 대해 인코딩된 블록 635t의 1/R개의 비트를 생성하기 때문이다.
열 펑처링 블록 925는 공통인 펑처링 패턴을 디코더 660에 저장한다. 송신기 601와 수신기 602가 모두 동일한 일반 텍스트 데이터 605a에 대해 동일한 펑처링 패턴을 사용하는 한 다양한 펑처링 패턴들이 사용될 수 있다.
HD 915 함수는 유동성이 있고, AES에서의 믹스컬럼(mixcolumn)보다 간단한 단순 선형 이진 연산들을 통해 계산될 수 있다(REF7 참조). 특정 실시 예들에서, HD 915는 비-이진(non-binary) 연산을 적용할 수 있다. HD 915 함수에서, 코드의 최소 거리로부터 도출되는 256 비트 LDPC의 자연 확산이 JSALE의 전체 확산 계산에 추가된다. 256 비트 LDPC의 자연 확산은 dmin≥16=42하도록 설계될 수 있다. 따라서, 8개의 행에 대한 전체 JSALE 확산은 49의 AES-128 확산보다 4배 높은 Rp=4842=410이다. JSALE 방법을 사용한 결과, 암호화의 보안 레벨은 Rp=410을 갖는 AES-128보다 훨씬 높게 증가하였다. 준 순환 LDPC 행 인코딩 프로세스는 시프트로우(shiftrow) 블록 414를 대체한다.
도 10은 본 발명의 실시예들에 따른 JSALE LDPC 디코더 660의 하드웨어 구현의 흐름도를 도시한다. 도 10에 도시된 디코더 660의 실시 예는 단지 설명을 위한 것이다. 본 발명의 범위를 벗어나지 않는 한, 다른 실시 예들이 사용될 수 있다.
JSALE LDPC 디코더 660은 두 개의 키 추가 계층 1005a 및 1005b, 디코딩 블록 1010, 열 펑처링 블록 1015, 역 HD 블록 1020, 및 역 S-Box 1025를 포함한다. JSALE LDPC 디코더 660은 순차적으로 암호화 텍스트 655를 디코딩하는 준 순환(QC) LDPC 계층화된 디코더를 사용하여 128 비트 암호화 텍스트 655를 복호화한다. JSALE LDPC 디코더 660은 행들 사이에서 키 추가 계층 1005a, 역 고확산 1020, 및 역 비선형 바이트 치환 작업 1025들을 수행한다. JSALE LDPC 디코더 660은 JSALE LDPC 인코더 610이 사용하는 동일한 H 행렬을 사용한다. JSALE LDPC 디코더 660은 AES-128, AES-192, 및 AES-256과 같은 복수의 키 길이들을 지원한다.
보다 구체적으로, 디코더 660은 키 추가 계층 1005a에서 제1 라운드(라운드 Nr) 동안 128 비트의 암호화 텍스트 655을 수신한다. 여기서 128 비트의 암호화 텍스트 655는 H-행렬 800의 마지막 계층의 패리티 비트들을 복구하기 위하여 역 XOR 함수와 같은 함수를 사용하여 암호화 텍스트 655에 상기 행 키 Nr을 적용한다. 여기서 H-행렬은 128-비트 데이터 1030는 디코딩 블록 1010에 출력된다.
JSALE LDPC 디코더 660은 에러 정정을 위해 SLCC 디코더 640의 출력으로부터 연 판정 로그 우도비(LLR: Log Likelihood Ratio) 데이터 655를 수신한다. JSALE LDPC 디코더 660에 입력되는 연 판정 LLR 입력은 다중 비트 정확성을 가지며, 소프트 입력 복호화 프로세스는 1보다 작은 유효 코드율(Re<1)을 제공한다. 또한, 송신기 측에서의 에러 추가는 수신기에서 펑처링될 것이다. 따라서, 키 추가 계층 1005a 및 1005b, 역 S-Box 1025, 및 역 HD 선형 함수 1020이 소프트 데이터 655에서 처리되는 동안, 모든 펑처링된 비트는 모두 "0"(중간 값)으로 설정된다. 를 갖는 역 S-Box 1025 복호화(S-1) 입력의 LLR은 수학식 1로 표현될 수 있다.
도 11은 본 발명의 실시 예들에 따른 기본 코드율(1/2)과 동일한 펑처링율을 갖는 JSALE LDPC 인코더 610/디코더 660에 의해 구현되는 JSALE 암호화 프로세스 1101에 대한 LDPC H 행렬 1100을 도시한다. 도 11에 도시되는 JSALE 프로세스 1101의 실시예는 단지 설명을 위한 것이다. 본 발명의 범위를 벗어나지 않는 한, 다른 실시예들이 사용될 수 있다. LDPC H 행렬 1100은 H 행렬 800과 유사하고, 도 7a의 H 행렬 700을 기반으로 할 수 있다.
JSALE 프로세스 1101은 펑처율이 (Re=1)의 최종 유효 코드율 및 속도 감소 없음에 대응하는 Rpunc=1/2인 특별한 경우이다. JSALE 프로세스 1101은 인코딩의 모든 행의 데이터를 펑처링하고, 암호화 프로세스 전반에 걸쳐 인코딩된 크기 128 비트를 유지한다. H 행렬의 기본 코드율과 동일한 보안 펑처링율()을 구현하는 JSALE 프로세스 1101은 1과 동일한 전체 펑처링 유효 코드율(Re=1)을 제공한다. 예를 들어, Rpunc = 1/2일 때, 또한 =1/2 및 Re=1이다.
도 12는 (Re=1)인 경우의 JSALE 암호화/복호화 H 행렬의 일 예를 도시한다. 엔트리(entry) 1230들은 인코딩 프로세스에서 배제된다. 암호화 프로세스는 행 i=1에서 시작한다. 인코더가 행 i=1의 시스템 데이터(열 1 내지 8)에 키 추가, S-Box 및 HD 작업들을 적용한 후, 생성된 결과는 패리티 열 9(참조번호: 1240)이다. 이후, 비순차적 펑처링 패턴에 따라, 제1 라운드의 끝에서, 열 j=3이 나머지 프로세스를 위해 펑처링된다.
인코딩의 다음 라운드는 행 i=2에 대한 데이터 중 "-1"이 아닌 엔트리가 키 추가, S-Box 및 HD 작업들을 통해 처리될 때 시작한다. 행 i=2 인코딩 데이터(열 1, 열 2 및 열 4 내지 9)는 처리되어 열 10 패리티(숫자 "14"로 표현되는 부분 행렬로서 도시됨)를 제공한다. 이후, 제1 라운드의 끝에서, 열 j=8은 (행, 열)쌍, 즉 (3,6), (4,2), (5,7), (6,1), (7,4), (8,5)에 대해 펑처링된다.
JSALE 프로세스 1101로부터 출력되는 128 비트 암호화 텍스트는 마지막 행(i=8)의 열 9 내지 열 16(8x16=128 비트)으로부터 출력된다. 복호화/디코딩 JSALE 프로세스 1101은 동일한 방법이지만 역 행 순서로 수행된다. 행 i=8 인코더는 열 5(숫자 "4"로 표현되는 부분행렬로 도시됨)를 산출하고 열 j=16를 펑처링한다. 행 i=7 인코더는 열 4(숫자 "10"으로 표현되는 부분행렬로 도시됨)를 산출하고 열 j=15를 펑처링한다.
도 13은 본 발명의 실시 예들에 따른 계층 Z의 H 행렬 방법의 일 예를 도시한다. 계층 Z의 H 행렬 방법 1300은 단지 설명을 위한 것이다. 본 발명의 범위를 벗어나지 않는 한, 다른 실시 예들이 사용될 수 있다.
계층 Z의 H 행렬 방법 1300은 Rs=1/2에 대해 JSALE 및 SLCC H 행렬 구조를 사용한다. 상부 H 행렬 구조는 도 9 및 도 10에 관하여 기술된 바와 같이 JSALE 256 비트 속도 1/2 LDPC 코드와 관련된다. 8개의 행 및 16개의 열로 이루어진 256 비트 H 행렬은 이후 2048 비트 SLCC 코드를 지원하기 위해 Zp=8을 사용하여 다시 리프팅된다. 계층적 리프팅 프로세스 및 디코딩 재사용은 REF79를 기반으로 하며, 이는 채널 코딩에 대한 그의 디코더 하드웨어를 재사용하면서 JSALC 코드와 동일한 H 행렬 특성들을 유지하도록 돕는다.
JSALC(JSALE+SLCC) 성능은 전체 JSALE 코드율(Re)을 갖는 JSALE 디코더 입력에서의 허용된 t≥0 비트 오류들(SLCC 디코더에 의해 수정되지 않고 JSALE 디코더 입력에 전달된 채널 및/또는 SLCC 디코더에서 발생되는 비트 오류들) 간의 트레이드오프를 지원하기 위해 채널 특성, SLCC 구조(코드율 등), 및 JSALE LDPC 코드 구조를 기반으로 하여 더 최적화될 수 있다. 예를 들어, SLCC 디코더 출력 및 JSALE 복호화 입력에 대한 트레이드오프 t0 비트 오류이면, 결과는 Zp SLCC 코드의 감소 및 낮은 복잡성(즉, 반복 횟수의 감소) SLCC 디코더이다. 그러나, 일부 경우에, 일반 텍스트를 복구하기 위해 JSALE 디코더 복잡성에 대한 증가(즉, 반복 횟수의 증가)가 필요하다. 또한, 코드 펑처링은 특히 비선형 함수(즉, S-Box)가 코드에 내장될 때 디코딩 복잡성을 증가시킨다. 대안적 솔루션은 JSALE 코드율(Re)을 감소시키고(Rpunc 감소), JSALE 디코더 복잡성을 낮게 유지하는 것이다. 또한, JSALE 및 SLCC 둘 다에 대해 리프팅 인자 Z의 크기(즉, 42)를 변경하는 동안, 상이한 블록 크기들(즉, WiGig-672 비트 등)에 대해 R=1/2 8X16 H 행렬 구조가 사용될 수 있다. 리프팅 인자 Z를 증가시키는 것은 최소 거리 및 전체 JSALE 확산을 증가시킬 수 있고, 더 높은 코드율(Re)을 가능하게 할 수 있다.
JSALC 방식의 보안 레벨은 암호 분석에 대한 JSALC 저항에 의해 측정될 수 있다. 차분 암호 분석에 대한 JSALC 저항은 선택된 일반 텍스트 공격을 기반으로 한다. 차분 암호 분석은 암호화 텍스트로 변환될 때 라운드를 통해 일반 텍스트들의 쌍들 간의 차를 트레킹 및 트레일링하는 단계를 기반으로 한다. n 비트 비선형 함수에 대해, 차분 균일성에 도달하는 확률 임계값(암호 분석 복잡성은 브루트 포스 O(2n)와 동일하다)은 Td=2-(n-1)로서 표현될 수 있다. JSALC 시스템에서, AES에서와 같이, n=128이다. AES 표준의 S-Box 블록들은 JSALC 시스템에서 사용될 수 있고, 여기서 최대 차분 확률은 4/256=2-6이다. HD 선형 변환은 8 라운드 후 (2-6)40=2-240 최대 차분 확률의 전체에 의한 결과인 (라운드 사이에서) 5의 분기 인자(branch facotr)를 갖는다. 전체 계산된 최대 차분 확률 2-240 << Td=2-127은 AES에서 정의된 바과 같은 S-Box 및 HD 함수들을 사용하여, JSALC 시스템이 차분 균일성에 도달했고, 복잡성 O(2128)을 갖는 브루트 포스 공격과 동일한 레벨까지 차분 공격들에 영향을 받지 않는다는 것을 의미한다. 또한, 이들 측정 결과는 REF7의 AES 표준에서 정의된 것보다 훨씬 더 낮은 복잡성 S-Box 및 HD가 동일한 임계값 T을 달성할 수 있다(예를 들어, S-Box 정도는 8에서 4로 감소될 수 있다)는 것을 확인한다. 상기는 키를 복구하기 위해 암호의 선형성을 사용하는 일반 텍스트 공격으로서 언급되는 선형 암호 분석에 적용될 수 있다. 선형 균일성 임계값은 입출력 상관 관계의 확률 Ti=2-n/2로서 정의된다. 최대 AES S-Box 입출력 상관 관계는 1/8=2-3이다. 여기서, 8 라운드 후 전체 최대 선형 확률은 (2- 3)40=2-120<<Ti=2-64이다. 또한, 결과는 감소된 복잡성 S-Box 및 HD 함수들이 AES와 동일한 저항 레벨에 도달하기 위해 JSALC에서 적용될 수 있다는 것을 확인했다. JSALC 방식의 보안 레벨은 바이트 기반 암호에 대한 선택된 일반 텍스트 공격들인 제곱 공격들에 대한 복원력에 의해 측정될 수 있다. AES 표준과 달리, JSALE LDPC 코드를 포함하는 JSALC 시스템은 비트 기반 암호 시스템이기 때문에, JSALE LDPC 코드를 사용하는 JSALC 시스템은 AES보다 제곱 공격에 더 강하다.
도 14는 JSALE 비트 오류율(BER)/프레임 오류율(FER) 성능을 도시한다. 두 개의 상이한 시나리오에 대한 JSALE LDPC 디코더의 FER/BER 성능 결과들이 도시된다. 제1 시나리오에서는 Re=4/5 및 15회 반복을 갖는 합법적인 의도된 사용자가 도시된다. 제2 시나리오에서는 Re=4/5 및 50회 반복을 갖는 합법적인 의도된 사용자(법적 사용자로서 도시됨)가 도시된다. 사용되는 LDPC 디코더는 REF34에서 기술된 바와 같은 계층화된 디코더이다. QPSK 코딩되지 않은 BER 성능이 비교를 위해 또한 도시된다.
불법적인 해커(불법 사용자로서 도시됨)에 대한 LDPC FER 성능은 SNR에 상관없이 FER=1로 유지되는 반면에, Re=4/5 및 15회 반복을 갖는 합법적인 의도된 사용자에 대한 LDPC 디코딩 FER 성능은 이미 Eb/N0≥11dB에 대해 10E-4보다 작다.
상술한 바와 같이, JSALE LDPC 인코더율은 R=1/2이고, 따라서, 입력 데이터는 256 비트 인코딩된 데이터를 제공하기 위해 128 비트의 블록들로 패킹된다. JSALE LDPC 인코더 및 디코더에 사용되는 H 행렬은 이차 리프팅 인자 Zp=1인, 도 8을 참조하여 기술된 바와 동일하다. 256 비트 인코딩된 출력 블록은 이후 Re=R/(1-Rpunc)의 최종 속도를 제공하기 위해 속도 Rpunc에서 펑처링된다. 이후 데이터는 Tx QPSK 변조기에 공급되고, 부가 백색 가우스 잡음(AWGN) 채널을 통해 수신기로 전송된다. Rx 입력에서 수신되는 신호는 QPSK 복조되고 나서 R=1/2 256 비트 LDPC 디코더에 대해 256 비트 수신된 로그 우도비(LLR: Log-Likelihood Ratio) 입력을 복구하기 위해 디펑처링된다. 일 예로서, SLCC 디코더로부터 출력되는 LLR 소프트 데이터는 AWGN이다.
도 15는 Re=4/5 및 Eb/N0=13 dB에서의 JSALE 디코딩 반복 회수에 따른 JSALE FER/BER 성능을 도시한다. JSALE LDPC 디코더 FER 성능은 6보다 작은 모든 반복에 대해서 1에 가깝게 유지된다. 이후 6번째 반복에서, FER 성능은 10E-2보다 낮아진다. 펑처링 및 S-BOX로 인해, 일반 텍스트를 제대로 복구하기 위해서 여러 번의 반복이 요구된다. 따라서, SLCC 디코더가 오류가 없는 블록들에 수렴하지는 않지만, JSALE 디코더는 (상술한 바와 같이) 여전히 증가된 반복 회수로 오류들을 수정할 수 있다.
도 16은 도 14에서 기술된 바와 같은 Zp=1(256 비트)을 갖는 JSALE 디코더와 비교한 Zp=8(2048 비트)을 갖는 SLCC 디코더 성능을 도시한다. 상기 둘 사이 및 각각의 블록 크기에 대한 이론적 랜덤 코딩 바운드(RCB)에 대해 FER 성능이 비교된다. 증가된 2048 비트 블록 크기의 SLCC 디코더는 FER = 10E-4에서 256 비트 블록 디코더 이상의 더 나은 FER 성능인 1.75dB를 갖는다. 이 결과는 SLCC에서 코드는 128 비트를 갖는 암호화 블록들과 항상 일치하지는 않는 더 큰 블록 크기(1000 비트 이상)들을 지원한다는 것을 보여준다.
또한, 이러한 결과는, 사용자가 낮은 블록 크기의 LDPC 코드를 유지하는 것을 선택하는 경우, 사용자는 동일한 데이터율을 얻기 위해 필요한 SNR을 높이거나, 동일한 SNR에 대한 데이터율을 낮추기 위해 변환하는 FER 성능을 1.5dB 이상 잃을 것이라는 것을 보여준다. 2048 비트 및 256 비트 LDPC 디코더의 FER 성능은 모두 여전히 해당 RCB 성능들보다 약 1dB 더 나쁘다. RCB로부터 1dB 차이를 감소시키는 이유는 구현 복잡성을 감소시켜 더 규칙적인 형태로 LDPC 코드의 준 순환 형식에 삽입하기 위함이다. 따라서 본 발명은 LDPC 인코더/디코더 전력 소비를 크게 감소시킬 수 있다.
본 발명의 다양한 실시 예에 따른 송신 장치의 동작은 상술한 바와 같이 암호화 모듈 510을 통해 생성되는 데이터를 인코딩 모듈 520을 통해 인코딩할 수 있다. 송신 장치는 무선 통신 주파수 모듈 540을 통해 상기 인코딩된 데이터를 송신할 수 있다.
도 17은 본 발명의 다양한 실시 예에 따른 송신 장치의 동작을 도시한 흐름도이다.
도 17을 참조하면, 송신 장치 500은 1710 단계에서 일반 텍스트 데이터를 인코딩하여 암호화 텍스트 데이터를 생성할 수 있다. 여기서, 상기 일반 텍스트 데이터는 사용자 등에 의해 상기 송신 장치에 입력된 데이터일 수 있다. 또한, 상기 일반 텍스트 데이터는 상기 송신 장치의 내부로부터 수신된 데이터일 수 있다. 또한, 상기 일반 텍스트 데이터는 상기 송신 장치의 외부로부터 수신된 데이터일 수 있다. 여기서, 상기 인코딩 과정은 키의 추가, 바이트 치환, 열 순열, 패리티 비트 추가 등의 동작을 포함할 수 있다.
1720 단계에서, 송신 장치 500은 상기 암호화 텍스트 데이터에 기반하여 인코딩 블록을 생성할 수 있다.
1730 단계에서, 송신 장치 500은 상기 인코딩 블록을 송신할 수 있다. 1730 단계에서의 동작은 송신 무선 주파수 모듈 540에 의해 수행될 수 있다. 상기 인코딩 블록은 수신 장치 555로 송신될 수 있다.
도 18은 본 발명의 다양한 실시 예에 따른 송신 장치의 암호화 동작을 도시한 흐름도이다.
도 18을 참조하면, 송신 장치 500은 1810 단계에서 일반 텍스트 데이터에 행 키를 추가할 수 있다. 구체적으로, 송신 장치 500은 상기 일반 텍스트 데이터에 대하여 행 키를 추가하여 제1 데이터를 출력할 수 있다. 상기 행 키는 H 행렬의 행에 포함된 비트들과 상기 행 키에 XOR 함수를 적용하여 일반 텍스트 데이터에 추가될 수 있다.
1820 단계에서, 송신 장치 500은 상기 제1 데이터에 대하여 바이트 치환을 수행할 수 있다. 구체적으로 송신 장치 500은 상기 제1 데이터에 바이트 치환을 수행한 제2 데이터를 출력할 수 있다. 여기서 상기 바이트 치환은 S-BOX 910을 이용하여 이뤄질 수 있다. 또한, 상기 바이트 치환은 비선형적으로 이뤄질 수 있다. 따라서 상기 제2 데이터는 비선형적인 데이터일 수 있다.
1830 단계에서, 송신 장치 500은 상기 제2 데이터에 대하여 열 순열을 수행할 수 있다. 송신 장치 500은 상기 제2 데이터에 열 순열을 수행한 제3 데이터를 출력할 수 있다. 여기서 상기 열 순열은 고확산(HD: High Diffusion)을 통해 수행될 수 있다. 상기 고확산은 비-이진(non-binary) 연산일 수 있다.
1840 단계에서, 송신 장치 500은 제3 데이터에 대하여 인코딩을 수행할 수 있다. 송신 장치 500은 제3 데이터의 미리 정해진 i번째 행이 인코딩된 제4 데이터를 출력할 수 있다. 상기 인코딩은 제3 데이터에 패리티 비트를 추가하는 동작을 포함할 수 있다. 여기서 추가되는 패리티 비트는 도 8에 도시된 S0.8, S1.9, ... , S7.15 등일 수 있다.
1850 단계에서, 송신 장치 500은 제4 데이터에 대하여 펑처링을 수행할 수 있다. 송신 장치 500은 제4 데이터의 j번째 열에 대하여 펑처링율(puncture rate)(Rpunc) 및 보완 펑처링율에 기반된 펑처링을 수행하여 제5 데이터를 출력할 수 있다.
1860 단계에서, 송신 장치 500은 제5 데이터에 대하여 행 키를 추가할 수 있다. 송신 장치 500은 제5 데이터의 행에 키를 추가하여 제6 데이터를 출력할 수 있다.
송신 장치 500은 미리 정해진 라운드 수에 기반하여 1820 단계 내지 1860 단계를 반복적으로 수행할 수 있다.
1870 단계에서, 송신 장치 500은 제6 데이터를 암호화 텍스트 데이터로서 출력할 수 있다. 1810 내지 1870 단계는 일반 텍스트 데이터를 소스 코딩(source coding)하는 동작일 수 있다.
상기 출력된 암호화 텍스트 데이터는 채널 코딩(channel coding)을 위해 인코딩 모듈 520에 입력될 수 있다.
본 발명의 다양한 실시 예에 따른 수신 장치 555의 동작은 상술한 바와 같이 무선 통신 주파수 모듈 565를 통해 암호화 텍스트 데이터를 수신할 수 있다. 수신 장치 500은 디코딩 모듈 580을 통해 디코딩(즉, 채널 디코딩)을 수행할 수 있다. 또한, 수신 장치 500은 복호화 모듈 590을 통해 상기 디코딩된 데이터를 복호화(즉, 소스 디코딩)할 수 있다.
도 19는 본 발명의 다양한 실시 예에 따른 수신 장치의 동작을 도시한 흐름도이다.
도 19를 참조하면, 수신 장치 555는 1910 단계에서 무선 주파수 수신 모듈 565를 이용하여 제1 인코딩 블록을 수신할 수 있다. 여기서, 상기 제1 인코딩 블록은 송신 장치 500에 의하여 송신된 암호화 코딩 데이터일 수 있다.
1920 단계에서, 수신 장치 555는 상기 제1 인코딩 블록에 대하여 디코딩을 수행할 수 있다. 여기서, 상기 디코딩은 채널 디코딩일 수 있다. 구체적으로 수신 장치 555는 1920 단계에서 버퍼를 이용하여 상기 제1 인코딩 블록에 대하여 판정(경판정 또는 연판정)을 수행할 수 있다. 그리고 상기 판정 결과에 기반하여 제2 인코딩 블록을 출력할 수 있다. 수신 장치 555는 상기 출력된 제2 인코딩 블록에 대하여 채널 디코딩을 수행하여 암호화 텍스트 데이터를 출력할 수 있다. 1920 단계의 동작은 도 5b에 도시된 디코딩 모듈 580에 의해 수행될 수 있다.
1930 단계에서, 수신 장치 555는 상기 암호화 텍스트 데이터에 대하여 복호화를 수행할 수 있다. 상기 복호화하는 동작은 상기 암호화 텍스트 데이터에 포함된 행 i의 디코딩, 상기 암호화 텍스트 데이터에 포함된 열 j의 펑처링, 역 열순열, 역 바이트 치환, 키 추가 등의 동작을 포함할 수 있다. 1930 단계의 동작은 채널 디코딩된 데이터를 소스 디코딩하는 동작일 수 있다.
도 20은 본 발명의 다양한 실시 예에 따른 수신 장치의 복호화 동작을 도시한 흐름도이다.
도 20을 참조하면, 수신 장치 555는 2010 단계에서 입력된 암호화 텍스트 데이터에 대하여 행 키를 추가하는 동작을 수행할 수 있다. 수신 장치 555는 H 행렬에 기반하여 상기 암호화 텍스트 데이터에 포함된 행에 대하여 키를 추가하여 제1 데이터를 출력할 수 있다. 2010 단계에서의 동작은 도 18에 도시된 1810 단계에서의 동작의 역순으로 진행될 수 있다.
2020 단계에서, 수신 장치 555는 상기 제1 데이터에 대하여 디코딩을 수행할 수 있다. 수신 장치 555는 제1 데이터의 미리 정해진 i번째 행을 디코딩하여 제2 데이터를 출력할 수 있다. 상기 디코딩은 제1 데이터에 포함된 패리티 비트를 추출하는 동작을 포함할 수 있다.
2030 단계에서, 수신 장치 555는 상기 제2 데이터에 대하여 펑처링을 수행할 수 있다. 수신 장치 555는 펑처링율(puncture rate)(Rpunc) 및 보완 펑처링율에 기반하여 제2 데이터를 펑처링하여 제3 데이터를 출력할 수 있다. 상기 펑처링은 제2 데이터에 포함된 j번째 열을 펑처링하는 동작일 수 있다.
2040 단계에서, 수신 장치 555는 상기 제3 데이터에 대하여 역(inverse)-열 순열을 수행할 수 있다. 수신 장치 555는 상기 제3 데이터에 역-열 순열을 수행한 제4 데이터를 출력할 수 있다. 여기서 상기 열 순열은 역-고확산을 통해 수행될 수 있다. 상기 역-고확산은 비선형적인 연산일 수 있다.
2050 단계에서, 수신 장치 555는 상기 제4 데이터에 대하여 역 바이트 치환을 수행할 수 있다. 수신 장치 555는 상기 제4 데이터에 역 바이트 치환을 수행한 제5 데이터를 출력할 수 있다. 상기 역 바이트 치환은 상기 송신 장치에 의해 수행된 바이트 치환을 역으로 수행한 것일 수 있다.
2060 단계에서, 수신 장치 555는 상기 제5 데이터에 대하여 행 키를 추가할 수 있다. 수신 장치 555는 제5 데이터의 행에 키를 추가하여 제6 데이터를 출력할 수 있다.
수신 장치 555는 미리 정해진 라운드 수에 기반하여 2020 단계 내지 2060 단계를 반복적으로 수행할 수 있다. 상기 라운드 수는 송신 장치 500에 의해 수행되는 인코딩 과정에서의 라운드 수에 대응될 수 있다.
2070 단계에서, 수신 장치 555는 제6 데이터를 일반 텍스트 데이터로서 출력할 수 있다. 2010 내지 2070 단계는 암호화 텍스트 데이터를 소스 디코딩(source decoding)하는 동작일 수 있다.
본 발명의 다양한 실시 예에 따른 송신 장치는, 일반 텍스트 데이터를 유효 부호율(Re)에 따라 인코딩하여 암호화 텍스트 데이터를 출력하는 제1 인코더와, 상기 암호화 텍스트 데이터에 대응하는 제1 인코딩 블록을 인코딩하여 제2 인코딩 블록을 출력하는 제2 인코더를 포함하고, 상기 유효 부호율(Re)은, Re=R/(1-Rpunc)에 의해 정의되며, 여기서 R은 부호율을 나타내고, Rpunc은 펑처링율을 나타내며, 상기 제1 인코딩 블록은, Zp x Rs x 2n 비트를 포함하고, 상기 제2 인코딩 블록은, Zp x 2n 비트를 포함하며, 여기서 n은 상기 일반 텍스트 데이터의 비트 수를 나타내고, Zp는 리프팅 인자를 나타내며, Rs는 SLSS 코드율을 나타낼 수 있다.
또한, 상기 송신 장치는 상기 제2 인코딩 블록을 송신하는 송신기를 더 포함할 수 있다.
또한, 상기 송신 장치는 상기 암호화 텍스트 데이터를 입력하고 상기 제1 인코딩 블록을 출력하는 버퍼를 더 포함할 수 있다.
또한, 상기 제1 인코더는 상기 일반 텍스트 데이터에 대하여 행 키를 추가하여 제1 데이터를 출력하는 제1 키 추가 계층과, 상기 제1 데이터를 입력하고, 바이트 치환된 제2 데이터를 출력하는 바이트 치환 블록과, 상기 제2 데이터를 입력하고, 열 순열된 제3 데이터를 출력하는 열 순열 처리 블록과, 상기 제3 데이터를 입력하고 미리 정해진 i번째 행이 인코딩된 제4 데이터를 출력하는 인코딩 블록과, 상기 제4 데이터를 입력하고 펑처링율(puncture rate)(Rpunc) 및 보완 펑처링율에 기반하여 미리 정해진 j번째 열이 펑처링된 제5 데이터를 출력하는 펑처링 블록과, 상기 제5 데이터에 대하여 행 키를 추가하여 제6 데이터를 상기 암호화 텍스트 데이터로서 출력하는 제2 키 추가 계층을 포함할 수 있고, 상기 제2 키 추가 계층의 출력은 상기 바이트 치환 블록으로 제공되어 반복적으로 수행될 수 있다. 상기 키는 적어도 128 비트의 길이를 갖는 AES(Advanced Encryption Standard) 키들을 포함할 수 있다.
또한, 상기 제1 인코더는 JSALE(Joint Security Advanced LDPC(Low Density Parity Check) Encryption) 인코더일 수 있고, 상기 제2 인코더는 SLCC(Security LDPC Channel Coding) 인코더일 수 있다.
본 발명의 다양한 실시 예에 따른 송신 방법은 일반 텍스트 데이터를 유효 부호율(Re)에 따라 인코딩하여 암호화 텍스트 데이터를 출력하는 과정과, 상기 암호화 텍스트 데이터에 대응하는 제1 인코딩 블록을 인코딩하여 제2 인코딩 블록을 출력하는 과정을 포함할 수 있고, 상기 유효 부호율(Re)은, Re=R/(1-Rpunc)에 의해 정의되며, 여기서 R은 부호율을 나타내고, Rpunc은 펑처링율을 나타내며, 상기 제1 인코딩 블록은, Zp x Rs x 2n 비트를 포함하고, 상기 제2 인코딩 블록은, Zp x 2n 비트를 포함하며, 여기서 n은 상기 일반 텍스트 데이터의 비트 수를 나타내고, Zp는 리프팅 인자를 나타내며, Rs는 SLSS 코드율을 나타낼 수 있다.
또한, 상기 송신 방법은 상기 제2 인코딩 블록을 송신하는 과정을 더 포함할 수 있다.
또한, 상기 암호화 텍스트 데이터에 대응하는 제1 인코딩 블록을 인코딩하여 제2 인코딩 블록을 출력하는 과정은, 상기 암호화 텍스트 데이터를 버퍼에 입력하여 상기 제1 인코딩 블록을 출력하는 과정을 포함할 수 있다.
또한, 상기 일반 텍스트 데이터를 유효 부호율(Re)에 따라 인코딩하여 암호화 텍스트 데이터를 출력하는 과정은, 상기 일반 텍스트에 대하여 행 키를 추가하여 제1 데이터를 출력하는 과정과, 상기 제1 데이터를 입력하고, 바이트 치환된 제2 데이터를 출력하는 제1 과정과, 상기 제2 데이터를 입력하고, 열 순열된 제3 데이터를 출력하는 제2 과정과, 상기 제3 데이터를 입력하고 미리 정해진 i번째 행이 인코딩된 제4 데이터를 출력하는 제3 과정과, 상기 제4 데이터를 입력하고 펑처링율(puncture rate)(Rpunc) 및 보완 펑처링율 에 기반하여 미리 정해진 j번째 열이 펑처링된 제5 데이터를 출력하는 제4 과정과, 상기 제5 데이터에 대하여 행 키를 추가하여 제6 데이터를 상기 암호화 텍스트 데이터로서 출력하는 제5 과정을 포함하고, 상기 제6 데이터를 상기 제1 과정에 입력하여, 라운드가 종료될 때까지 상기 제1 과정 내지 상기 제5 과정을 반복적으로 수행할 수 있다. 상기 키는 적어도 128 비트의 길이를 갖는 AES(Advanced Encryption Standard) 키들을 포함할 수 있다.
또한, 상기 일반 텍스트 데이터를 유효 부호율(Re)에 따라 인코딩하여 암호화 텍스트 데이터를 출력하는 과정은, JSALE(Joint Security Advanced LDPC(Low Density Parity Check) Encryption)에 기반하여 수행되고, 상기 암호화 텍스트 데이터에 대응하는 제1 인코딩 블록을 인코딩하여 제2 인코딩 블록을 출력하는 과정은, SLCC(Security LDPC Channel Coding)에 기반하여 수행될 수 있다.
본 발명의 다양한 실시 예에 따른 수신 장치는 제1 인코딩 블록을 디코딩하여 제2 인코딩 블록에 대응하는 암호화 텍스트 데이터를 출력하는 제1 디코더와, 상기 암호화 텍스트 데이터를 유효 부호율(Re)에 따라 디코딩하여 일반 텍스트 데이터를 출력하는 제2 디코더를 포함할 수 있고, 상기 유효 부호율(Re)는, Re=R/(1-Rpunc)에 의해 정의되며, 여기서 R은 부호율을 나타내고, Rpunc은 펑처링율을 나타내며, 상기 제1 인코딩 블록은, Zp x 2n 비트를 포함하고, 상기 제2 인코딩 블록은, Zp x Rs x 2n 비트를 포함하며, 여기서 n은 상기 일반 텍스트 데이터의 비트 수를 나타내고, Zp는 리프팅 인자를 나타내며, Rs는 SLSS 코드율을 나타낼 수 있다.
또한, 상기 수신 장치는 상기 제1 인코딩 블록을 수신하는 수신기를 더 포함할 수 있다.
또한, 상기 수신 장치는, 상기 제1 인코딩 블록을 입력하고, 상기 제2 인코딩 블록을 출력하는 버퍼를 더 포함할 수 있다. 상기 버퍼는 다중 비트 정확성(multi-bit precision)을 포함하는 연판정(soft decision) 버퍼 또는 단일 비트 정확성을 포함하는 경판정(hard decision) 버퍼 중 하나일 수 있다.
또한, 상기 제2 디코더는, 상기 암호화 텍스트 데이터에 대하여 행 키를 추가하여 제1 데이터를 출력하는 제1 키 추가 계층과, 상기 제1 데이터를 입력하고, 미리 정해진 i번째 행이 디코딩된 제2 데이터를 출력하는 디코딩 블록과, 상기 제2 데이터를 입력하고 펑처링율(puncture rate)(Rpunc) 및 보완 펑처링율에 기반하여 미리 정해진 j번째 열이 펑처링된 제3 데이터를 출력하는 펑처링 블록과, 상기 제3 데이터를 입력하고, 역으로 열 순열된 제4 데이터를 출력하는 역 열순열 처리 블록과, 상기 제4 데이터를 입력하고, 역 바이트 치환된 제5 데이터를 출력하는 바이트 치환 블록과, 상기 제5 데이터에 대하여 행 키를 추가하여 제6 데이터를 상기 일반 텍스트로서 출력하는 제2 키 추가 계층을 포함할 수 있고, 상기 제2 키 추가 계층의 출력은 상기 디코딩 블록으로 제공되어 반복적으로 수행될 수 있다. 상기 키는 적어도 128 비트의 길이를 갖는 AES(Advanced Encryption Standard) 키들을 포함할 수 있다.
또한, 상기 제1 디코더는 SLCC(Security LDPC Channel Coding) 디코더이고, 상기 제2 디코더는 JSALE(Joint Security Advanced LDPC(Low Density Parity Check) Encryption) 디코더일 수 있다.
본 발명의 다양한 실시 예에 따른 수신 방법은, 제1 인코딩 블록을 인코딩하여 제2 인코딩 블록에 대응하는 암호화 텍스트 데이터를 출력하는 과정과, 상기 암호화 텍스트 데이터를 유효 부호율(Re)에 따라 디코딩하여 일반 텍스트 데이터를 출력하는 과정을 포함할 수 있고, 상기 유효 부호율(Re)는, Re=R/(1-Rpunc)에 의해 정의되며, 여기서 R은 부호율을 나타내고, Rpunc은 펑처링율을 나타내며, 상기 제1 인코딩 블록은, Zp x 2n 비트를 포함하고, 상기 제2 인코딩 블록은, Zp x Rs x 2n 비트를 포함하며, 여기서 n은 상기 일반 텍스트 데이터의 비트 수를 나타내고, Zp는 리프팅 인자를 나타내며, Rs는 SLSS 코드율을 나타낼 수 있다.
또한, 상기 수신 방법은 상기 제1 인코딩 블록을 수신하는 과정을 더 포함할 수 있다.
또한, 상기 제1 인코딩 블록을 인코딩하여 제2 인코딩 블록에 대응하는 암호화 텍스트 데이터를 출력하는 과정은, 상기 제1 인코딩 블록을 입력하고, 상기 제2 인코딩 블록을 출력하는 과정을 포함할 수 있다. 상기 제1 인코딩 블록을 입력하고, 상기 제2 인코딩 블록을 출력하는 과정은, 다중 비트 정확성(multi-bit precision)을 포함하는 연판정(soft decision) 또는 단일 비트 정확성을 포함하는 경판정(hard decision) 중 하나에 기반하여 수행될 수 있다.
또한, 상기 암호화 텍스트 데이터를 유효 부호율(Re)에 따라 디코딩하여 일반 텍스트 데이터를 출력하는 과정은, 상기 암호화 텍스트 데이터에 대하여 행 키를 추가하여 제1 데이터를 출력하는 제1 키 추가 계층과, 상기 제1 데이터를 입력하고, 미리 정해진 i번째 행이 디코딩된 제2 데이터를 출력하는 제1 과정과, 상기 제2 데이터를 입력하고 펑처링율(puncture rate)(Rpunc) 및 보완 펑처링율에 기반하여 미리 정해진 j번째 열이 펑처링된 제3 데이터를 출력하는 제2 과정과, 상기 제3 데이터를 입력하고, 역으로 열 순열된 제4 데이터를 출력하는 제3 과정과, 상기 제4 데이터를 입력하고, 역 바이트 치환된 제5 데이터를 출력하는 제4 과정과, 상기 제5 데이터에 대하여 행 키를 추가하여 제6 데이터를 상기 일반 텍스트로서 출력하는 제5 과정을 포함할 수 있고, 상기 제 6 데이터를 상기 제1 과정에 입력하여, 라운드가 종료될 때까지 상기 제1 과정 내지 상기 제5 과정을 반복적으로 수행할 수 있다. 상기 키는, 적어도 128비트의 길이를 갖는 AES(Advanced Encryption Standard) 키들을 포함할 수 있다.
또한, 상기 제1 인코딩 블록을 인코딩하여 제2 인코딩 블록에 대응하는 암호화 텍스트 데이터를 출력하는 과정은, SLCC(Security LDPC Channel Coding)에 기반하여 수행되고, 상기 암호화 텍스트 데이터를 유효 부호율(Re)에 따라 디코딩하여 일반 텍스트 데이터를 출력하는 과정은, JSALE(Joint Security Advanced LDPC(Low Density Parity Check) Encryption)에 기반하여 수행될 수 있다.
예시적 실시 예를 사용하여 본 발명을 기술하였지만, 다양한 변경예 및 수정예들이 당업자에게 제안될 수 있다. 본 발명은 첨부된 청구 범위의 범위 내에 속하는 이러한 변경예 및 수정예들을 포함하는 것으로 의도된다.
Claims (26)
- 무선 통신 시스템에서 송신 장치에 있어서,
일반 텍스트 데이터를 인코딩하여 암호화 텍스트 데이터를 출력하는 제1 인코더와,
상기 암호화 텍스트 데이터를 입력하여 제1 인코딩 블록을 출력하는 버퍼와,
LDPC(low density parity check)를 사용하는 채널 코딩 프로세스에 기반하여, 상기 제1 인코딩 블록을 인코딩하여 제2 인코딩 블록을 출력하는 제2 인코더를 포함하고,
상기 제1 인코더는, 상기 일반 텍스트 데이터에 대하여 제1 행 키를 추가하여 제1 데이터를 출력하는 제1 키 추가 계층과,
상기 제1 데이터를 입력하고, 바이트 치환된 제2 데이터를 출력하는 바이트 치환 블록과,
상기 제2 데이터를 입력하고, 열 순열된 제3 데이터를 출력하는 열 순열 처리 블록과,
상기 제3 데이터를 입력하고 미리 정해진 i번째 행이 인코딩된 제4 데이터를 출력하는 인코딩 블록과,
상기 제4 데이터를 입력하고 펑처링율(puncture rate)(Rpunc) 및 보완 펑처링율에 기반하여 미리 정해진 j번째 열이 펑처링된 제5 데이터를 출력하는 펑처링 블록과,
상기 제5 데이터에 대하여 제1 행 키와는 다른 제2 행 키를 추가하여 제6 데이터를 상기 암호화 텍스트 데이터로서 출력하는 제2 키 추가 계층을 포함하고,
상기 제2 키 추가 계층의 출력은 상기 바이트 치환 블록으로 제공되어 반복적으로 수행되는 송신 장치.
- 청구항 1에 있어서,
상기 제2 인코딩 블록을 송신하는 송신기를 더 포함하는 송신 장치.
- 삭제
- 삭제
- 청구항 1에 있어서,
상기 제1 행 키 및 상기 제2 행 키 각각은,
적어도 128 비트의 길이를 갖는 AES(advanced encryption standard) 키들을 포함하는 송신 장치.
- 삭제
- 무선 통신 시스템에서 송신 징치에 의해 수행되는 방법에 있어서,
일반 텍스트 데이터를 인코딩하여 암호화 텍스트 데이터를 출력하는 과정과,
상기 암호화 텍스트 데이터를 버퍼에 입력하여 제1 인코딩 블록을 출력하는 과정과,
LDPC(low density parity check)를 사용하는 채널 코딩 프로세스에 기반하여, 상기 제1 인코딩 블록을 인코딩하여 제2 인코딩 블록을 출력하는 과정을 포함하고,
상기 일반 텍스트 데이터를 인코딩하여 상기 암호화 텍스트 데이터를 출력하는 과정은,
상기 일반 텍스트에 대하여 제1 행 키를 추가하여 제1 데이터를 출력하는 과정과,
상기 제1 데이터를 입력하고, 바이트 치환된 제2 데이터를 출력하는 제1 과정과,
상기 제2 데이터를 입력하고, 열 순열된 제3 데이터를 출력하는 제2 과정과,
상기 제3 데이터를 입력하고 미리 정해진 i번째 행이 인코딩된 제4 데이터를 출력하는 제3 과정과,
상기 제4 데이터를 입력하고 펑처링율(puncture rate)(Rpunc) 및 보완 펑처링율에 기반하여 미리 정해진 j번째 열이 펑처링된 제5 데이터를 출력하는 제4 과정과,
상기 제5 데이터에 대하여 제1 행 키와는 다른 제2 행 키를 추가하여 제6 데이터를 상기 암호화 텍스트 데이터로서 출력하는 제5 과정을 포함하고,
상기 제6 데이터를 상기 제1 과정에 입력하여, 라운드가 종료될 때까지 상기 제1 과정 내지 상기 제5 과정을 반복적으로 수행하는 방법.
- 청구항 7에 있어서,
상기 제2 인코딩 블록을 송신하는 과정을 더 포함하는 방법.
- 삭제
- 삭제
- 청구항 7에 있어서,
상기 제1 행 키 및 상기 제2 행 키 각각은,
적어도 128 비트의 길이를 갖는 AES(advanced encryption standard) 키들을 포함하는 방법.
- 삭제
- 무선 통신 시스템의 수신 장치에 있어서,
LDPC(low density parity check)를 사용하는 채널 코딩 프로세스에 기반하여, 제2 인코딩 블록을 디코딩하여 제1 인코딩 블록을 출력하는 제1 디코더와,
상기 제1 인코딩 블록을 입력하여 암호화 텍스트 데이터를 출력하는 버퍼와,
상기 암호화 텍스트 데이터를 디코딩하여 일반 텍스트 데이터를 출력하는 제2 디코더를 포함하고,
상기 제2 디코더는, 상기 암호화 텍스트 데이터에 대하여 제1 행 키를 추가하여 제1 데이터를 출력하는 제1 키 추가 계층과,
상기 제1 데이터를 입력하고, 미리 정해진 i번째 행이 디코딩된 제2 데이터를 출력하는 디코딩 블록과,
상기 제2 데이터를 입력하고 펑처링율(puncture rate)(Rpunc) 및 보완 펑처링율에 기반하여 미리 정해진 j번째 열이 펑처링된 제3 데이터를 출력하는 펑처링 블록과,
상기 제3 데이터를 입력하고, 역으로 열 순열된 제4 데이터를 출력하는 역 열순열 처리 블록과,
상기 제4 데이터를 입력하고, 역 바이트 치환된 제5 데이터를 출력하는 바이트 치환 블록과,
상기 제5 데이터에 대하여 제1 행 키와는 다른 제2 행 키를 추가하여 제6 데이터를 상기 일반 텍스트로서 출력하는 제2 키 추가 계층을 포함하고,
상기 제2 키 추가 계층의 출력은 상기 디코딩 블록으로 제공되어 반복적으로 수행되는 수신 장치.
- 청구항 13에 있어서,
상기 제2 인코딩 블록을 수신하는 수신기를 더 포함하는 수신 장치.
- 삭제
- 청구항 13에 있어서,
상기 버퍼는,
다중 비트 정확성(multi-bit precision)을 포함하는 연판정(soft decision) 버퍼 또는 단일 비트 정확성을 포함하는 경판정(hard decision) 버퍼 중 하나인 수신 장치.
- 삭제
- 청구항 13에 있어서,
상기 제1 행 키 및 상기 제2 행 키 각각은,
적어도 128 비트의 길이를 갖는 AES(advanced encryption standard) 키들을 포함하는 수신 장치.
- 삭제
- 무선 통신 시스템의 수신 방법에 있어서,
LDPC(low density parity check)를 사용하는 채널 코딩 프로세스에 기반하여, 제2 인코딩 블록을 인코딩하여 제1 인코딩 블록을 출력하는 과정과,
상기 제1 인코딩 블록을 입력하여 암호화 텍스트 데이터를 출력하는 과정과,
상기 암호화 텍스트 데이터를 디코딩하여 일반 텍스트 데이터를 출력하는 과정을 포함하고,
상기 암호화 텍스트 데이터를 디코딩하여 상기 일반 텍스트 데이터를 출력하는 과정은,
상기 암호화 텍스트 데이터에 대하여 제1 행 키를 추가하여 제1 데이터를 출력하는 과정과,
상기 제1 데이터를 입력하고, 미리 정해진 i번째 행이 디코딩된 제2 데이터를 출력하는 제1 과정과,
상기 제2 데이터를 입력하고 펑처링율(puncture rate)(Rpunc) 및 보완 펑처링율에 기반하여 미리 정해진 j번째 열이 펑처링된 제3 데이터를 출력하는 제2 과정과,
상기 제3 데이터를 입력하고, 역으로 열 순열된 제4 데이터를 출력하는 제3 과정과,
상기 제4 데이터를 입력하고, 역 바이트 치환된 제5 데이터를 출력하는 제4 과정과,
상기 제5 데이터에 대하여 제1 행 키와는 다른 제2 행 키를 추가하여 제6 데이터를 상기 일반 텍스트로서 출력하는 제5 과정을 포함하고,
상기 제6 데이터를 상기 제1 과정에 입력하여, 라운드가 종료될 때까지 상기 제1 과정 내지 상기 제5 과정을 반복적으로 수행하는 방법.
- 청구항 20에 있어서,
상기 제2 인코딩 블록을 수신하는 과정을 더 포함하는 방법.
- 삭제
- 청구항 20에 있어서,
상기 제1 인코딩 블록을 입력하여 상기 암호화 텍스트 데이터를 출력하는 과정은,
다중 비트 정확성(multi-bit precision)을 포함하는 연판정(soft decision) 또는 단일 비트 정확성을 포함하는 경판정(hard decision) 중 하나에 기반하여 수행되는 방법.
- 삭제
- 청구항 20에 있어서,
상기 제1 행 키 및 상기 제2 행 키 각각은,
적어도 128비트의 길이를 갖는 AES(advanced encryption standard) 키들을 포함하는 방법. - 삭제
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP15818263.4A EP3167566B1 (en) | 2014-07-11 | 2015-07-10 | Method and apparatus of joint security advanced ldpc cryptcoding |
PCT/KR2015/007196 WO2016006968A1 (en) | 2014-07-11 | 2015-07-10 | Method and apparatus of joint security advanced ldpc cryptcoding |
CN201580037567.9A CN106664196B (zh) | 2014-07-11 | 2015-07-10 | 联合安全高级ldpc密码编码的方法和设备 |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462023655P | 2014-07-11 | 2014-07-11 | |
US62/023,655 | 2014-07-11 | ||
US201462024808P | 2014-07-15 | 2014-07-15 | |
US62/024,808 | 2014-07-15 | ||
US14/563,865 US9787470B2 (en) | 2013-12-12 | 2014-12-08 | Method and apparatus of joint security advanced LDPC cryptcoding |
US14/563,865 | 2014-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160098004A KR20160098004A (ko) | 2016-08-18 |
KR102541321B1 true KR102541321B1 (ko) | 2023-06-08 |
Family
ID=56874457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150094780A KR102541321B1 (ko) | 2014-07-11 | 2015-07-02 | 공동 보안 어드벤스드 ldpc 암호화 코딩 방법 및 장치 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3167566B1 (ko) |
KR (1) | KR102541321B1 (ko) |
CN (1) | CN106664196B (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109327276B (zh) * | 2017-07-31 | 2021-07-09 | 华为技术有限公司 | 安全编码方法、解码方法及设备 |
CN110312141A (zh) * | 2019-07-05 | 2019-10-08 | 杭州当虹科技股份有限公司 | 一种事件型互联网直播方法 |
JP2023540584A (ja) * | 2020-09-07 | 2023-09-25 | 華為技術有限公司 | 通信方法及び装置 |
WO2023241687A1 (en) * | 2022-06-17 | 2023-12-21 | Mediatek Inc. | Ldpc low coding rate designs for next-generation wlan |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100202608A1 (en) | 2009-02-10 | 2010-08-12 | Toshiba Storage Device Corporation | Encryption device, decryption device, and storage device |
US20120084625A1 (en) * | 2010-08-12 | 2012-04-05 | Samsung Electronics Co., Ltd. | Apparatus and method for decoding ldpc codes in a communications system |
US20130254617A1 (en) | 2010-09-03 | 2013-09-26 | Sony Corporation | Data processing device and data processing method |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697512B (zh) * | 2009-11-09 | 2011-08-24 | 中国电子科技集团公司第三十研究所 | 一种抗干扰量子保密直接通信的方法及系统 |
KR101942530B1 (ko) * | 2011-08-22 | 2019-01-25 | 삼성전자 주식회사 | 오류정정부호 기반 암호화 시스템의 성능 개선 방법 및 장치 |
CN102905133A (zh) * | 2012-10-15 | 2013-01-30 | 南京邮电大学 | 一种面向视频流的混合编码加密方法 |
CN103873895B (zh) * | 2012-12-14 | 2017-07-25 | 中国传媒大学 | 一种dvb/iptv双模互动业务保护系统 |
-
2015
- 2015-07-02 KR KR1020150094780A patent/KR102541321B1/ko active IP Right Grant
- 2015-07-10 CN CN201580037567.9A patent/CN106664196B/zh not_active Expired - Fee Related
- 2015-07-10 EP EP15818263.4A patent/EP3167566B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100202608A1 (en) | 2009-02-10 | 2010-08-12 | Toshiba Storage Device Corporation | Encryption device, decryption device, and storage device |
US20120084625A1 (en) * | 2010-08-12 | 2012-04-05 | Samsung Electronics Co., Ltd. | Apparatus and method for decoding ldpc codes in a communications system |
US20130254617A1 (en) | 2010-09-03 | 2013-09-26 | Sony Corporation | Data processing device and data processing method |
Non-Patent Citations (1)
Title |
---|
C. P. Gupta 외 1명, "Joint AES Encryption and LDPC Coding", International Journal of Scientific & Engineering Research (2013. 07.)* |
Also Published As
Publication number | Publication date |
---|---|
CN106664196B (zh) | 2021-02-26 |
KR20160098004A (ko) | 2016-08-18 |
EP3167566B1 (en) | 2021-04-07 |
EP3167566A1 (en) | 2017-05-17 |
CN106664196A (zh) | 2017-05-10 |
EP3167566A4 (en) | 2018-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9787470B2 (en) | Method and apparatus of joint security advanced LDPC cryptcoding | |
Koyluoglu et al. | Polar coding for secure transmission and key agreement | |
US9362956B2 (en) | Method and system for encoding and decoding data using concatenated polar codes | |
JP4914497B2 (ja) | 多入力多出力(mimo)システムにおいてデータを送信する方法およびシステム | |
US9130693B2 (en) | Generation of perfectly secret keys in wireless communication networks | |
EP3242460B1 (en) | Data transmission method and device | |
Yan et al. | A dimension distance-based SCMA codebook design | |
US20090180495A1 (en) | Method for Transmitting Data, Method for Receiving Data, Transmitter, Receiver, and Computer Program Products | |
KR20160086394A (ko) | 무선 통신 시스템에서 송신 및 수신 방법 | |
KR102541321B1 (ko) | 공동 보안 어드벤스드 ldpc 암호화 코딩 방법 및 장치 | |
Li et al. | Partition optimization in LDPC-coded OFDM systems with PTS PAPR reduction | |
Indoonundon et al. | Overview of the challenges and solutions for 5G channel coding schemes | |
CN111200442A (zh) | 编译码方法、编码译码装置以及系统 | |
Zhang et al. | Enhanced IDMA with rate-compatible raptor-like quasi-cyclic LDPC code for 5G | |
Jeon et al. | Cross-layer encryption of CFB-AES-TURBO for advanced satellite data transmission security | |
Pisek et al. | Enhanced cryptcoding: Joint security and advanced dual-step quasi-cyclic LDPC coding | |
Jeon et al. | CFB-AES-TURBO: joint encryption and channel coding for secure satellite data transmission | |
Rehman et al. | Study of Wi-MAX Physical Layer under Adaptive Modulation Technique using Simulink | |
Khodaiemehr et al. | A practical and secure lattice-based scheme for full-duplex Gaussian one-way relay channels | |
WO2016006968A1 (en) | Method and apparatus of joint security advanced ldpc cryptcoding | |
Chowdhury et al. | Performance Analysis of WiMAX PHY | |
Horiike et al. | Performance improvement of chaos MIMO transmission scheme by LDPC code concatenation using symbol MAP detection and STBC | |
Zhu et al. | Design of a physical layer encryption scheme for rate compatible modulation | |
Guan et al. | Efficient secure channel coding based on qpp-block-ldpc codes | |
Cam et al. | Performance of joint multilevel/AES‐LDPCC‐CPFSK schemes over wireless sensor networks |
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 |