KR101088549B1 - 송신용 애플리케이션 패킷 처리 방법과 수신된 애플리케이션 패킷 세그먼트 처리 방법 - Google Patents

송신용 애플리케이션 패킷 처리 방법과 수신된 애플리케이션 패킷 세그먼트 처리 방법 Download PDF

Info

Publication number
KR101088549B1
KR101088549B1 KR1020097010385A KR20097010385A KR101088549B1 KR 101088549 B1 KR101088549 B1 KR 101088549B1 KR 1020097010385 A KR1020097010385 A KR 1020097010385A KR 20097010385 A KR20097010385 A KR 20097010385A KR 101088549 B1 KR101088549 B1 KR 101088549B1
Authority
KR
South Korea
Prior art keywords
segments
tag
application packet
segment
generating
Prior art date
Application number
KR1020097010385A
Other languages
English (en)
Other versions
KR20090071656A (ko
Inventor
사바 파텔
Original Assignee
알카텔-루센트 유에스에이 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/976,126 external-priority patent/US8122247B2/en
Priority claimed from US11/984,400 external-priority patent/US8204216B2/en
Application filed by 알카텔-루센트 유에스에이 인코포레이티드 filed Critical 알카텔-루센트 유에스에이 인코포레이티드
Publication of KR20090071656A publication Critical patent/KR20090071656A/ko
Application granted granted Critical
Publication of KR101088549B1 publication Critical patent/KR101088549B1/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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
    • 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/80Wireless

Abstract

송신용 애플리케이션 패킷을 처리하는 방법이 개시되며, 이 방법은 바이트 스트림 내에서 애플리케이션 패킷의 다수의 세그먼트를 수신하는 단계와, 상기 바이트 스트림 내에서 다수의 블럭을 그룹화함으로써 바이트 스트림 내의 다수의 슈퍼블럭을 생성하는 단계와, 상기 다수의 슈퍼블럭에 대한 제 1 의사랜덤 비트를 생성하는 단계와, 다수의 세그먼트의 각각의 개시 세그먼트와 세그먼트의 끝부분에 대한 블럭 번호 및 슈퍼블럭 번호를 결정하는 단계와, 상기 바이트 스트림 내의 다수의 세그먼트의 각각의 결정된 개시 세그먼트와 세그먼트의 끝부분 간의 블럭 번호들과 슈퍼블럭 번호들과 관련된 제 1 의사 랜덤 비트에 기반하여, 상기 세그먼트의 각각에 대한 부분 태그를 생성하는 단계와, 상기 부분 태그들을 조합하여 누산된 태그를 생성하는 단계와, 상기 누산된 태그와 제 2 의사 랜덤 비트에 기반하여 인증 태그를 생성하는 단계와, 상기 인증 태그를 저장하는 단계와, 상기 인증 태그를 포함하는 세그먼트들을 송신하는 단계를 포함한다.

Description

송신용 애플리케이션 패킷 처리 방법과 수신된 애플리케이션 패킷 세그먼트 처리 방법{PROCESSING METHOD FOR MESSAGE INTEGRITY WITH TOLERANCE FOR NON-SEQUENTIAL ARRIVAL OF MESSAGE DATA}
본 출원은 35 U.S.C. 119(e)(1) 하에서 2006년 11월 21일에 미국에 출원된 가 출원 번호 60/860,330에 대한 우선권을 주장하며, 이 우선권의 개시물은 그 전체가 본 명세서에 포함된다. 본 출원은 또한 35 U.S.C. 120 하에서 2007년 10월 22일에 미국 출원된 출원 번호 11/976,126에 대한 우선권을 주장하며, 그 개시물은 그 전체가 본 명세서에 포함된다.
암호화 및 메시지 인증/보전은 모두 무선 공중 인터페이스를 통한 보안성을 제공하는 데 필요하다. 메시지 암호화는 메시지의 비밀성을 보호하지만, 메시지 인증은 그 메시지가 조작되는 것을 보호한다.
메시지 인증 처리에서, 송신기는 비밀키와 메시지 인증 알고리즘을 사용하여 메시지에 부착된 쇼트 태그(short tag)를 계산한다. 수신기는 또한 상기 비밀키의 공개에 기반하여 수신된 메시지에 대한 쇼트 태그를 계산하며 상기 계산된 태그 와 수신된 태그를 비교한다. 만약 태그들이 동일하다면 수신기는 그 메시지를 받아들이지만 그렇지 않다면, 그 메시지는 폐기된다.
기존의 메시지 인증 알고리즘, 가령 키잉 해시 메시지 인증 코드 보안 해시 알고리즘(HMAC-SHA) 및 어드밴스드 암호화 스탠다드-사이퍼 알고리즘 인 사이퍼 블럭 체이닝(AES-CBC)은 무순서 패킷 처리(out-of-order packet processing)를 허용하지 않는데, 그 이유는 그것이 시리얼 동작(serial operations)이며 비트들이 송신된 순서로 처리될 것을 필요로 하기 때문이다. 그러므로, 메시지 인증에 대한 종래의 접근법은 데이터를 RAM에 송신하고, 중앙 처리기(CP)가 데이터 패킷을 재순서화시키며 애플리케이션 패킷(메시지)을 재결합하여 그 애플리케이션 패킷을 메시지 인증을 수행할 하드웨어에 송신해야만 한다. 이러한 것은 버스 상에서 트래픽을 크게 증가시키며 패킷 처리에서의 지연을 크게 부가시킬 수 있다.
또한, 기존의 메시지 인증 알고리즘은 한 번에 블럭들 단위로 동작한다. 그 결과, 블럭 레벨 알고리즘은 비블럭 바운더리(non-block boundary)에서 종료하는 메시지 세그먼트 상에서는 동작할 수 없다. 메시지 인증 태그 검증을 수행하는 것을 개시하기 전에 모든 메시지 세그먼트로부터 전체 애플리케이션 패킷을 재결합할 필요가 있을 것이다.
본 발명의 일 실시예에서, 송신용 애플리케이션 패킷을 처리하는 방법은 다수의 블럭을 포함하는 바이트 스트림 내에서 애플리케이션 패킷의 다수의 세그먼트를 수신하는 단계와, 상기 바이트 스트림 내에서 다수의 블럭을 그룹화함으로써 바이트 스트림 내의 다수의 슈퍼블럭을 생성하는 단계와, 상기 다수의 슈퍼블럭에 대한 제 1 의사랜덤 비트를 생성하는 단계와, 다수의 세그먼트의 각각의 개시 세그먼트에 대한 블럭 번호 및 슈퍼블럭 번호를 결정하는 단계를 포함한다. 이 방법은 또한 바이트 스트림 내의 다수의 세그먼트의 각각의 종료 세그먼트에 대한 블럭 번호 및 슈퍼블럭 번호를 결정하는 단계와, 상기 바이트 스트림 내의 다수의 세그먼트의 각각의 결정된 개시 세그먼트와 종료 세그먼트 간의 블럭 번호들과 슈퍼블럭 번호들과 관련된 제 1 의사 랜덤 비트에 기반하여, 바이트 스트림 내의 다수의 세그먼트의 각각에 대한 부분 태그를 생성하는 단계를 포함한다. 이 방법은 또한 애플리케이션 패킷의 최종 세그먼트와 관련된 최종 부분 태그를 포함한 부분 태그들을 조합하여 누산된 태그를 생성하는 단계와, 상기 누산된 태그와 제 2 의사 랜덤 비트에 기반하여 인증 태그를 생성하는 단계와, 상기 인증 태그를 저장하는 단계와, 상기 인증 태그를 포함하는 다수의 세그먼트를 송신하는 단계를 포함한다.
다른 실시예에서, 수신된 애플리케이션 패킷 세그먼트를 처리하는 방법은 다수의 블럭을 포함하는 바이트 스트림 내에서 애플리케이션 패킷의 다수의 세그먼트를 수신하는 단계와, 상기 바이트 스트림 내에서 다수의 블럭을 그룹화함으로써 바이트 스트림 내의 다수의 슈퍼블럭을 생성하는 단계와, 상기 다수의 슈퍼블럭에 대한 제 1 의사랜덤 비트를 생성하는 단계와, 다수의 세그먼트의 각각의 개시 세그먼트에 대한 블럭 번호 및 슈퍼블럭 번호를 결정하는 단계를 포함한다. 이 방법은 또한 바이트 스트림 내의 다수의 세그먼트의 각각의 종료 세그먼트에 대한 블럭 번호 및 슈퍼블럭 번호를 결정하는 단계와, 상기 바이트 스트림 내의 다수의 세그먼트의 각각의 결정된 개시 세그먼트와 종료 세그먼트 간의 블럭 번호들과 슈퍼블럭 번호들과 관련된 제 1 의사 랜덤 비트에 기반하여, 바이트 스트림 내의 다수의 세그먼트의 각각에 대한 부분 태그를 생성하는 단계를 포함한다. 이 방법은 상기 부분 태그와, 상기 수신된 다수의 세그먼트와, 상기 수신된 인증 태그를 메모리 내에 저장하는 단계와, 상기 수신된 다수의 세그먼트들을 조합하여 애플리케이션 패킷을 생성하는 단계와, 상기 부분 태그들을 조합하여 계산된 태그를 생성하는 단계와, 상기 계산된 태그와 상기 수신된 인증 태그에 기반하여 애플리케이션 패킷의 진정성을 검증하는 단계를 더 포함한다.
본 발명의 실시예들은 아래의 상세한 설명과 첨부 도면으로부터 보다 완전하게 이해될 것이며 이들은 예시용으로만 제공되며 본 발명의 실시예를 제한하는 것은 아니다.
도 1은 본 발명의 실시예에 따른 논리적 암호화 방법의 플로우챠트이다.
도 2는 도 1의 실시예의 그래픽 예를 도시한 도면이다.
도 3은 본 발명의 실시예에 따른 보전 태그를 생성하는 플로우챠트를 도시한 도면이다.
도 4(a)는 도 3에 도시된 보전 태그 생성 방법의 그래픽 예를 도시한 도면이다.
도 4(b)는 도 3의 방법에 따른 누산 연산을 도시한 도면이다.
도 5는 본 발명의 실시예에 따른 RLP 세그먼트의 재송신을 위한 플로우챠트를 도시한 도면이다.
도 6은 본 발명의 실시예에 따른 해독 및 인라인 보전 체크의 플로우챠트를 도시한 도면이다.
도 7은 본 발명의 실시예에 따른 가변 길이 애플리케이션 패킷에 대한 부분 태그 계산을 도시한 도면이다.
본 명세서에서 제 1, 제 2, 제 3 등의 용어가 다양한 요소, 컴포넌트, 영역 및/또는 섹션을 기술하기 위해 사용될 수 있지만 이들 요소, 컴포넌트, 영역 및/또는 섹션은 이들 용어에 의해 제한되어서는 안된다는 것을 이해할 수 있을 것이다. 이들 용어는 단지 서로 다른 요소, 컴포넌트, 영역 또는 섹션으로부터 하나의 요소, 컴포넌트, 영역 또는 섹션을 구별하기 위해 사용될 수 있다. 따라서, 아래에서 기술될 제 1 요소, 컴포넌트, 영역 또는 섹션은 본 발명의 교시의 범주 내에서 제 2 요소, 컴포넌트, 영역 또는 섹션으로 지칭될 수도 있다.
본 명세서에 사용되는 용어는 단지 본 특정의 실시예를 기술할 목적으로만 사용되며, 제한하는 것으로 사용되는 것은 아니다. 본 명세서에 사용되는 바와 같이, 단수 형태는 문맥이 명확하게 달리 기술하지 않는한 복수의 형태를 포함하는 것으로 의도된다. 본 명세서에서 "포함" 용어는 언급된 특징, 개체, 단계, 동작, 요소, 및/또는 컴포넌트의 존재를 규정하지만 추가적인 하나 이상의 다른 특징, 개체, 단계, 동작, 요소, 컴포넌트, 및/또는 그 그룹의 존재를 배제하는 것은 아니라는 것을 이해할 것이다.
여러 실시예들은 이상화된 실시예(및 중간 구조)의 개략적인 예시일 수 있는 단면을 참조하여 기술될 수 있다. 따라서, 실시예들은 본 명세서에 도시된 특정의 위치 및 장치에 국한되는 것으로 해석되어서는 아니되며 그의 변형물을 포함하는 것으로 해석되어야 한다.
달리 규정되지 않는다면, (기술 및 과학 용어를 포함하는) 모든 용어들은 당업자에게 의해 상식적으로 이해되는 바와 같은 동일한 의미를 갖는다. 상식적으로 사용되는 사전에서 규정되는 것과 같은 용어들은 관련 기술의 문맥에서의 의미와 일관성있는 의미를 갖는 것으로 해석되어야 하며 본 명세서에 규정된 바와 같이 표현되지 않는 한 이상적이거나 과도하게 형식적인 의미로 해석되지는 않을 것이다.
본 발명은 송신기와 수신기 간의 메시지 인증에 관한 것이다. 송신기는 패킷 통신문을 송신할 수 있는 임의의 널리 알려진 무선 통신 시스템에서의 임의의 통신 장치일 수 있다. 가령, 송신기는 모바일 스테이션, 베이스 스테이션 등일 수 있다. 이해되는 바와 같이, 모바일 스테이션은 모바일 폰, PDA, 휴대형 컴퓨터 등일 수 있다. 수신기는 모바일 스테이션, 베이스 스테이션 등과 같은 송신기의 임의의 수신 대응부일 수 있다. 또한, 본 발명은 무선 및/또는 네트워크 통신에 적용될 수 있다는 것을 이해할 것이다.
본 발명의 실시예에 따른 메시지 인증을 최상으로 이해하기 위해, 먼저 메시지 암호화가 기술될 것이다. 암호화를 이해하기 위해 먼저 무선 링크 프로토콜이 기술될 것이다.
무선 링크 프로토콜
무선 링크 프로토콜(RLP)은 액세스 터미널(AT)(모바일 스테이션으로도 알려짐)과 액세스 노드(베이스 스테이션으로 알려짐) 간의 무선 공중 인터페이스를 통해 동작하는 세그먼트화 및 재결합 프로토콜(segmentation and reassembly protocol)이다. RLP는 애플리케이션 패킷을 RLP 세그먼트 또는 패킷으로 세그먼트화하여 그것이 RF 링크를 통해 효율적으로 송신될 수 있도록 하는 책임을 가진다. 또한, RLP는 또한 수신기에서 RLP 세그먼트의 재결합과, 무순서의 패킷의 재순서화 및 송신도중 세그먼트가 상실된 경우 재송신을 행할 책임을 가지고 있다.
메시지 암호화
암호화 및/또는 인증/보전은 RLP 세그먼트 상에서 수행될 수 있다. 가령, 널리 알려진 카운터 모드 (CTR) 암호화는 RLP 세그먼트를 암호화하는데 사용될 수 있다.
암호화될 RLP 세그먼트, 가령, 메시지, 데이터, 음성 등은 통상적으로 평문으로 지칭되며, 암호화 과정의 결과는 암호문으로 지칭된다. 종종, 암호화 과정은 암호문을 획득하기 위해 평문에 대해 암호화 알고리즘을 수행하는 것을 포함한다. 데이터 암호화 스탠다드(DES), 어드밴스드 암호화 스탠다드(AES) 등과 같은 여러 암호화 알고리즘은 암화화 과정에서 키의 사용을 포함한다. 암호화 키는 암호문을 생성하기 위한 암호화 알고리즘에서 사용되는 비트 시퀀스이다. 암호화 키는 통신의 송신측과 수신측 모두에 알려져 있으며, 수신측에서 암호화 키는 암호문을 평문으로 해독하는 데 사용된다.
AN과 AT 간에 송신된 정보의 프레임의 암호화를 포함하는 무선 통신 환경에서의 암호화의 경우에, 두 개의 상이한 프레임 동안 동일한 정보(즉, 동일한 평문)가 송신된다면 문제가 발생한다. 그러한 환경에서, 두 개의 프레임의 각각에 대해 동일한 암호문이 생성된다. 전술한 바와 같이, 암호문에 대한 정보는 누설되었다고 칭해진다. 그러한 누설된 암호문으로 인해 발생할 수 있는 리플레이 공격(replay attacks)을 방지하기 위해 크립토싱크(cryptosync)를 사용하는 암호화 기법이 개발되었다. 가령, 크립토싱크는 암호화를 위한 크립토싱크의 각각의 사용 후에 증분되는 카운터 값을 포함한다. 이러한 방식, 크립토싱크는 시간에 따라 변경된다. 통상의 크립토싱크의 사용시에, 암호화 알고리즘은 크립토싱크가 평문이었던 것처럼 크립토싱크에 적용된다. 최종적인 결과는 마스크로 지칭된다. 이 마스크는 다음에 암호문을 생성하기 위해 암호화를 위한 정보(가령, RLP 세그먼트)와 배타적 OR 연산을 수행한다. 암호화 키를 사용하는 경우 크립토싱크는 송신측과 수신측 모두에 알려지며 수신측에서 크립토싱크는 암호문을 평문으로 해독하는 데 사용된다.
애플리케이션 패킷 암호화
본 발명의 실시예에 따른 메시지 보전을 보다 잘 이해하기 위해, 메시지 보전에 적용되는 애플리케이션 패킷을 암호화하는 방법의 간단한 설명이 제공될 것이다.
도 1은 본 발명의 실시예에 따른 논리 암호화 방법의 플로우챠트이며, 도 2는 이러한 과정의 그래픽 예를 도시하고 있다.
본 실시예에서, 애플리케이션 패킷의 무선 링크 프로토콜(RLP) 세그먼트가 다른 애플리케이션 패킷의 RLP 세그먼트와의 인터리빙없이 암호화를 위해 송신된다는 것이 가정된다. 단지 예시만을 위해, 64,000 바이트 애플리케이션 패킷이 RLP 스트림의 9001번째 바이트 상에서 송신되며 RLP 세그먼트는 8바이트의 배수라는 것이 가정된다. 다시 말해서, RLP 세그먼트는 블럭 사이즈의 배수이다. 당업자에 의해 인식되는 바와 같이, 애플리케이션 패킷 사이즈, RLP 바이트 스트림, RLP 세그먼트의 사이즈는 모두 변경될 수 있다.
도 1 및 도 2를 참조하면, 송신기는 64,000바이트의 길이를 갖는 애플리케이션 패킷 또는 데이터 패킷을 블럭 사이즈의 배수, 가령 8바이트의 평문 블럭 M1-M8000으로 논리적으로 분해한다(단계 S100).
두 개의 변수(입력), 가령 키 k 및 바이트 번호에 기반한 크립토싱크 값을 갖는 어드밴스드 암호화 스탠다드(AES)를 사용하여, 단계 S110에서 제 1 의사 랜덤 블럭(비트) AESk (0, 9001)-AESk (0, 9049)가 생성될 수 있다. 도 2에서, 제 1 의 사랜덤 비트와 다른 의사랜덤 비트를 구별하기 위해 표시, 즉 타입 "0"가 사용된다. 아래를 참조하라.
보다 상세하게, 제 1 의사랜덤 비트 AESk (0, 9001)-AESk (0, 9049)는
Figure 112009030432308-pct00001
로서 기록될 수 있다.
AES에 대한 크립토싱크 값(INPUT)은 두 개의 부분, 타입(가령, 8비트)과 카운터(가령, 64비트)로 분해될 수 있으며, INPUT 비트들의 나머지는 제로로 설정될 수 있다. 일반적으로 알려진 바와 같이, 카운터 값은 전체 INPUT 값이 AES에 대해 반복되지 않도록 보장하기 위해 특정의 타입 값에 대해 반복되지 않아야 한다. 또한, "타입"은 AES의 사용을 구별하는 데 사용되어 다양한 의사랜덤 비트를 생성한다. 제 1 의사랜덤 비트를 생성하기 위해, RLP 스트림 내의 바이트 번호는 카운터 값으로서 사용될 수 있는데, 그 이유는 바이트 번호가 특정의 스트림에 대해 절대로 반복되지 않기 때문이다. 따라서, 키 k와 크립토싱크 값은 128비트 출력을 생성하는 데 사용될 수 있다. 크립토싱크 값의 사이즈는 변화될 수 있으며 크립토싱크 값은 다른 입력, 가령 flowID, 리셋 카운터 등을 포함할 수 있다. 추가의 상세한 것이 아래에서 제공될 것이다.
다음, 단계 S120에서, 송신기는 제 1 의사랜덤 비트 AESk (0, 9001)-AESk (0, 9049)와 함께 평문 블럭 M1 내지 M8에 대해 배타적 OR 연산 (XOR)을 수행하여 도 2에 도시된 바와 같은 암호화된 (암호문) 블럭 C1-C8을 생성한다.
비록 카운터 모드 (CTR) 암호화가 전술한 RLP 세그먼트를 암호화하는 데 기술되었지만, 다른 널리 알려진 암호화 방법, 가령 출력 피드백 (OFB) 모드, 사이퍼 피드백 (CFB) 모드 등이 사용될 수 있다.
메시지 보전
일단 애플리케이션 패킷, 특히 RLP 세그먼트가 암호화된다면, 본 발명의 실시예에 따른 보전 과정이 RLP 세그먼트에 대해 수행되어 애플리케이션 패킷에 대한 인증 태그를 생성한다.
또한 두 개의 변수(입력), 가령 키 k 및 크립토싱크 값과 함께 어드밴스드 암호화 스탠다드(AES)를 사용함으로써 제 2 의사랜덤 비트 Ai를 생성할 수 있다.
제 2 의사랜덤 비트 Ai의 각각은 64비트(8바이트)이다. Ai는 "슈퍼블럭"으로 알려진 데이터 블럭들의 소정의 수에 대해 사용되며, 가령 데이터 블럭의 수는 512이며, 각각의 데이터 블럭은 8바이트일 수 있다. 슈퍼블럭을 구성하는 데이터 블럭의 수는 변화될 수 있다.
상세하게, 어드밴스드 암호화 스탠다드 (AES)를 사용하여, 가령 보전에 기반한 다항식 평가 보편 해시와, 슈퍼블럭번호 i에 기반한 키 k 및 크립토싱크를 사용하여 제 2 의사랜덤 비트 AESk (1, 슈퍼블럭번호 i)를 생성할 수 있다. 제 2 의사랜덤 비트와 다른 의사랜덤 비트, 가령 제 1 의사랜덤 비트를 구별하는 데 표시, 즉 타입 "1"이 사용된다.
각각의 슈퍼블럭에 대해 랜덤 해시 키 Ai가 생성되며, 애플리케이션 패킷은 소정의 다항식으로서 처리된다. 키 Ai는 단지 특정의 슈퍼블럭에 대해서만 유효하다. 키 Ai의 파워(power)는 슈퍼블럭 내의 특정의 블럭에 대해 사용된다.
Figure 112009030432308-pct00002
가령, 애플리케이션 패킷은 암호화된 블럭 C1에서 개시하며 암호화된 블럭 Cn에서 종료할 것이다. 약간 다르게 언급하면, RLP 세그먼트는 소정의 RLP 바이트 번호와 RLP 블럭 번호 B에서 개시하며, 여기서 B는 천정(RLP바이트번호/8)이다. RLP 블럭 번호는 결정적으로 슈퍼블럭 S와 그 슈퍼블럭 S 내의 블럭 번호 b로 매핑되며, 즉, B←→(S, b) 여기서 S=천정(B/512) 이며, b=B-(S-1)512이다.
애플리케이션 패킷이 슈퍼블럭 S 및 블럭 번호 b에서 개시하며 슈퍼블럭 S2 및 블럭 번호 b2에서 종료한다고 가정한다. 따라서, 보전 태그를 계산하는 데 아래의 식이 사용된다.
Figure 112009030432308-pct00003
본 발명의 실시예에서, RLP 세그먼트는 RLP 바이트 번호 9000에서 개시하며 RLP 세그먼트 바이트 번호 9239에서 종료한다고 가정한다. 또한, 비트 스트림은 1에서 시작하여 포워드를 지속한다고 가정한다. 따라서, 슈퍼블럭 1은 비트 스트림 1에서 개시하며, 비트 스트림 4096 (슈퍼블럭 내의 512 개 블럭)에서 종료할 것 이며, 슈퍼블럭 2는 비트 스트림 4097에서 개시하며 비트 스트림 8192에서 종료할 것이며, 슈퍼블럭 3은 비트 스트림 8193에서 개시하며 비트 스트림 12,288에서 종료할 것이다.
제 1 블럭은 RLP 바이트 번호 9001 또는 RLP 블럭 번호 B=9001/8=1126에서 개시하며, RLP 바이트 번호 9240 또는 RLP 블럭 번호 B=9240/8=1155에서 종료한다. 개시 RLP 바이트 번호 및 종료 RLP 바이트 번호를 알면, RLP 세그먼트가 슈퍼블럭 3내에서 개시하고 종료한다는 것을 결정할 수 있다. 개시 및 종료 블럭 번호는 개시 B를 (S, b)=(3, 102)로 매핑하고 종료 B를 (S, b)=(3, 131)로 매핑함으로써 결정될 수 있다.
따라서, 부분 태그를 계산하는 데 아래의 식이 사용된다.
Figure 112009030432308-pct00004
부분 태그는 애플리케이션 패킷 내의 각각의 RLP 세그먼트에 대해 계산된다. 각각의 부분 태그가 계산된 후, 부분 태그는 누산기로 송신된다. 최종 RLP 세그먼트에 대한 최종 부분 태그가 계산된 후, 모든 부분 태그들이 누산되며, 또한 누산된 태그와 제 3 의사랜덤 비트의 LSB (2, 최종 바이트 번호)64비트 에 대해 XOR 연산을 수행함으로써 암호화된다.
도 3은 본 발명의 실시예에 따른 보전(인증) 태그를 생성하는 플로우챠트를 도시한 도면이다. 도 4(a)는 그 과정의 그래픽 예를 도시한 도면이다.
먼저, 단계 S200에서, 송신기는 전술한 바와 같은 제 2 의사랜덤 비트 Ai를 생성한다. 다음, 단계 S220에서, 송신기는 RLP 세그먼트가 최종 RLP 세그먼트인지를 결정한다. RLP 세그먼트의 헤더 내의 플래그는 개시 세그먼트, 중간 세그먼트 또는 최종 RLP 세그먼트를 나타내도록 설정될 수 있다. 만약 RLP 세그먼트가 최종 RLP 세그먼트가 아니라면, 부분 태그, 가령 64비트 부분 태그는 단계 S230에서 송신기 내의 누산기(도시안됨)로 송신된다. 송신기는 또한 단계 S240에서 RLP 세그먼트를 수신기에 송신한다.
만약 RLP 세그먼트가 최종 RLP 세그먼트라면, 최종 부분 태그는 또한 단계 S235에서 누산기로 송신된다. 최종 부분 태그를 누산기로 송신하는 과정은 비최종 부분 태그를 누산기로 송신하는 과정과 동일하다. 도 4(b)에 도시된 바와 같이, 최종 부분 태그가 누산기로 송신된 후, 누산된 태그는 단계 S245에서 누산된 64비트를 생성하기 위해 부분 태그들을 가산함으로써 형성된다. 이해되는 바와 같이, 부분 태그들은 대신에 각각의 부분 태그가 생성된 후 부분적으로 누산된 태그에 가산될 수 있다. 다음에, 단계 S250에서, 송신기는 누산된 태그와 제 3 의사랜덤 비트 AESk (2, 최종 바이트 번호)의 LSB에 대해 XOR 연산을 수행함으로써 누산된 태그를 암호화한다. 제 3 의사랜덤 비트의 형성이 전술한 기재로부터 분명하기 때문에, 간략화하기 위해 제 3 의사랜덤 비트의 생성 설명은 생략된다.
단계 S260에서, 인증 태그는 또한 RLP 세그먼트 재송신의 경우 메모리에 송신된다. 인증 태그는 최종 RLP 세그먼트에 부착되어 단계 S270에서 디코딩을 위해 수신기로 송신된다. 메모리는 RAM일 수 있거나 또는 중앙 처리기(CP)에 의해 제어되는 임의의 다른 저장 장치일 수 있거나, 또는 상기 메모리 장치의 일부일 수 있거나 ASIC에 의해 제어되는 장치일 수 있다. 단지 애플리케이션 패킷의 최종 RLP 패킷에 대해서만 인증 태그가 저장된다.
도 4의 실시예에 대한 다양한 변형예가 전체 교시의 범주 내에서 가능하다는 것을 이해할 수 있을 것이다. 가령, 단계 S210 및 단계 S220은 반대 순서로 수행될 수 있거나 병렬로 수행될 수도 있다. 다른 예로서, 단계 S260 및 S270이 병렬로 및/또는 직렬로 수행될 수 있다.
재송신
널리 알려진 바와 같이, 수신기는 송신기로부터의 모든 송신된 RLP 세그먼트를 수신할 수는 없다. 수신기가 모든 송신된 RLP 세그먼트를 수신할 수 없는 이유는 여러 가지가 있다. RLP 세그먼트가 상실되는 상세한 이유는 간략화를 위해 생략된다. 수신기가 모든 RLP 세그먼트를 수신하지 않는다면, 송신기는 수신되지 않은 RLP 세그먼트를 재송신할 수 있다.
송신기 내의 중앙 처리기가 송신 및 재송신을 위한 하드웨어로 RLP 세그먼트를 송신할 때, 중앙 처리기는 또한 RLP 세그먼트가 재송신된 것인지를 나타내는 비트를 송신한다. 재송신을 요청하는 과정은 당해 기술분야에서 널리 알려져 있으며, 따라서 그의 설명은 간략화를 위해 생략될 것이다.
도 5를 참조하면, 송신기는 단계 S300에서 RLP 세그먼트의 재송신을 위한 요청을 수신한다. 단계 S310에서, 송신기는 재송신 요청이 애플리케이션 패킷의 최종 RLP 세그먼트에 대한 것인지 비 최종 RLP 세그먼트에 대한 것인지를 결정한다. 만약 상기 요청이 비 최종 RLP 세그먼트에 대한 것이라면, 단계 S320에서, RLP 세그먼트는 암호화되어 재송신된다.
만약 단계 S310에서 상기 요청이 애플리케이션 패킷의 최종 RLP 세그먼트에 대한 것이라면, 단계 S330에서 CP/RAM에 저장된 누산된 인증 태그는 암호화되어 최종 RLP 세그먼트에 부착된다. 암호화된 인증 태그와 더불어 암호화된 최종 RLP 세그먼트는 단계 S340에서 수신기에 재송신된다.
옵션으로서, 단계 S310과 단계 S330 사이에는 최종 RLP 세그먼트가 재세분화될 수 있다. 가령, 송신기는 송신 상태에 기반하여 전체 최종 RLP 세그먼트가 보다 작은 조각으로 분해되어 부하를 감소시켜야 한다는 것을 결정할 수 있다. 보다 작은 조각의 각각은 상이한 타임 슬롯으로 송신된다. 단지 보다 작은 조각의 최종 조각만이 재송신 이전에 암호화된 인증 태그에 부착된다.
해독화 및 인라인 보전 체크
수신기가 인증 태그를 포함하는 모든 RLP 세그먼트를 수신하면, 수신기는 RLP 세그먼트가 암호화되었다면 그것을 해독하고 보전 체크를 수행해야만 한다.
도 6은 본 발명의 실시예에 따른 해독화 및 인라인 보전 체크의 방법을 도시한 플로우챠트이다. 여기서, "인라인"은 보전 계산이 전체 RLP 세그먼트를 수신하도록 대기하는 것과는 대조적으로 RLP 세그먼트가 수신기에 의해 수신됨에 따라 행해진다는 것을 의미한다.
RLP 세그먼트에 대한 부분 태그를 생성하는 단계들은 메시지 보전 섹션에 전 술한 바와 같이 동일하다. 또한, Ai는 슈퍼블럭 레벨에서 사용된다. RLP 세그먼트의 개시 RLP 바이트 번호와 종료 RLP 바이트 번호를 알게 되면, 슈퍼블럭과 슈퍼블럭 내의 블럭은 부분 태그를 계산하기 위해 결정될 수 있다.
모든 RLP 세그먼트가 수신기에 수신된 후, 단계 S400에서 제 4 의사랜덤 비트가 생성된다. 도 4의 단계 S200의 경우와 마찬가지로, AES는 제 4 의사랜덤 비트를 생성하는 데 사용될 수 있다.
단계 S410에서, 수신된 RLP 세그먼트에 대해 부분 태그가 생성된다. 부분 태그는 64비트 부분 태그일 수 있다. 단계 S420에서, 수신기는 RLP 세그먼트가 최종 RLP 세그먼트인지를 결정한다. RLP 세그먼트가 최종 RLP 세그먼트가 아니라면, RLP 세그먼트는 해독되어 부분 태그와 더불어 단계 S430에서 수신기 내의 메모리로 송신된다. 송신기와 마찬가지로, 수신기의 메모리는 RAM일 수 있거나 중앙 처리기(CP)에 의해 제어되거나 메모리 장치의 일부일 수 있거나 ASIC에 의해 제어될 수 있는 임의의 다른 저장 장치일 수 있다. 도 3 및 도 4와 관련하여 전술한 단계들과 마찬가지로, 부분 태그 생성 단계 및 RLP 세그먼트가 최종 RLP 세그먼트인지를 결정하는 단계는 반전될 수 있다.
만약 수신기가 RLP 세그먼트가 단계 S420에서 최종 RLP 세그먼트라는 것을 결정한다면, 최종 RLP 패킷은 단계 S440에서 해독된다. 또한, 최종 RLP 세그먼트의 부분 태그는 단계 S440에서 메모리로 송신된 단계 S270으로부터의 인증 태그와 더불어 제 5 의사랜덤 비트 AESk(2, 최종 바이트 번호)의 LSB 에 대해 XOR 연산이 수행된다. 제 5 의사랜덤 비트의 생성에 대한 설명은 간략화를 위해 생략될 것이 다. 또한, 당업자라면 제 4 및 제 5 의사랜덤 비트를 생성하는 방법이 전술한 바와 같이 제 2 및 제 3 의사랜덤 비트를 생성하는 방법과 동일하다는 것을 이해할 것이다. 또한, 옵션으로서, 계산된 태그를 32 비트 값으로 감소시키기 위해 계산된 태그에 대해 제 2 해시가 행해질 수 있다.
중앙 처리기(CP)는 모든 RLP 세그먼트를 결합하여 애플리케이션 패킷을 형성한다. CP는 또한 단계 S430 및 S440에서 수신된 모든 부분 태그들을 가산한다. 만약 계산된 부분 태그들의 합산이 수신된 인증 태그와 동일하다면, 애플리케이션 패킷은 단계 S450에서 검증된다.
전술한 실시예에서, 보전 방법, 암화화 방법 및 해독화 방법은 블럭 사이즈, 가령 64 비트(8바이트)의 배수인 RLP 세그먼트에 대해 기술되었다. 다시 말해서, RLP 세그먼트는 64비트의 스탠다드 블럭 사이즈로 이루어졌다. 아래의 실시예에서, 스탠다드 블럭 사이즈가 아닌, 가령 64비트의 배수가 아닌 RLP 패킷이 기술될 것이다. 스탠다드 RLP 세그먼트 블럭 사이즈와 비 스탠다드 RLP 세그먼트 블럭 사이즈 간의 상이한 측면(단계)만이 간략화를 위해 기술될 것이다.
블럭 사이즈의 비 배수
애플리케이션 패킷의 RLP 세그먼트가 블럭 사이즈의 배수가 아닌, 가령 64비트의 배수가 아니고 비트 시퀀스 번호가 제공된다고 가정하면, 64비트의 배수인 개시 바이트를 식별할 수가 있다. 일단 64비트의 배수인 개시 바이트가 식별된다면, 보편적 해시(universal hash)가 64비트 값에 대해 수행될 수 있다.
인식되는 바와 같이, "64비트의 배수"와 종료 비트 이전의 비트는 적절히 관리되어야만 한다. 64비트의 배수가 아닌 RLP 세그먼트는 RLP 세그먼트의 개시 세그먼트에서 제로들과 함께 프리 펜딩(pre-pended)될 수 있으며, 제로들은 또한 RLP 세그먼트의 종료 세그먼트에 부착되어 64비트 암호문 블럭 Ci를 완성할 수 있다.
갈로이스 필드(Galois Field)(264)에 기반하여 가산 및 곱셈이 계산될 수 있거나 다른 필드가 변경을 위해, 가령 64비트보다 큰 변조기 프라임(a modulator prime)을 통해 동작하기 위해 사용될 수 있다.
암화화 및 부분 태그 생성 과정의 나머지는 전술한 도 1 내지 도 4와 관련하여 기술된 과정들과 유사하다. 또한, 인증 태그 생성 방법, RLP 패킷의 해독화 방법, RLP 패킷의 재송신 방법 및 검증 방법은 전술한 것과 동일하다. 도 5 및 도 6과 그 설명을 참조하라.
가변 길이 애플리케이션 패킷
애플리케이션 패킷은 또한 다양한 바이트 길이를 가질 수 있다. 따라서, 본 발명의 실시예들이 애플리케이션 패킷에 적용되는 방법이 제공될 것이다. 전술한 실시예들의 차이가 되는 측면들만 간략화를 위해 기술될 것이다.
애플리케이션 패킷은 가변 바이트 길이를 가질 수 있다. 종래의 기술에서, 가변 바이트 길이를 갖는 애플리케이션 패킷은 보편적 해시 계산의 부분으로서 또는 태그 암호화에 대한 입력으로서 길이(블럭의 개수) 파라미터를 포함함으로써 처리될 수 있다. 가령, 최종의 부분적으로 충진된 블럭을 충진하는 데 패 딩(padding)이 사용될 수도 있다. 그러나, 이러한 방법은 이 실시예에서는 사용될 수 없는데, 그 이유는 그 길이는 RLP 세그먼트가 순서없이 수신될 때에는 알려지지 않기 때문이다.
개시 바이트 및 최종 바이트의 바이트 번호들은 바이트 길이 값을 대체하는 데 사용될 수 있다. C0 값은 개시 바이트의 번호로 설정될 수 있으며, 이는 C0 × A0의 항에 기여할 수 있다. 가령, A0은 의사랜덤의 사전계산되고 고정된 값일 수 있거나 AO은 가령 의사랜덤 스트림 Ai 내의 A1에 선행하는 64비트 값일 수 있으며 CO은 애플리케이션 패킷에 선행하는 개시 비트이다.
AO이 임의의 C0(개시 바이트 번호)에 대해 의사랜덤 스트림 Ai 내의 A1에 선행하는 64비트 값이며, 임의의 CO는 64비트 바운더리의 배수가 아니라고 가정하면, A0은 개시 바이트 번호를 포함하는 블럭에 선행하는 64비트 의사랜덤 블럭으로 설정된다. RLP 플로우, 가령 바이트 0, 1, 2, 및 3의 개시 바이트에 대해 추가의 단계가 필요한데 그 이유는 선행하는 블럭이 존재하지 않기 때문이다. 예시적으로, A0은 제 6 의사랜덤 비트 AESk(3, 0)의 최종 바이트가 되도록 설정될 수 있거나 A0=AESk(1, 264-1)로서 설정될 수도 있으며, 이는 1 mod 264에 선행하는 값이다. 주목할 것은 RLP 스트림이 실질적으로 264의 64비트 블럭에 도달할 수 없다는 것이다. 따라서, AES에 입력되는 전체 바이트 번호는 64비트라는 것이 가정된다. 따라서, 부분 64비트 태그를 생성하기 위해, C0은 개시 바이트 번호(64비트)가 되며, A0은 의사랜덤 스트림 Ai 내의 A1에 선행하는 64비트 마스크이며, 가령 A0=선 행하는 AESk (1,...) 출력 비트의 최종 64비트이다. RLP 플로우의 개시 8바이트에 대한 CO에 대해 특히 전술한 바와 같이 A0가 생성된다.
제 7 의사랜덤 비트 AESk (2, 최종 바이트 번호)를 사용하여 암호화된 태그(인증 태그)를 생성할 때, 상이한 바이트 번호에서 종료하는 애플리케이션 패킷은 상이한 암호화 태그를 가질 것이다. 또한, 제 7 의사랜덤 비트를 생성하는 방법은 전술한 제 3 및 제 4 의사랜덤 비트를 생성하는 방법과 동일할 수 있다. 태그를 해독하기 위해, 128비트 블럭 번호가 사용되는 것이 아니고 AES 입력으로서 정확한 최종 바이트 번호가 사용될 수 있다. 두 개의 상이한 메시지, 가령 64비트 길이의 배수인 메시지 M과 메시지 M에 후속하는 0의 바이트는 동일한 태그를 생성할 수 있다. 그러나, 각각의 메시지는 상이하게 암호화되는데, 그 이유는 각각의 메시지에 대해 랜덤 스트링이 부가되기 때문이다.
64비트의 비 배수에서 개시하고 종료하지만 동일한 애플리케이션 패킷 내에 속하는 RLP 세그먼트에 대해, Ai는 RLP 세그먼트의 개시 바이트에서 그리고 다음의 RLP 세그먼트의 개시 바이트에서 재사용될 수 있다. 도 8을 참조하면, 64비트의 비 배수에서 종료하는 애플리케이션 패킷과 64비트의 비 배수에서 개시하는 다음의 애플리케이션 패킷이 기술될 것이다.
RLP 패킷은 제로로 패딩되어 8바이트 Ci를 완성할 수 있다. 여기서 Ai는 모든 애플리케이션 패킷에 대해 재사용될 수 있다. 다시 말해서, Ai는 제 1 애플리케이션 패킷의 종료점에서 사용될 것이며 또한 제 2 애플리케이션 패킷의 개시점에서 사용될 것이다.
제 2 애플리케이션 패킷의 개시 바이트는 현재의 i에 기반하여 8바이트 Ai를 지속적으로 사용할 것이며, 여기서 i는 (최종 바이트 번호/8)과 동일하다. 제 1 애플리케이션 패킷의 종료 바이트에 대해, 가령, 8X+1, 8X+2 또는 8X+3 바이트에 대해, 최종 바이트와 관련된 64비트 Ai(i는 (최종 바이트 번호/8)과 동일함)가 사용된다.
가령, 본 발명의 실시예는 전체 애플리케이션 패킷을 재결합하도록 대기할 필요없이 데이터가 수신중일 때 메시지 인증 태그 검증을 "온더플라이(on the fly)"로 수행할 수 있도록 한다. 본 실시예는 바이트 레벨 암호화와 인증 처리 및 비순서 처리를 가능하게 한다.
따라서 본 발명의 실시예가 여러 방식으로 변경될 수 있다는 것은 자명할 것이다. 그러한 변경은 본 발명의 범주를 벗어난 것으로 간주되지 않으며 그러한 모든 변형은 본 발명의 영역 내에 포함되는 것으로 간주된다.

Claims (12)

  1. 송신용 애플리케이션 패킷을 처리하는 방법으로서,
    다수의 블럭을 포함하는 바이트 스트림 내에서 애플리케이션 패킷의 다수의 세그먼트를 수신하는 단계와,
    상기 바이트 스트림 내에서 다수의 블럭을 그룹화함으로써 상기 바이트 스트림 내의 다수의 슈퍼블럭을 생성하는 단계와,
    상기 다수의 슈퍼블럭에 대한 제 1 의사랜덤 비트를 생성하는 단계와,
    상기 다수의 세그먼트 각각의 시작부분 대한 블럭 번호 및 슈퍼블럭 번호를 결정하는 단계와,
    상기 바이트 스트림 내의 다수의 세그먼트 각각의 끝부분에 대한 블럭 번호 및 슈퍼블럭 번호를 결정하는 단계와,
    상기 바이트 스트림 내의 다수의 세그먼트 각각의 결정된 시작 부분과 끝부분 간의 블럭 번호들 및 슈퍼블럭 번호들과 관련된 제 1 의사 랜덤 비트에 기반하여, 상기 바이트 스트림 내의 상기 다수의 세그먼트 각각에 대한 부분 태그를 생성하는 단계와,
    상기 애플리케이션 패킷의 최종 세그먼트와 관련된 최종 부분 태그를 포함하는 부분 태그들을 조합하여 누산된 태그를 생성하는 단계와,
    상기 누산된 태그와 제 2 의사 랜덤 비트에 기반하여 인증 태그를 생성하는 단계와,
    상기 인증 태그를 저장하는 단계와,
    상기 인증 태그를 포함하는 상기 다수의 세그먼트를 송신하는 단계를 포함하는
    송신용 애플리케이션 패킷의 처리 방법.
  2. 제 1 항에 있어서,
    상기 인증 태그 생성 단계는 상기 누산된 태그와 상기 제 2 의사랜덤 비트에 대해 배타적 OR 연산(exclusive-OR operation)을 수행하는 단계를 포함하는
    송신용 애플리케이션 패킷의 처리 방법.
  3. 제 1 항에 있어서,
    상기 다수의 세그먼트 각각에 대한 부분 태그를 생성하는 단계는
    Figure 112011006917975-pct00005
    을 포함하며, S는 슈퍼블럭 번호이며, b는 슈퍼블럭 내의 블럭 번호이며, n은 슈퍼블럭 내의 블럭들의 개수이며, C는 세그먼트 내의 블럭 번호이며, As는 제 1 의사랜덤 비트인
    송신용 애플리케이션 패킷의 처리 방법.
  4. 제 1 항에 있어서,
    제 3 의사랜덤 비트의 각각의 부분과 상기 다수의 세그먼트에 대해 배타적 OR 연산을 수행함으로써 상기 다수의 세그먼트를 암호화하여 암호문 블럭을 생성하는 단계를 더 포함하는
    송신용 애플리케이션 패킷의 처리 방법.
  5. 제 1 항에 있어서,
    상기 부분 태그의 생성 단계는 상기 애플리케이션 패킷의 시작 바이트 번호와 제 4 의사랜덤 비트를 승산하는 단계를 포함하되, 상기 제 4 의사랜덤 비트는 키 k 및 크립토싱크(cryptosync) 값을 갖는 AES를 사용하여 생성되며, 상기 크립토싱크 값은 상기 애플리케이션 패킷에 선행하는 바이트 번호인
    송신용 애플리케이션 패킷의 처리 방법.
  6. 제 1 항에 있어서,
    상기 다수의 세그먼트의 최종 세그먼트의 재송신을 위한 요청을 수신하는 단계와,
    상기 다수의 세그먼트의 최종 세그먼트에 상기 저장된 인증 태그를 부착하는 단계와,
    상기 최종 세그먼트와 상기 인증 태그를 재송신하는 단계를 더 포함하는
    송신용 애플리케이션 패킷의 처리 방법.
  7. 제 6 항에 있어서,
    상기 최종 세그먼트를 다수의 조각(fragment)으로 재세분화(refragmenting)하는 단계를 더 포함하되,
    상기 재송신 단계는 상기 다수의 조각과 상기 인증 태그를 송신하는
    송신용 애플리케이션 패킷의 처리 방법.
  8. 제 1 항에 있어서,
    상기 다수의 세그먼트 중 적어도 하나의 사이즈가 블럭 사이즈의 배수가 아니라면,
    상기 방법은,
    블럭 사이즈의 배수인 사이즈를 갖는 세그먼트를 식별하는 단계와,
    상기 블럭 사이즈의 배수인 세그먼트의 시작 부분에 대해 앞에 0을 덧붙이거나(pre-pending) 블럭 사이즈의 배수인 세그먼트의 끝부분에 대해 뒤에 0을 덧붙이 는(appending) 것 중 적어도 하나를 수행하는 단계를 더 포함하는
    송신용 애플리케이션 패킷의 처리 방법.
  9. 수신된 애플리케이션 패킷 세그먼트를 처리하는 방법으로서,
    다수의 블럭을 포함하는 바이트 스트림 내에서 애플리케이션 패킷의 다수의 세그먼트를 수신하는 단계와,
    상기 바이트 스트림 내에서 다수의 블럭을 그룹화함으로써 상기 바이트 스트림 내의 다수의 슈퍼블럭을 생성하는 단계와,
    상기 다수의 슈퍼블럭에 대한 제 1 의사랜덤 비트를 생성하는 단계와,
    상기 다수의 세그먼트 각각의 시작 부분에 대한 블럭 번호 및 슈퍼블럭 번호를 결정하는 단계와,
    상기 바이트 스트림 내의 상기 다수의 세그먼트 각각의 끝부분에 대한 블럭 번호 및 슈퍼블럭 번호를 결정하는 단계와,
    상기 바이트 스트림 내의 상기 다수의 세그먼트 각각의 결정된 시작 부분과 끝부분 간의 블럭 번호들 및 슈퍼블럭 번호들과 관련된 제 1 의사 랜덤 비트에 기반하여, 상기 바이트 스트림 내의 상기 다수의 세그먼트 각각에 대한 부분 태그를 생성하는 단계와,
    상기 부분 태그와, 상기 수신된 다수의 세그먼트와, 상기 수신된 인증 태그를 메모리 내에 저장하는 단계와,
    상기 수신된 다수의 세그먼트들을 조합하여 애플리케이션 패킷을 생성하는 단계와,
    상기 부분 태그들을 조합하여 계산된 태그를 생성하는 단계와,
    상기 계산된 태그와 상기 수신된 인증 태그에 기반하여 애플리케이션 패킷의 신뢰성(authenticity)을 검증하는 단계를 포함하는
    수신된 애플리케이션 패킷 세그먼트 처리 방법.
  10. 제 9 항에 있어서,
    상기 다수의 세그먼트 각각에 대한 부분 태그를 생성하는 단계는
    Figure 112011006917975-pct00006
    을 포함하며, S는 슈퍼블럭 번호이며, b는 슈퍼블럭 내의 블럭 번호이며, n은 슈퍼블럭 내의 블럭들의 개수이며, C는 세그먼트 내의 블럭 번호이며, As는 제 1 의사랜덤 비트인
    수신된 애플리케이션 패킷 세그먼트 처리 방법.
  11. 제 9 항에 있어서,
    상기 다수의 세그먼트의 수신된 최종 세그먼트에 대해 최종 부분 태그를 생성하는 단계와,
    상기 최종 부분 태그와 제 2 의사랜덤 비트의 LSB(a least significant bits)에 대해 배타적 OR 연산을 수행하는 단계를 더 포함하는
    수신된 애플리케이션 패킷 세그먼트 처리 방법.
  12. 제 9 항에 있어서,
    상기 다수의 세그먼트의 최종 세그먼트의 재송신을 수신하는 단계와,
    상기 다수의 세그먼트의 수신된 최종 세그먼트에 대해 최종 부분 태그를 생성하는 단계와,
    상기 최종 부분 태그와 제 2 의사랜덤 비트의 LSB에 대해 배타적 OR 연산을 수행하는 단계를 더 포함하는
    수신된 애플리케이션 패킷 세그먼트 처리 방법.
KR1020097010385A 2006-11-21 2007-11-19 송신용 애플리케이션 패킷 처리 방법과 수신된 애플리케이션 패킷 세그먼트 처리 방법 KR101088549B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US86033006P 2006-11-21 2006-11-21
US60/860,330 2006-11-21
US11/976,126 US8122247B2 (en) 2006-10-23 2007-10-22 Processing method for message integrity with tolerance for non-sequential arrival of message data
US11/976,126 2007-10-22
US11/984,400 US8204216B2 (en) 2006-10-23 2007-11-16 Processing method for message integrity with tolerance for non-sequential arrival of message data
US11/984,400 2007-11-16
PCT/US2007/085092 WO2008064153A2 (en) 2006-11-21 2007-11-19 Processing method for message integrity with tolerance for non-sequential arrival of message data

Publications (2)

Publication Number Publication Date
KR20090071656A KR20090071656A (ko) 2009-07-01
KR101088549B1 true KR101088549B1 (ko) 2011-12-05

Family

ID=39430534

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097010385A KR101088549B1 (ko) 2006-11-21 2007-11-19 송신용 애플리케이션 패킷 처리 방법과 수신된 애플리케이션 패킷 세그먼트 처리 방법

Country Status (5)

Country Link
EP (1) EP2087635A4 (ko)
JP (1) JP2010510756A (ko)
KR (1) KR101088549B1 (ko)
CN (1) CN101542962B (ko)
WO (1) WO2008064153A2 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101729250B (zh) * 2008-10-21 2014-03-26 日电(中国)有限公司 增量可证数据完整性验证方法、设备和系统
JP2010192944A (ja) * 2009-02-13 2010-09-02 Sony Corp コンテンツ配信装置、コンテンツ利用装置、コンテンツ配信システム、コンテンツ配信方法、およびプログラム
US10198248B2 (en) * 2012-07-11 2019-02-05 Intel Corporation Parallel processing of a single data buffer
CN104156326A (zh) * 2014-08-04 2014-11-19 浪潮(北京)电子信息产业有限公司 一种实现数据一致性的方法
DE112015005991B4 (de) 2015-01-19 2024-02-08 Mitsubishi Electric Corporation Paketsendevorrichtung, Paketempfangsvorrichtung, Paketsendeprogramm und Paketempfangsprogramm
WO2018138006A1 (en) * 2017-01-25 2018-08-02 Koninklijke Kpn N.V. Guaranteeing authenticity and integrity in signalling exchange between mobile networks
EP4054113A1 (en) * 2017-01-25 2022-09-07 Koninklijke KPN N.V. Guaranteeing authenticity and integrity in signalling exchange between mobile networks

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5008935A (en) * 1989-06-30 1991-04-16 At&T Bell Laboratories Efficient method for encrypting superblocks of data
US5608801A (en) * 1995-11-16 1997-03-04 Bell Communications Research, Inc. Efficient cryptographic hash functions and methods for amplifying the security of hash functions and pseudo-random functions
US5809148A (en) * 1996-05-17 1998-09-15 Motorola, Inc. Decryption of retransmitted data in an encrypted communication system
ES2219883T3 (es) * 1997-04-14 2004-12-01 Siemens Aktiengesellschaft Procedimiento y dispositivo para la formacion y comprobacion de una suma de comprobacion para datos digitales que estan agrupados en varios segmentos de datos.
US7966372B1 (en) * 1999-07-28 2011-06-21 Rpost International Limited System and method for verifying delivery and integrity of electronic messages
US20020051537A1 (en) * 2000-09-13 2002-05-02 Rogaway Phillip W. Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function
US7046802B2 (en) * 2000-10-12 2006-05-16 Rogaway Phillip W Method and apparatus for facilitating efficient authenticated encryption
US6963976B1 (en) * 2000-11-03 2005-11-08 International Business Machines Corporation Symmetric key authenticated encryption schemes
CN1349331A (zh) * 2001-12-03 2002-05-15 上海交通大学 分级标记防篡改系统
US7321659B2 (en) * 2003-10-01 2008-01-22 International Business Machines Corporation Simple universal hash for plaintext aware encryption
WO2005076522A1 (en) * 2004-02-10 2005-08-18 Cryptico A/S Methods for generating identification values for identifying electronic messages
WO2005111926A1 (en) * 2004-05-18 2005-11-24 Silverbrook Research Pty Ltd Method and apparatus for security document tracking

Also Published As

Publication number Publication date
EP2087635A2 (en) 2009-08-12
JP2010510756A (ja) 2010-04-02
CN101542962A (zh) 2009-09-23
WO2008064153A2 (en) 2008-05-29
WO2008064153A3 (en) 2008-09-04
EP2087635A4 (en) 2017-07-05
KR20090071656A (ko) 2009-07-01
CN101542962B (zh) 2013-11-06

Similar Documents

Publication Publication Date Title
US8204216B2 (en) Processing method for message integrity with tolerance for non-sequential arrival of message data
US7649992B2 (en) Apparatuses for encoding, decoding, and authenticating data in cipher block chaining messaging authentication code
JP4836493B2 (ja) リアルタイム転送プロトコル(rtp)パケット認証のための方法
KR101088549B1 (ko) 송신용 애플리케이션 패킷 처리 방법과 수신된 애플리케이션 패킷 세그먼트 처리 방법
US9674204B2 (en) Compact and efficient communication security through combining anti-replay with encryption
JP2007140566A (ja) 効率的なパケット暗号化方法
CN107592968B (zh) 生成密码校验和
JP2020513117A (ja) カウンタベースの暗号システムにおける改良型認証付き暗号化のための方法及びシステム
US8122247B2 (en) Processing method for message integrity with tolerance for non-sequential arrival of message data
Zhang et al. Energy efficiency of encryption schemes applied to wireless sensor networks
Wool A note on the fragility of the" Michael" message integrity code
EP1615370B1 (en) Authentication of short messages
US8229110B1 (en) Pipelined packet encryption and decryption using counter mode with cipher-block chaining message authentication code protocol
KR20200067265A (ko) 실시간 데이터 전송을 위한 블록 암호 장치 및 방법
GB2459735A (en) Hybrid asymmetric / symmetric encryption scheme which obviates padding
KR100551992B1 (ko) 어플리케이션 데이터의 암호화 및 복호화 방법
EP1279250A2 (en) Generation of keyed integer permutations for message authentication codes
JP5355408B2 (ja) メッセージデータの非順次着信に対する許容度を有するメッセージ完全性のための処理方法
WO2003049363A1 (en) System and method for symmetrical cryptography
Rose et al. Combining message authentication and encryption
KR100571178B1 (ko) 메시지의 암호화 및 복호화 방법
Adekunle et al. A resourceful combined block cipher mode of operation for packetised network communication
Oszywa et al. Combining message encryption and authentication

Legal Events

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

Payment date: 20141118

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151113

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161111

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171116

Year of fee payment: 7