KR20030009340A - 패킷 데이터 통신 시스템에서 암호-동기화를 구현하기하기 위한 방법 및 장치 - Google Patents

패킷 데이터 통신 시스템에서 암호-동기화를 구현하기하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR20030009340A
KR20030009340A KR1020027009289A KR20027009289A KR20030009340A KR 20030009340 A KR20030009340 A KR 20030009340A KR 1020027009289 A KR1020027009289 A KR 1020027009289A KR 20027009289 A KR20027009289 A KR 20027009289A KR 20030009340 A KR20030009340 A KR 20030009340A
Authority
KR
South Korea
Prior art keywords
state vector
frame
communication channel
rate
frames
Prior art date
Application number
KR1020027009289A
Other languages
English (en)
Other versions
KR100840146B1 (ko
Inventor
앤서니 모로
Original Assignee
콸콤 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 콸콤 인코포레이티드 filed Critical 콸콤 인코포레이티드
Publication of KR20030009340A publication Critical patent/KR20030009340A/ko
Application granted granted Critical
Publication of KR100840146B1 publication Critical patent/KR100840146B1/ko

Links

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04KSECRET COMMUNICATION; JAMMING OF COMMUNICATION
    • H04K1/00Secret communication
    • 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/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Communication Control (AREA)

Abstract

암호 통신을 사용하는 패킷 데이터 통신 시스템에서 암호-동기화를 달성하기 위한 방법 및 장치에 관한 발명이다. 송신기에서, 상태 벡터는 소정의 속도로 증가되고 암호화 모듈에 제공된다. 암호화 모듈은 데이터 프레임을 순차적으로 암호화하기 위해 상태 벡터를 사용한다. 암호화에 앞서 프레임 드롭 기간 중에, 상태 벡터는 디스에이블되고, 그에 따라 데이터 프레임의 순차적 암호화를 가능케한다. 수신기에서, 프레임 드롭 상태 중에, 상태 벡터는 드롭된 프레임 수에 비례하여 전진한다. 수신기에서의 언더플로 상태 중에, 상태 벡터는 언터플로 상태 기간 동안 디스에이블되고, 언더플로 상태가 통과되면 인에이블 된다.

Description

패킷 데이터 통신 시스템에서 암호-동기화를 구현하기 하기 위한 방법 및 장치{METHOD AND APPARATUS FOR ACHIEVING CRYPTO-SYNCRONIZATION IN A PACKET DATA COMMUNICATION SYSTEM}
패킷 데이터 통신 분야는 인터넷의 인기로 폭넓은 호응을 받아 왔다. 처음에는, 다양한 통신 컴포넌트들과의 패킷 데이터 통신이 유선을 통해 수행되었다. 최근에는, 무선 전화기나 무선 모뎀과 같은 다른 무선 통신 장치들의 형태의 패킷 데이터의 무선 전송을 필요로 하는 응용 분야가 나타났다. 최근에, 이러한 무선 통신 장치들은 특정 전송이 의도하지 않은 누군가에 의해 방해받지 않도록 보장하기 위한 기술을 필요로 하게 되었다. 그러한 보안 기술들은 흔히 암호화 기술을 사용하고, 군사용, 경찰용 및 다른 보안 응용 분야와 같은 곳에 유용하다.
무선 통신 장치에서 암호화 기술을 사용하는 한가지 기술은 아날로그 신호를 이산 데이터 패킷, 또는 프레임으로 디지털화하여 각 프레임에 대해 무작위 코드를 발생하고 그 코드를 각 프레임에 적용하여 거기에 포함된 정보를 암호화하는 것이다. 이 기술에 의해 발생된 무작위 코드는 공지된 키 암호화 기술을 사용하여 유도될 수 있으며, 이 기술은 공용키 또는 코드를 사용하여 정보를 암호화하고 비밀키를 사용하여 정보를 복호화한다.
위에 설명된 암호화 기술은 TCP나 IP와 같은 많은 데이터 전송 프로토콜들의 속성 때문에 데이터 통신 시스템에서의 사용에 특히 적절하다. 그러한 시스템에서, 데이터는 이산 세그먼트 또는 데이터 프레임으로 전송되고, 각 데이터 프레임은 일반적으로 소정 수의 정보 비트를 포함한다. 선택적으로, 다른 데이터 프레임들은 소정의 지속 시간에 의해 결정되고, 각 프레임 내에 가변 수의 정보 비트를 포함한다. 전통적으로, 그러한 데이터 통신 시스템은 시간이 중요치 않은 정보 즉, 이메일, 데이터 파일 및 인터넷 웹 사이트 정보와 같은 정보를 전송하는데 사용되어 왔다.
최근에는 데이터 통신 시스템은 인간의 음성 및 비디오 정보를 포함하는 시간이 중요한 정보의 전송에도 사용되고 있다. 그러한 시스템에서, 시간이 중요한 정보는 디지털 정보로 변환되고, 흔히 위의 설명과 같이 데이터 프레임으로도 변환된다. 그리고 나서, 데이터 프레임은 TCP 또는 IP와 같은 공지의 데이터 전송 프로토콜을 사용하여 인터넷과 같은 컴퓨터 네트워크를 통해 전송된다.
데이터 프로토콜을 사용하는 시간이 중요한 정보의 전송의 주된 문제점들 중 하나는 전송 프로세스와 관련된 지연이다. 많은 데이터 프로토콜들은 데이터 세그먼트가 제대로 수신되지 않는 경우에는 재전송 프로세스를 사용한다. 재전송 프로세스는 그 다음 전송되는 데이터 프레임에 지연 또는 레이턴시(latency)를 유도하고, 이것은 시간이 중요한 데이터에 악영향을 미친다. 예를 들어, 음성에서 수백 밀리초 이상의 지연은 허용할 수 없는 음성 품질을 야기한다.
데이터 통신 시스템을 사용하여 시간이 중요한 정보를 전송할 때의 문제를 감소시키기 위한 한가지 해결책은 레이턴시가 소정의 임계값을 초과하는 경우에 송신기 또는 수신기 중 한 곳에서 데이터 프레임을 드롭(drop)하는 것이다. 송신기에서는, 프레임들은 전송될 총 프레임 중 일부만 전송되므로써 드롭된다. 수신기에서는, 프레임들은 수신된 총 프레임의 일부가 무시되므로써 드롭된다.
데이터 프레임의 드롭이 레이턴시 문제를 감소시키기는 하지만, 이것은 위에 설명된 암호화 기술을 사용하는 통신 시스템에 또다른 문제를 야기한다. 즉, 프레임이 송신기에서 드롭되면, 암호화 프로세스의 결과인 각 프레임의 순차적인 넘버링이 방해받기 때문에 수신기에서의 다음 프레임의 복호화가 불가능하게 된다. 복호화 프로세스는 송신기에서의 암호화 프로세스에 의해 발생될 때 연속적으로 넘버링된 일련의 프레임에 따라 달라진다. 따라서, 프레임이 송신기에서 암호화 전에 드롭되면, 복호화 프로세스에 의해 수신된 프레임들은 더이상 암호화 프로세스에 동기화되지 않고, 이것은 프레임의 복호화에 문제점을 야기한다.
본 발명은 일반적으로는 정보의 보안을 위해 암호화 기술을 사용하는 패킷 데이터 통신 분야에 관한 것이고, 보다 구체적으로는 그러한 통신 시스템에서 암호-동기화를 구현하기 위한 방법 및 장치를 제공하는 것에 관한 발명이다.
도1은 본 발명에서 사용되는 암호화 보안 기술을 사용하는 무선 송신기에 대한 기능 블록도.
도2a, 2b 및 2c는 도1의 송신기에 사용된 보코더 프레임 및 상태 벡터 간의 관계를 나타낸다.
도3은 본 발명에서 사용된 암호화 보안 기술을 사용하는 무선 수신기에 대한 기능 블록도.
도4a, 4b 및 4c는 도3의 수신기에서 사용된 보코더 프레임 및 상태 벡터 간의 관계를 나타낸다.
도5는 도1의 송신기에서 사용된 본 발명의 방법을 설명하는 흐름도.
도6은 언더플로 조건에서 도3의 수신기에서 사용된 본 발명의 방법을 설명하는 흐름도.
도7은 프레임 드롭 조건에서 도3의 수신기에서 사용된 본 발명의 방법을 설명하는 흐름도.
본 발명은 송신기 및 수신기 간의 패킷 데이터 통신 시스템에서 암호-동기화를 구현하기 위한 방법 및 장치에 관한 것이다. 송신기에서, 정보는 데이터 프레임으로 디지털화되고, 보코더 프레임을 발생하는 보코더에 제공된다. 보코더 프레임은 메모리에 저장되고, 전송되기 전에 각 보코더 프레임을 암호화하기 위한 암호화 모듈에 제공된다. 보코더 프레임은 각 프레임을 암호화 모듈에 의해 발생된 고유 코드 또는 코드북(codebook)과 결합시키므로써 암호화된다. 코드북은 일반적으로 보코더 프레임이 발생되는 다수의 속도인 소정의 속도에서 증가되는 일반적으로 순차적인 카운트인 적어도 상태 벡터를 사용하여 만들어진다.
프레임들이 송신기에서 드롭되어, 흔히 송신 레이턴시를 감소시키고, 상태 벡터는 드롭된 프레임 수에 비례하는 시간 동안 디스에이블된다. 그러므로, 프레임이 드롭되면, 상태 벡터는 증가되지 않는다. 원하는 프레임 수가 드롭되었으면, 상태 벡터는 다시 인에이블되고, 소정의 속도로 증가를 재개한다.
프레임 드롭의 기간 동안 상태 벡터를 중지시키면 암호화 모듈에 제공된 각 프레임의 순차적 암호화가 가능해진다. 이 기술은 수신기에서의 복호화 프로세스가 암호화 프로세스에 동기될 것을 보장하면서, 암호화 전에 송신기에서 임의의 수의 프레임의 드롭을 허용한다.
수신기에서, 프레임들은 수신되어 큐에 저장된다. 프레임들은 암호화 모듈에 제공되어 복호화된 보코더 프레임을 발생시킨다. 수신기 내에 위치한 상태 벡터 발생기는 소정의 속도로 증가된다. 각 프레임이 복호화 모듈에 제공될 때, 현재 상태 벡터로부터 유도된 코드북을 사용하여 복호화된다.
큐에 저장된 프레임의 수가 언더플로(underflow) 상태로 알려진 복호화할 프레임이 존재하지 않는 점까지 감소하면, 삭제 프레임이 직접 보코더에 제공되고, 상태 벡터 발생기는 디스에이블되어, 상태 벡터가 증가되지 못하도록 한다. 프레임이 추후에 큐에서 복호화 가능하게 되면, 상태 벡터 발생기는 인에이블되어, 상태 벡터가 증가되도록 하고, 연속 상태 벡터를 복호화 모듈에 제공하여 암호화 프로세스와의 암호-동기화를 유지한다.
주어진 시간에 복호화 전에 많은 프레임들이 큐에 저장되면, 지연 또는 레이턴시가 생겨난다. 전화 통신 동안에, 레이턴시는 사용자가 송신기에 말하는 시간과 음성이 수신측에 의해 수신되는 시간 사이에 불필요한 지연을 야기한다. 레이턴시 문제를 감소시키기 위해, 큐에 저장된 몇몇 프레임들은 복호화 모듈 또는 수신기의 임의의 다른 엘리먼트에 의해 처리되지 않는다. 이것은 프레임 드롭으로 알려져 있다.
프레임이 큐로부터 드롭되면, 상태 벡터는 다음 프레임의 암호-동기화가 유지되도록 조정된다. 이것을 달성하기 위해, 상태 벡터는 연속으로 드롭된 프레임에 1을 더한 수로 조정된다.
여기에 설명된 실시예들은 IS-05, IS-707 및 IS-99 잠정 표준의 CDMA 신호 처리 기술의 사용에 따라 동작하는 무선 통신 시스템에 관하여 설명된다. 본 발명이 그러한 통신 시스템 내의 사용에 특히 적절하기 하지만, 본 발명이 데이터 패킷, 데이터 프레임 또는 간단히 프레임으로 알려진 이산 패킷으로 정보를 전송하는 무선 및 유선 통신 시스템 및 위상-기반 통신 시스템을 포함하는 다양한 타입의 통신 시스템에서 사용될 수 있다는 점이 이해되어야 한다. 추가적으로, 이하 설명에서, 다양한 공지의 시스템들이 블록 형태로 제시된다. 이것은 설명의 간명함을 위한 것이다.
암호화 보안 기술을 사용하는 무선 송신기(100)에 대한 기능 블록도가 도1에 도시된다. 음성과 같은 오디오 정보는 통상적으로 마이크로폰인 트랜스듀서(102)에 의해, 음향 에너지에서 전기 에너지로 변환된다. 트랜스듀서(102)는 선택적으로 광에너지를 캡쳐하여 광에너지를 전기 신호로 변환하는 디지털 카메라 또는 비디오 레코더와 같은 비디오 장치를 포함한다. 트랜스듀서(102)에 의해 발생된 전기 에너지는 보코더(104)에 제공되고, 보코더(104)는 일반적으로 오디오 정보를 송신하는데 필요한 대역폭을 감소시킨다. 선택적으로, 비디오 처리 장치와 같은, 트랜스듀서의 타입에 적절한 처리 장치가 트랜스듀서(102)로서 카메라가 사용된 경우에, 보코더(104)를 대신하여 사용된다. 통상적으로, 보코더(104)는 일정한 고정 속도에서 데이터 프레임을 발생하고, 이 데이터 프레임은 원래 오디오 정보를 나타낸다. 선택적으로, 보코더(104)는 가변 속도로 데이터 프레임을 발생한다. 각 데이터 프레임은 일반적으로 그 길이가 수 밀리초 단위로서 고정되어 있다. 데이터 프레임은 이 실시예에서 메모리(106)에 제공되고, 암호화 및 송신기(100)의 다른 기능 요소에 의해 더 처리되기 전에 여기에 간단히 저장된다. 본 실시예에서, 메모리(106)는 보코더 프레임들이 보코더(104)에 의해 생성될 때 보코더 프레임을 저장하는데 사용되지 않는다. 그보다, 프레임은 암호화 모듈(108)에 직접 제공된다.
보코더(104)는 데이터 프레임 내에 그것이 발생되는 가변 데이터 속도를 제공하므로써 더 향상될 수 있다. 그러한 가변 속도 보코더의 예는 미국 특허번호 5,414,796(이하 '796), 발명의 명칭 "가변 속도 보코더"에서 발견할 수 있으며, 상기 발명은 본 발명의 출원인에게 양도되었고, 여기에 참고문헌으로 일체화되었다. 송신에 관한 정보를 사용할 수 없는 경우에는, 가변 속도 보코더는 감소된 데이터 속도로 데이터 프레임을 발생시키고, 이것은 무선 통신 시스템의 전송 용량을 증가시킨다. '796에 설명된 가변 속도 보코더에서, 데이터 프레임은 통신 시스템에서 사용되는 최대 데이터 속도의 전속도, 1/2속도, 1/4 속도 또는 1/8 속도의 데이터를 포함한다.
암호화 모듈(108)은 고유 코드 또는 코드북으로 각 데이터 프레임을 암호화하는 역학을 한다. 일반적으로, 한 코드북은 프레임이 보코더(104)에 의해 발생된 것과 동일한 속도에서 암호화될 각 데이터 프레임에 대해 발생된다. 그러므로, 한 코드북은 일반적으로 암호화될 각 데이터 프레임에 대해 사용가능하다. 다른 기술들은 2개의 데이터 프레임이 하나의 코드북으로 암호화될 수 있도록 하고, 코드북은 한 데이터 프레임의 2배의 비트들을 갖는다.
코드북은 몇가지 공지된 기술들 중 하나를 사용하여 만들어진다. 공지된 기술들로는 DES(Data Encryption Standard), FEAL 및 IDEA(International Data Algorithm)이 있다. 본 발명의 실시예에서, DES는 도1에 나타난 바와 같이, 하나 이상의 암호화 키와 함께 상태 벡터를 사용하여 코드북을 만들어 내는데 사용된다. 상태 벡터는, 가장 간단한 형태로는, 소정의 속도로 증가하는 카운팅 시퀀스이고, 일반적으로 데이터 프레임이 보코더(104)에 의해 발생되는 다수의 속도와 일치한다. 상태 벡터는 이산 전자 컴포넌트 또는 소프트웨어 명령어 집합과 결합된 디지털 마이크로프로세서와 같은 공지된 기술들을 사용하여 상태 벡터 발생기(110)에 의해 발생된다. 공지된 다른 기술들도 고려할 수 있다.
암호화 모듈(108)은 상태 벡터 발생기(110)가 증가될 때마다 한 코드북을 생성한다. 발생된 각 코드북은 일반적으로 데이터 프레임이 메모리(106)에 저장된 순서대로 메모리(106)에 저장된 한 데이터 프레임과 디지털로 결합되어, 암호화 모듈(108)에 제공된 매 데이터 프레임에 대해 하나의 암호화된 데이터 프레임을 생성한다. 코드북은 모듈로-2 연산을 사용하여 한 데이터 프레임을 한 코드북에 가산하는 것과 같은 공지 기술을 사용하여 데이터 프레임들과 결합된다. 또다른 실시예에서, 2개의 데이터 프레임들이 하나의 코드북에 부가되고, 이 실시예에서 코드북은 단일 데이터 프레임의 비트 수의 2배의 비트를 갖는다.
본 발명에서, 보코더(104)에 의해 발생된 모든 보코더 프레임들이 수신기에 전송되는 것은 아니다. 몇몇 프레임들은 암호화 모듈(108)에 의해 암호화되기 전에 삭제되거나 드롭된다. 프레임들은 드롭되어 송신기 및 수신기 사이의 레이턴시 또는 지연의 영향을 감소시킨다. 데이터 프로토콜이 일반적으로 높은 에러없이 수신된 프레임 비율을 보장하기 위해 프레임 재전송을 요구하기 때문에, 데이터 프로토콜을 사용하여 실시간 또는 거의 실시간으로 정보를 전송할 때는 레이턴시가 문제될 수 있다. 프레임 재전송은 다수의 프레임에서의 백업이 재전송되도록 하고, 이것은 레이턴시를 증가시킨다. 전송될 총 프레임 수를 감소시키므로써, 레이턴시는 감소되거나 삭제된다.
도1을 다시 참조하면, 처리기(120)는 일반적으로 프레임 드롭 프로세스 뿐만 아니라 송신기(100) 내의 다수의 프로세스들을 제어한다. 처리기(120)는 임의의 공지된 마이크로컴퓨터, DSP 또는 주문자 제작형 ASIC과 같은 디지털 처리 장치를 포함한다. 프레임들은 임의의 수의 방법으로 드롭될 수 있다. 예를 들어, 프레임들은 하나의 고정 속도, 2중 고정 속도, 가변 속도 또는 이러한 기술의 임의의 조합으로 드롭될 수 있다.
단일의 속도 프레임 드롭을 사용하면, 데이터 프레임은 소정의 고정 속도로 처리기(120)에 의해 드롭된다. 본 실시예예서, 속도는 보코더(104)에 의해 발생된 1백 프레임당 1 프레임의 드롭, 즉 1%의 속도이다. 처리기(120)는 보코더(104)에의해 발생된 프레임의 수를 카운트한다. 100번째 프레임이 발생될때, 처리기(120)는 그 메모리가 사용 중인 경우에 그 프레임을 메모리(106)에 저장하지 못하므로써 그 프레임을 드롭시킨다. 메모리(106)가 사용중이 아닌 경우에는, 100번째 프레임은 그냥 암호화 모듈(108)에 제공되지 않는다. 보코더(104)에 의해 발생된 다음 프레임, 101번째 프레임은 마찬가지로 메모리(106)에 제공되거나, 직접 암호화 모듈(108)에 제공된다. 선택적으로, 다른 소정의 고정된 속도가 사용될 수 있으나, 실험에 의해 10% 이상의 프레임 드롭은 수신기에서의 음성 품질을 떨어뜨린다는 사실이 밝혀졌다.
단일의 고정 속도 프레임 드롭 방식의 경우에, 프레임은 송신기 및 수신기 사이에 통신 채널 레이턴시의 양이 어느 정도인가에 관계없이 드롭된다. 그러나, 또다른 실시예에서, 처리기(120)는 통신 채널 레이턴시를 모니터링하고 통신 채널 레이턴시가 소정의 임계값을 초과하기만 하면 고정 속도 프레임 드롭 기술을 구현한다. 통신 채널 레이턴시는 일반적으로 통신 채널 품질을 모니터링하므로써 결정된다. 통신 채널 품질은 이하의 설명과 같이 공지된 방법에 의해 결정된다. 통신 채널 레이턴시가 소정의 임계값 이하로 떨어지면, 처리기(120)는 프레임 드롭 프로세스를 중단한다.
프레임 드롭은 또한 2중, 고정 속도 접근 방식을 사용하여 구현될 수 있다. 이 방법에서, 프레임들은 통신 채널 레이턴시에 따라 2개의 고정 속도 중 하나의 속도로 드롭된다. 제1 속도는 통신 채널 레이턴시가 소정의 임계값 이하일때 프레임을 드롭시키는데 사용된다. 제2 속도는 통신 채널 레이턴시가 소정의 임계값을초과할 때 프레임을 드롭시키는데 사용된다. 다시, 통신 채널 레이턴시는 일반적으로 통신 채널 품질로부터 유도되고, 통신 채널 품질은 채널 에러율에 따라 달라진다.
흔히, 통신 채널 품질 및 그에 기인한 통신 채널 레이턴시는 채널 에러율 또는 수신기에 의해 에러를 가진 상태로 수신된 프레임 수를 주어진 시간 주기 동안 전송된 프레임의 총수로 나눈 수로 표현된다. 2중 고정 속도 드롭 방법에서의 통상적인 소정의 임계값은 7%일 수 있으며, 이것은 일반적으로 저하된 채널 조건 때문에, 전송된 프레임의 7% 이상의 프레임이 에러를 가진 상태로 수신되면, 프레임은 제2 속도로 드롭됨을 의미한다. 제2 속도는 일반적으로 제1 속도보다 작다. 채널 품질이 좋으면, 에러율은 일반적으로 소정의 속도보다 작을 것이고, 따라서 프레임은 일반적으로 1 내지 4 퍼센트인 제1 속도를 사용하여 드롭된다.
실제에 있어서, 제1 프레임 드롭 속도는 1퍼센트일 수 있고, 제2 프레임 드롭 속도는 8퍼센트일 수 있다. 소정의 임계값은 저하된 채널 품질을 표시하는 레벨로 설정되고, 이것은 수신기에 의해 에러를 가진 상태로 수신된 프레임의 퍼센트로 표현된다. 본 실시예에서, 7퍼센트의 에러율이 소정의 임계값으로 선택된다. 처리기(120)는 공지된 수개의 방법 중 하나로 채널 품질을 결정할 수 있다. 예를 들어, 처리기(120)는 송신기(100)에 의해 수신된 NAK의 수를 카운트할 수 있다. NAK는 "수신되지 않았음"을 의미하는 통상적인 용어이다. NAK는 송신기(100)로부터 데이터를 수신시 에러를 검출하는 경우에 수신기에 의해 전송된다. NAK가 송신기(100)에 수신되면, 하나 이상의 앞서 송신된 프레임들은 재전송되는데, 그 프레임들은 NAK에서 확인된다. 높은 NAK 수는 열악한 채널 품질을 나타내고, 열악한 채널 상태를 극복하기 위해 더 많은 프레임 재전송이 필요하다. 전송된 프레임의 전력 레벨은 처리기(120)가 채널 품질을 결정하는데 사용할 수 있는 또다른 표시이다. 선택적으로, 처리기(120)는 메모리(106)와 같은 송신 큐에 저장된 프레임 수를 기초로 간단히 채널 품질을 결정할 수 있다. 열악한 채널 상태에서, 다수의 프레임 재전송에 기인한 프레임 백업이 메모리(106)에서 발생하고, 이것은 메모리(106)에 저장된 프레임 수를 증가시킨다. 채널 상태가 양호한 경우에는, 메모리(106)에 저장된 프레임 수가 비교적 적다.
채널 품질이 증가하는 경우에, 프레임은 제1 속도로 드롭된다. 채널 품질이 저하되면, 프레임은 제2의 더 높은 속도로 드롭된다.
채널 품질이 열악할 때 프레임이 더 높은 속도로 드롭되는 이유는 열악한 채널 상태에서는 더 많은 프레임 재전송이 발생하고, 이 경우에 프레임의 백업이 메모리(106)에서 전송되기를 기다려야 하기 때문이다. 수신기에서, 열악한 채널 상태에서, 수신기 버퍼는 에러없이 수신된 프레임이 부족하기 때문에 일단 언더플로되고, 채널 상태가 개선되면 오버플로(overflow)된다. 수신 버퍼가 언더플로되면, 사용자로의 음성 품질의 분열을 최소화하기 위해 삭제 프레임이 음성 디코더에 제공된다. 수신 버퍼가 오버플로되거나, 상대적으로 크면, 레이턴시가 증가한다. 그러므로, 통신 채널 품질이 저하되면, 송신기(100)에서 증가된 속도로 프레임들을 드롭하여, 메모리(106) 및 수신 버퍼 모두가 너무 커지지 않도록 하여 레이턴시를 허용가능한 레벨까지만 증가시키는 것이 바람직하다.
송신기(100)에서 프레임을 드롭시키는 또다른 방법은 통신 채널 레이턴시에 따라 가변 속도로 프레임을 드롭시키는 것이다. 이 실시예에서, 처리기(120)는 위에 설명된 기술 중 하나를 사용하여 통신 채널의 품질을 결정한다. 프레임이 드롭되는 속도는 통신 채널 품질의 역에 비례한다. 채널 품질이 채널 에러율에 의해 결정되면, 프레임이 드롭되는 속도는 채널 에러율에 직접 비례한다.
송신기(100)에서 프레임을 드롭시키는 또다른 방법은 데이터 프레임이 보코더(104)에 의해 인코딩되는 에러율에 따라 프레임을 드롭시키는 것이다. 이 실시예에서, 보코더(104)는 위에 설명한 바와 같이 가변 속도 보코더를 포함한다. 보코더(104)는 가변 데이터 속도로 오디오 정보를 데이터 프레임으로 인코딩하는데, 본 실시예에서 상기 가변 데이터 속도는 전속도, 1/2속도, 1/4속도 및 1/8 속도의 4가지 속도를 포함한다. 송신기 내에 위치한 처리기(120)는 일반적으로 위에 논의된 기술 중 하나를 사용하여 통신 채널 품질을 결정하므로써 통신 채널 레이턴시를 결정한다. 처리기(120)가 통신 채널이 소정의 임계값 이상으로 품질저하 되었다고 결정하면, 보코더(104)에 의해 발생된 가장 낮은 인코딩 속도를 갖는 데이터 프레임의 비율이 드롭된다. 이 실시예예서, 통신 채널이 소정의 임계값 이상으로 품질저하되면 1/8 속도 프레임의 비율이 드롭된다. 처리기(120)가 통신 채널이 제2 소정의 임계값 이상으로 품질되었다고 결정하면, 가장 낮은 인코딩 속도를 갖는 프레임에 비례하여 보코더(104)에 의해 발생된 두번째로 낮은 인코딩 속도를 갖는 데이터 프레임의 비율이 드롭된다. 이 실시예에서, 통신 채널이 보코더(104)에 의해 발생될 때 제2 소정의 임계값 이상으로 품질저하되는 경우에는 1/4 속도 프레임 및1/8 속도 프레임의 비율이 드롭된다. 마찬가지로, 통신 채널이 더 품질저하되는 경우에는 1/2 속도 및 전속도 프레임의 비율이 드롭된다. 관련 실시예예서, 통신 채널이 제2 소정의 임계값 이상으로 품질저하되면, 두번째로 낮은 인코딩 속도의 인코딩 속도를 갖는 데이터 프레임의 비율이 드롭되는 반면, 가장 낮은 인코딩 속도와 같은 인코딩 속도를 갖는 데이터 프레임은 드롭되지 않는다.
위 시나리오 중 임의의 시나리오에서 드롭된 프레임의 비율은 일반적으로 소정의 고정된 수이며, 각 프레임 인코딩 속도에 대해 동일할 수도 있고 다를 수도 있다. 예를 들어, 가장 낮은 속도 프레임이 드롭되면, 소정의 비율은 60%일 수 있다. 두번째로 낮은 프레임 및 가장 낮은 프레임이 모두 드롭되는 경우에, 소정의 비율은 60%일 수도 있고, 더 작은 비율 예컨대, 30%일 수도 있다.
암호화된 데이터 프레임이 암호화 모듈(108)에 의해 발생된 후에, 이들은 추가적인 처리 엘리먼트에 의해 요구될 때까지 메모리(106)에 저장되고, 선택적으로는 제2 메모리(미도시)에 저장된다. 예를 들어, 데이터 프로토콜이 암호화된 데이터 프레임을 전송하는데 사용되는 경우에는, 포맷팅 처리기(112)는 메모리(106)에 저장된 암호화된 데이터 프레임을 사용하여 공지된 TCP 데이터 프로토콜과 같이 사용중인 특정 데이터 프로토콜에 따라 데이터 세그먼트를 구성할 것이다. 선택적으로, 또는 추가적으로 포맷팅 처리기(112)는 주로 CDMA 통신 시스템에서 사용되는 공지된 RLP 데이터 프로토콜과 같은 하나 이상의 다른 데이터 프로토콜을 사용할 수 있다.
포맷화된 프레임들은 다음으로 모듈화기(114)에 제공된다. 모듈화기(114)는무선 통신 시스템의 소정의 모듈화 기술을 사용하여 포맷화된 프레임들을 모듈화한다. 서로 다른 모듈화 기술의 예는 시분할 다중접속(TDMA), 코드분할 다중접속(CDMA) 및 주파수분할 다중접속(FDMA)을 포함한다.
데이터 세그먼트들이 일단 모듈화되면, 트랜시버(116)에 의해 업컨버트 및 전송된다. 업컨버트된 신호는 수신기로의 무선 송신을 위해 안테나(118)에 제공된다.
위에 설명된 바와 같은 프레임 드롭 방법과 함께 암호화 방법을 사용하는 것의 문제점은 프레임 드롭 프로세스가 암호화 모듈(108)에 의해 발생된 암호화 프레임에서의 불연속성을 야기한다는 것이다. 불연속성은 프레임 드롭 프로세스 때문에 아무 보코더 프레임도 암호화될 수 없는 시간에서 증가하는 상태 벡터 발생기(110)에 의해 발생된 상태 벡터에 기인한다. 이것은 도2a,2b 및 2c에 가장 잘 도시되어 있다.
도2a는 1 내지 6으로 넘버링된 일련의 순차적인 보코더 프레임 및 각 보코더 프레임에 대응하는 상태 벡터 발생기(108)에 의해 발생된 상태 벡터의 값을 나타낸다. 이 실시예에서, 보코더 프레임들은 보코더(104)에 의해 매 20ms초당 한 프레임의 일정 비율로 발생된다. 각 보코더 프레임은 암호화 모듈(108)에 의해 사용되기 전에 메모리(106)에 간단히 저장된다. 선택적인 실시예에서, 보코더 프레임은 암호화 모듈(108)에 직접 제공된다. 다른 경우에, 보코더 프레임들은 보코더(104)가 보코더 프레임을 생성하는 속도와 동일한 속도로(이 실시예에서는 매 20 ms마다) 암호화 모듈(108)에 제공된다. 상태 벡터 발생기(110)는 소정의 속도, 일반적으로는 보코더 프레임이 보코더(104)에 의해 발생되는 속도의 배수인 속도로 증가된다.
도2a에서, 보코더 프레임(1)은 상태 벡터(1)로부터 유도된 코드북을 사용하여 암호화 모듈(108)에 의해 인코딩 된다. 프레임(2)이 다음으로 상태 벡터(2)로부터 유도된 코드북을 사용하여 인코딩되고, 프레임(3)이 상태 벡터(3)로부터 유도된 코드북을 사용하여 인코딩되며, 다른 프레임 들도 이와 마찬가지로 인코딩된다. 수신기에서, 암호화된 보코더 프레임은 송신기(100)에서 암호화되는 프레임들에 동기화된 상태 벡터를 사용하여 복호화된다. 즉, 상태 벡터(1)로부터 유도된 코드북을 사용하여 암호화된 보코더 프레임(1)은 1과 같은 상태 벡터로부터 유도된 코드북을 사용하여 복호화된다. 보코더 프레임(2)은 2와 같은 상태 벡터로부터 유도된 코드북을 사용하여 복호화된다.
도2b는 프레임이 송신기(100)에서 드롭될 때 도2a의 암호화 프로세스 문제를 나타낸다. 전과 마찬가지로, 보코더 프레임(1 내지 6)은 보코더(104)에 의해 발생된 순서대로 도시되어 있다. 첫째, 보코더 프레임(1)이 발생되어 상태 벡터(1)로부터 유도된 코드북을 사용하여 (메모리(106)를 사용할 수도 있고 사용하지 않을 수도 있음) 암호화 모듈(108)에 의해 인코딩된다. 다음으로, 보코더 프레임(2)은 보코더(104)에 의해 발생되어 상태 벡터(2)로부터 유도된 코드북을 사용하여 암호화된다. 다음으로, 프레임(3)은 보코더(104)에 의해 발생되지만, 처리기(120)는 적어도 하나의 프레임의 드롭되어야 하는지를 결정한다. 그러므로, 프레임(3)은 암호화 모듈(108)에 제공되지 않는다. 한편으로, 상태 벡터 발생기(110)는 계속증가되어, 상태 벡터(3)를 암호화 모듈(108)에 제공한다. 비록 사용되지 않더라도, 드롭되는 보코더 프레임(3) 때문에, 상태 벡터(3)로부터 기인한 코드북인 발생된다. 다음으로, 보코더 프레임(4)은 상태 벡터(4)로부터 유도된 코드북을 사용하여 발생되고 암호화된다.
수신기에서, 보코더 프레임(1)은 상태 벡터(1)로부터 유도된 코드북을 사용하여 수신 및 복호화된다. 그리고 나서, 보코더 프레임(2)은 상태 벡터(2)로부터 유도된 코드북을 사용하여 복호화된다. 보코더 프레임(3)이 드롭되었기 때문에, 수신되는 다음 프레임은 보코더 프레임(4)이다. 보코더 프레임(4)은 상태 벡터(3)로부터 유도된 코드북을 사용하여 복호화되고, 이것은 보코더 프레임(4)이 3과 같은 상태 벡터로부터 유도된 코드북을 사용하여 복호화되어야 하기 때문에, 이해할 수 없는 데이터가 된다.
본 발명을 사용하여, 보코더 프레임이 송신기(100)에서 드롭되면, 상태 벡터 발생기(110)는 디스에이블되어 프레임이 드롭된 시간 동안 상태 벡터는 증가되지 않는다. 이것은 도2c에 도시되어 있다. 도2c에 도시된 바와 같이, 보코더 프레임(1 내지 6)은 보코더(104)에 의해 발생된다. 그러나, 이 예에서, 보코더 프레임(3,4 및 5)은 처리기(120)에 의해 드롭된다. 보코더 프레임(1)은 상태 벡터(1)로부터 유도된 코드북을 사용하여 인코딩된다. 보코더 프레임(2)은 상태 벡터(2)로부터 유도된 코드북을 사용하여 인코딩된다. 보코더 프레임(3,4 및 5)은 처리기(120)에 의해 드롭된다. 처리기(120)는 명령을 상태 벡터 발생기(110)로 전송하여, 상태 벡터가 드롭된 3개의 프레임에 대해 증가되지 못하도록 한다. 충분한 수의 프레임들이 드롭되면, 처리기(120)는 다음 순서의 프레임, 이 예의 보코더 프레임(6)이 암호화 모듈(110)에 의해 암호화되도록 한다. 명령은 또한 처리기(120)에 의해 상태 벡터를 그 다음 값, 이 예에서는 3으로 증가시키는 상태 벡터 발생기(110)로 전송된다. 그러므로, 보코더 프레임(6)은 상태 벡터(3)로부터 유도된 코드북을 사용하여 암호화된다.
수신기에서, 보코더 프레임(1)은 1과 같은 상태 벡터로부터 유도된 코드북을 사용하여 수신되고 복호화된다. 보코더 프레임(2)은 2와 같은 상태 벡터로부터 유도된 코드북을 사용하여 복호화된다. 보코더 프레임(3,4 및 5)이 송신기(100)에서 드롭되었으므로, 수신될 다음 프레임은 보코더 프레임(6)이다. 보코더 프레임(6)은 송신기(100)에서 이 프레임을 인코딩하는데 사용된 상태 벡터인 3과 같은 상태 벡터로부터 유도된 코드북을 사용하여 복호화된다. 누구나 이해할 수 있는 바와 같이, 이 방법은 송신기(100) 및 수신기 간의 암호-동기화를 보존한다.
도3은 송신기(100)에 의해 송신된 정보를 수신하는데 사용되는 수신기(300)의 기능 블록도이다. 도3에서, 업컨버트된 신호는 공지된 기술을 사용하여 RF 수신기(302)에 의해 수신된다. 업컨버트된 신호는 다운컨버트되어 복조기(304)에 제공되고, 여기서 다운컨버트된 신호는 데이터 프레임으로 변환된다. 이 실시예에서, 데이터 프레임은 RLP 프레임들을 포함하고, 각 프레임은 그 지속시간이 20ms이다.
그리고 나서, RLP 프레임은 포맷팅 처리기(308)에 의해 사용되기 위해 수신 버퍼(306)에 저장된다. 포맷팅 처리기(308)는 버퍼(306)로부터의 프레임들을 사용하여 원래 데이터 프레임들(이 예에서는 보코더 프레임들)을 재구성한다. 다수의 데이터 프로토콜이 정보, 예컨대 TCP 및 RLP를 전송하는데 사용되는 경우에는, 포맷팅 처리기(308)는 보코더 프레임들을 발생시키는데 사용되는 두 프로토콜 모두를 수용한다. 포맷화 처리기(308)에 의해 발생된 보코더 프레임들은 일반적으로 순차적 방식으로 큐(312)에 저장된다. 큐(312)는 일반적으로 복호화 모듈(314)에 의해 사용되는 프레임에 앞서 다수의 보코더 프레임을 저장할 수 있다.
복호화 모듈(314)은 위에 논의된 바와 같은 데이터 프레임을 암호화하는데 사용되는 기술과 유사하게 고유의 코드북과 함께 큐(312)에 저장된 각 데이터 프레임의 복호화를 담당한다. 일반적으로, 하나의 코드북은 일반적으로 프레임들이 송신기(100)에서 보코더(104)에 의해 발생되는 것과 동일한 속도로 복호화될 각 데이터 프레임에 대해 발생된다. 그러므로, 하나의 코드북은 일반적으로 복호화될 각 데이터 프레임에 대해 사용가능하다. 다른 기술들은 2개의 보코더 프레임이 하나의 코드북으로 복호화될 수 있도록 하고, 코드북은 하나의 보코더 프레임의 2배의 비트수를 갖는다.
코드북은 위에 설명된 바와 같은 몇가지 공지된 기술들 중 하나를 사용하여 만들어진다. 본 발명의 실시예에서, 상태 벡터는 도3에 도시된 바와 같이 하나 이상의 복호화 키와 함께 코드북을 생성하는데 사용된다. 송신기(100)의 상태 벡터와 같이, 도3의 상태 벡터는 송신기(100)의 상태 벡터와 동일한 소정의 속도로 증가하는 카운팅 시퀀스이다. 상태 벡터는 이산 전자 컴포넌트 또는 소프트웨어 명령어들 집합과 결합된 디지털 마이크로프로세서와 같은 공지된 기술들을 사용하여상태 벡터 발생기(316)에 의해 발생된다. 공지된 다른 기술들도 또한 고려될 수 있다.
복호화 모듈(314)은 상태 벡터 발생기(316)로부터 제공된 매 상태 벡터에 대해 하나의 코드북을 생성한다. 큐(312)에 저장된 보코더 프레임은 순차적으로 복호화 모듈(314)에 제공되고, 여기서 현재 상태 벡터로부터 유도된 고유한 코드북은 디지털로 각 보코더 프레임과 결합되어 복호화된 보코더 프레임을 생성한다. 코드북은 예컨대, 한 데이터 프레임을 한 코드북에 추가하는 방법과 같은 공지된 기술을 사용하여, 모듈로-2 산술을 사용하여 데이터 프레임들과 결합된다. 또다른 실시예에서, 2개의 데이터 프레임들은 하나의 코드북과 결합되고, 이 실시예에서 코드북은 하나의 보코더 프레임의 2배의 데이터 비트수를 갖는다.
복호화된 보코더 프레임이 복호화 모듈(314)에 의해 발생된 후에는, 보코더(318)가 필요로 할 때까지 큐(312)에 저장되거나, 다른 메모리 장치에 저장된다. 보코더(318)는 송신기(100)에 의해 송신된 원래 데이터를 정확하게 재생성하기 위해 일정한 보코더 프레임 스트림을 필요로 한다. 보코더(318)는 송신기(100)로부터 송신된 원래 신호의 디지털화된 복제 신호를 발생시키기 위해 큐(312)에 저장된 보코더 프레임을 사용한다. 보코더(318)는 일반적으로 원래의 오디오 정보를 충실하게 재생성하기 위해 큐(312)로부터의 일정한 보코더 프레임 스트림을 필요로 한다. 보코더(318)는 디지털화된 출력 신호를 디지털-아날로그 변환기(D/A;320)에 제공한다. D/A(320)는 보코더(318)로부터의 디지털화된 신호를 아날로그 신호로 변환한다. 그리고 나서, 아날로그 신호는 출력 트랜스듀서(322)로 전송되고, 여기서 아날로그 신호는 리스너(listener)가 듣기에 적절한 음향 신호로 변환된다. 물론, 출력 트랜스듀서(322)는 선택적으로 정지 이미지 또는 비디오를 보기에 적절한 비디오 모니터 또는 어떠한 응용에도 적절한 다른 임의의 장치를 포함할 수 있다.
위 프로세스의 조정은 일반적으로 처리기(324)에 의해 처리된다. 처리기(324)는 신중한 처리기 또는 주문형 ASIC으로 집적된 처리기를 포함하는 공지의 여러가지 방식으로 구현될 수 있다. 선택적으로, 위의 블록 엘리먼트 각각은 각 블록의 특정 기능을 수행하기 위한 개별적인 처리기를 가질 수 있을 것이며, 여기서 처리기(324)는 일반적으로 블록들 간의 활동을 조정하는데 사용될 것이다.
앞서 언급된 대로, 보코더(318)는 일반적으로 왜곡없이 원래 오디오 정보를 재구성하기 위해 일정한 보코더 프레임 스트림을 필요로 한다. 일정한 보코더 프레임 스트림을 위해, 큐(312)가 사용된다. 포맷팅 처리기(308)에 의해 발생된 보코더 프레임은 일반적으로 통신 채널의 품질 및 송신기에서 흔히 가변 속도 보코더가 사용된다는 사실 때문에, 일정 속도로 발생되지는 않고, 가변 인코딩 속도로 보코더 프레임을 발생시킨다. 큐(312)는 보코더(318)로의 일정 보코더 프레임 스트림을 보장하면서 포맷팅 처리기(308)에 의한 보코더 프레임 발생 속도에서의 변화를 가능케한다. 큐(312)에 있어서의 한가지 잠재적인 문제는 송신기(100)와 수신기(300)간의 오디오 정보의 전송 중에, 예컨대 전화상의 대화 중에 지연 또는 레이턴시를 유발할 수 있다는 것이다.
큐(312)의 한가지 목적은 포맷팅 처리기(308)에 의해 프레임이 적게 발생되는 동안 보코더(318)에 보코더 프레임을 제공하기 위한 충분한 보코더 프레임을 유지하면서도(그에 의해 큐(312)의 언더플로를 방지한다), 그러한 상황에서 레이턴시의 증가때문에 너무 많은 프레임들이 발생하지는 못하도록 하는 것이다.
언더플로 상태에서, 처리기(324)는 보코더(318)에 실제 보코더 프레임이 아닌 하나 이상의 "삭제" 프레임을 사용하도록 지시한다. 삭제 프레임은 공지된 기술로서 데이터를 포함하지 않지만, 보코더(318)가 중단없이 다음 정보를 계속해서 처리할 수 있도록 해주는 프레임이다. 언더플로 상태에서, 큐(312)에서 하나의 보코더 프레임을 사용할 수 없을 때마다(이 실시예에서는 매 20ms 마다) 보코더(318)에 의해 하나의 삭제 프레임이 사용된다.
반면에, 큐(312)에 저장된 보코더 프레임의 수가 상대적으로 커지면, 레이턴시가 문제된다. 레이턴시는 정보가 송신기에 입력될 때와 정보가 수신기에서 가용하게 될 때 사이의 시간으로 정의된다. 수신기(300)에서, 큐(312)에 저장된 보코더 프레임이 증가할 수록, 음성 레이턴시는 큐(312)에 저장된 프레임 수에 비례하여 증가한다. 예를 들어, 큐(312)에 저장된 프레임 수가 50이 되는 경우에, 레이턴시는 20ms(이 실시예에서 각 프레임의 길이)의 50배, 즉 1s가 될 것이고, 이것은 대부분의 오디오 통신에 부적절하다.
레이턴시 문제를 해결하기 위해서는, 궁극적으로 보코더(318)에 의해 처리되는 보코더 프레임의 수를 감소시키기 위해 보코더 프레임은 큐(312)로부터 제거되거나 드롭된다. 큐(312)에서 보코더 프레임을 드롭하므로써, 레이턴시 문제를 감소된다. 그러나, 프레임들은 최소의 왜곡만이 오디오 정보에 유도되도록 드롭되어야 한다.
프레임들은 공지된 다수의 방법들 중 하나에 따라 드롭된다. 예를 들어, 프레임들은 하나의 고정된 속도, 두개 이상의 고정된 속도, 가변 속도 또는 이들이 조합된 속도에서 드롭된다. 또한, 가변 속도 보코더(104)가 송신기에서 사용되는 경우에, 프레임들은 프레임이 보코더(104)에 의해 인코딩되는 속도를 기초로 드롭된다.
일반적으로, 언제 프레임을 드롭할 것인가에 대한 결정은 통신 채널 품질에 의해 결정되는 통신 채널 레이턴시에 따라 결정되는데, 통신 채널 품질은 큐(312)의 크기로부터 유도된다. 큐(312)가 소정의 임계값 이상으로 증가하면, 레이턴시는 바람직하지 않은 레벨까지 증가한다. 그러므로, 큐(312)의 크기가 소정의 임계값을 초과하면, 처리기(324)는 위에 설명된 방법 중 하나를 사용하여 큐(312)로부터의 프레임 드롭을 개시한다. 큐(312)의 크기가 소정의 임계값 이하로 감소되면, 프레임 드롭은 처리기(324)에 의해 중지된다. 예를 들어, 큐(312)의 크기가 2 프레임까지 감소하면, 레이턴시는 더이상 문제되지 않으며, 처리기(324)는 프레임 드롭의 프로세스를 중지한다.
2개 이상의 고정 속도 방식이 프레임을 드롭하는데 사용되는 경우에, 2개 이상의 소정의 임계값들이 언제 각각의 고정된 드롭 속도를 사용할지를 결정하는데 사용된다. 예를 들어, 큐(312)의 크기가 제1 소정의 임계값 이상으로 증가하는 경우에는, 처리기(324)는 제1 소정의 속도, 예컨대 1 퍼센트에서 프레임 드롭을 개시한다. 큐(312)의 크기가 계속 증가하는 경우에, 큐(312)의 크기가 제2 소정의 크기 이상으로 증가하면 처리기(324)는 제2 소정의 속도에서 프레임의 드롭을 개시한다. 큐(312)의 크기가 제2 임계값 이하로 떨어지면, 처리기(324)는 제2 소정의 속도에서 프레임 드롭을 중지하고 더 천천히 제1 소정의 속도에서 프레임의 드롭을 개시한다. 큐(312)의 크기가 제2 소정의 임계값 또는 크기 이하로 더 감소하면, 처리기(324)는 모두 프레임 드롭을 중지하고, 큐(312)의 크기는 적절한 레벨까지 증가할 수 있다.
가변 프레임 드롭 방식이 사용되는 경우에, 처리기(324)는 연속 또는 거의 연속으로 큐(312)의 크기를 결정하고, 그에 따른 프레임 드롭의 속도를 조정한다. 큐(312)의 크기가 증가하면, 프레임이 드롭되는 속도도 증가한다. 큐(312)의 크기가 감소하면, 프레임이 드롭되는 속도가 감소한다. 다시, 큐(312)의 크기가 소정의 임계값 이하로 떨어지면, 처리기(324)는 프레임 드롭 프로세스를 완전히 중지한다.
프레임은 또한 큐(312)에 저장된 프레임 수 및 보코더(104)가 가변 속도 보코더인 경우에는 프레임이 보코더(104)에 의해 인코딩된 속도에 따라 드롭될 수도 있다. 큐(312)의 크기가 제1 소정의 임계값 또는 크기를 초과하는 경우에, 가장 낮은 인코딩 속도를 갖는 보코더 프레임이 드롭된다. 큐(312)의 크기가 제2 소정의 임계값을 초과하는 경우에는, 두번째로 낮은 인코딩 속도 및 가장 낮은 인코딩 속도를 갖는 보코더 프레임들이 드롭된다. 큐(312)에 저장된 프레임의 수가 3번째 소정의 임계값을 초과하는 경우에는 3번째로 낮은 인코딩 속도, 두번째 낮은 인코딩 속도 및 가장 낮은 인코딩 속도에서 인코딩된 프레임들은 드롭될 수 있다는 것은 생각해낼 수 있을 것이다. 다시, 큐(312)에 저장된 프레임 수가 임계값 이하로 감소하면, 처리기(324)는 각 임계값을 통과할 때의 인코딩 속도에 따라 프레임을 드롭한다.
위에 설명된 바와 같이, 프레임 드롭은 수신기(300) 또는 송신기(100)에서 발생할 수 있다. 그러나, 또다른 실시예에서, 프레임 드롭은 송신기(100) 및 수신기(300) 모두에서 발생할 수 있다. 위에 설명된 이러한 프레임 드롭 기술의 임의의 조합이 그러한 경우에 사용될 수 있다.
수신기(300)에서, 언더플로 또는 프레임 드롭 중에, 송신기(100) 및 수신기(300) 간의 암호-동기화는 붕괴될 수 있다. 이 붕괴는 제2 상태 벡터로부터 유도된 코드북에 의해 복호화되는 제1 상태 벡터로부터 유도된 코드북으로 암호화되는 보코더 프레임에 의해 유발된다. 이것은 보코더 프레임의 오류 복호화가 된다.
본 발명은 상태 벡터를 디스에이블하여 언더플로 상태 중에 증가하지 못하도록 하고 또한 프레임 드롭 상황에서는 상태 벡터를 전진시키지 못하도록 한다. 언더플로 상황에서, 처리기(324)는 상태 벡터 발생기(316)를 디스에이블하여 삭제 프레임이 보코더(318)에 제공될 때 증가하지 못하도록 한다. 상태 벡터 발생기(316)는 프레임이 다시 큐(312)에서 복호화될 수 있을때 인에이블된다.
도4a는 이 점을 설명한다. 도4a에 도시된 바와 같이, 시간의 경과는 시간 주기 T1,T2 및 T3 등으로 표시되고, T1이 시간적으로 첫번째로 발생한다. 각 시간 주기는 보코더 프레임이 송신기(104)의 보코더(104)에서 발생되는 속도(이 실시예에서는 20ms)와 동일하다. T1에서, 프레임은 큐(312)에서 암호화 모듈(314)에 의해 복호화에 사용될 수 있다. 상태 벡터 발생기(316)로부터의 상태 벡터는 205와 같고, 복호화를 위해 큐(312)의 프레임에 인가된다. T2에서, 상태 벡터는 증가된다. 또다른 프레임이 큐(312)에서 가용하게 되어, 206의 상태 벡터가 복호화를 위해 프레임에 인가된다. T3에서, 큐(312)에서 아무 프레임도 복호화에 가용하지 않다. 그러므로, 처리기(324)는 상태 벡터 발생기(316)를 디스에이블하여 증가하지 못하도록 하고, 이것은 상태 벡터 발생기가 206의 값으로 남게 한다. T4에서, 다시 큐(312)의 프레임도 복호화할 수 없고, 따라서 상태 벡터 발생기(316)는 디스에이블되어 상태 벡터를 증가시킬 수 없는 채로 남아 있게 된다. T5에서, 프레임은 큐(312)에서 가용하게 되고, 따라서 상태 벡터 발생기(316)는 인에이블되어 다음값, 207로 증가될 수 있게 된다. 그리고 나서, 큐(312)의 프레임은 복호화 모듈(314)에 제공되고, 값 207을 갖는 상태 벡터로부터 유도된 코드북을 사용하여 복호화된다. T6에서, 큐(312)의 어떤 프레임도 복호화할 수 없고, 따라서, 처리기(324)는 상태 벡터 발생기(316)를 디스에이블하여 증가하지 못하도록 하고 이것은 상태 벡터의 값을 207로 만든다.
프레임 드롭 상황 중에, 처리기(324)는 복호화 모듈(314)에 의한 복호화에 앞서 큐(312)로부터 프레임들을 드롭시킨다. 드롭된 각 프레임에 대해, 처리기(324)는 드롭된 프레임을 보충하기 위해 상태 벡터의 카운트를 증가시켜야 한다.
도4b 및 4c는 이 점을 설명한다. 도4b에 도시된 바와 같이, 보코더 프레임은 큐(312)에 저장되고, 포맷화기(308)로부터 가용하게 되고, 프레임(1)으로 시작하여 프레임(7)으로 진행하여 그 다음으로 계속 진행한다. 프레임들은 보코더 프레임이 보코더(104)에 의해 발생된 속도에 의해 정의된 소정의 속도에서 복호화 모듈(314)에 제공된다. 도4c는 프레임 드롭 중에 상태 벡터 발생기(316)가 어떻게 영향 받는지를 설명한다. T1에서, 상태 벡터 발생기는 값이 205인 상태 벡터는 복호화 모듈(314)에 제공하고, 여기서 코드북이 프레임(1)을 복호화하기 위해 발생된다. T2에서, 상태 벡터는 206으로 증가하고, 여기서 프레임(2)을 복호화하기 위한 코드북을 발생시키는데 사용할 복호화 모듈(314)에 제공된다. 시간 T3에서, 처리기(324)는 프레임(3) 및 프레임(4)을 드롭한다. 선택적인 실시예에서, 처리기(324)는 미리 큐(312)에 저장된 프레임 중 어느 프레임이 드롭될 것인지를 선택한다. 각 경우에, 시간 T3에서, 처리기(324)는 다음 드롭되지 않은 프레임(이 경우에는 프레임(5))을 복호화 모듈(314)에 제공한다. 처리기(324)는 또한 상태 벡터 발생기(316)를 드롭된 프레임 수를 기초로 상태 벡터를 발생시키도록 명령한다. 이 경우에, 2개의 프레임이 드롭되었고, 따라서 처리기(324)는 상태 벡터 발생기(316)가 209와 같은 상태 벡터를 발생하도록 명령하는데, 209는 2개의 드롭된 프레임들을 보상하기 위해 상태 벡터가 정상적인 경우에 있게 되는 값(207)에 2를 더한 값이다.
시간 T4에서, 프레임(6)이 복호화될 수 있고, 따라서 복호화 모듈(314)에 제공되고, 상태 벡터는 1만큼 증가되어, 이 경우에는 그 값이 210이 된다. 시간 T5에서, 프레임(7)은 처리기(324)에서 드롭되고, 프레임(8)이 복호화될 수 있다. 그러므로, 시간 T5에서, 처리기(324)는 상태 벡터 발생기가 상태 벡터를 2만큼(정상 증가량 1과 드롭된 프레임을 보상하기 위한 1) 증가시켜 212가 되도록 하고, 프레임(8)을 복호화 모듈(314)에 제공한다.
언더플로 또는 프레임 드롭의 경우에, 처리기(324)는 상태 벡터 발생기(316)가 상태 벡터를 조정하도록 명령하여, 상태 벡터는 프레임을 암호화한 상태 벡터에 동기화된다.
도5는 송신기(100)에 사용된 본 발명의 발명을 설명하는 흐름도이다. 스텝(500)에서, 일반적으로 일정 속도로, 보코더(104)로부터 데이터 프레임이 발생된다. 선택적인 실시예에서, 데이터 프레임은 보코더(104)로부터 발생되지 않고, 비디오 카메라, 컴퓨터 또는 디지털 카메라와 같은 임의의 다른 데이터 발생 장치로부터 발생된다. 이 실시예에서, 프레임들은 20ms당 한 프레임의 속도로 발생된다.
스텝(502)에서, 보코더(104)로부터의 프레임은 일시적인 저장을 위해 메모리(06)에 저장된다. 이 실시예에서, 메모리(106)에 한번에 단 한개의 프레임이 저장된다. 그러나, 다른 실시예에서는, 다른 수의 프레임도 메모리(106)에 저장될 수 있을 것이다. 또다른 실시예에서, 프레임은 메모리(106)의 필요성 없이 보코더(104)에서 암호화 모듈(108)로 직접 제공된다.
스텝(504)에서, 처리기(120)는 전송 레이턴시와 같은 하나 이상의 기준을 기초로 프레임을 드롭할 것인지 여부를 결정한다. 처리기(120)가 프레임이 드롭되어야 한다고 결정하면, 처리기(120)는 스텝(506)에서, 상태 벡터 발생기(110)를 디스에이블 시키고, 이에 의해 상태 벡터가 증가되지 못하도록 한다. 스텝(508)에서, 처리기(120)는 현재 암호화 모듈(108)에 의해 처리될 준비가 되어 있는 프레임을 드롭시킨다. 이 실시예에서, 처리기(120)는 메모리(106)에 저장되어 있는 현재 보코더 프레임을 암호화 모듈(108)에 제공하지 않는다.
스텝(510)에서, 처리기(120)는 다음 순서의 프레임이 드롭되어야 할 지를 결정한다. 드롭되어야 하는 경우에, 처리는 스텝(508)으로 다시 돌아가고, 거기서 메모리(106)에 저장된 다음 프레임이 드롭되고, 상태 벡터 발생기(110)는 계속 디스에이블된다. 다음 프레임이 드롭되지 않을 경우에, 처리는 스텝(510)으로 넘어간다.
다시 스텝(504)을 참조하면, 처리기(120)가 현재 프레임이 드롭되지 않을 것이라고 결정하면, 처리는 스텝(510)으로 가고, 여기서 상태 벡터 발생기(110)는 인에이블되어(이전 스텝에서 디스에이블된 경우에), 이에 의해 상태 벡터를 증가시킨다.
스텝(512)에서, 메모리(106)에 저장된 현재 프레임은 암호화 모듈(108)에 제공되고, 상태 벡터의 현재값으로부터 유도된 코드북을 사용하여 암호화된다. 이 프로세스의 결과로서 암호화에 앞서 하나 이상의 프레임들이 처리기(120)에 의해 드롭된다 하더라도 프레임들이 연속된 상태 벡터들을 사용하여 암호화된다.
도6은 언더플로 상태에서 수신기(300)에서 사용되는 본 발명의 방법을 설명하는 흐름도이다. 스텝(600)에서, 처리기(324)는 큐(312)의 임의의 프레임이 복호화될 수 있는지 여부를 결정한다. 적어도 한 프레임이 복호화될 수 있는 경우에,스텝(602)에서 상태 벡터는 증가된다. 다음, 스텝(604)에서, 적어도 하나의 프레임이 복호화 모듈(314)에 제공되고, 여기서 상태 벡터 발생기(316)로부터의 상태 벡터의 현재값으로부터 유도된 코드북을 사용하여 복호화된다. 적절하게 복호화되기 위해, 프레임은 일반적으로 송신기(100)에서 프레임을 암호화하는데 사용되는 동일한 상태 벡터와 매칭되는 상태 벡터로부터 유도된 코드북에 의해 복호화되어야 한다. 프레임 복호화된 후에, 처리는 스텝(600)으로 다시 되돌아 가고, 여기서 처리기(324)는 또다른 프레임이 복호화될 수 있는지를 결정한다.
스텝(600)에서 어떤 프레임도 복호화될 수 없는 경우에, 처리는 스텝(606)으로 계속 진행하고, 여기서 처리기(324)는 상태 벡터 발생기(316)를 디스에이블 시켜서 상태 벡터 발생기의 값을 그 현재 값으로 고정시킨다. 다음, 처리기(324)는 삭제 프레임을 보코더(318)에 제공하여, 처리기 방해받지 않도록 한다. 그리고 나서, 처리는 다시 스텝(600)으로 되돌아가고, 처리기(324)는 다시 복호화될 수 있는 프레임이 존재하는지를 결정한다. 복호할 프레임이 없는 경우에, 처리기(324)는 다른 삭제 프레임을 보코더(318)에 제공한다. 이 상황에서는 상태 벡터 발생기(316)가 이미 이전에 디스에이블 되어 있기 때문에, 스텝(606)은 반복되지 않는다.
위의 프로세스는 프레임들이 불규칙적인 구간에 복호화 모듈(314)에 제공되더라도 적절히 복호화될 것을 보장한다.
도7은 프레임 드롭 중에 수신기(300)에서 사용되는 본 발명의 방법을 상세히 설명하는 흐름도이다. 앞서 언급된 바와 같이, 프레임 드롭은 레이턴시가 임의의주어진 시간에 큐(312)에 저장된 프레임 수에 의해 결정되는 어떤 값을 초과할 때 발생할 때, 수신기(300)에서 발생한다. 프로세스는 스텝(700)에서 개시되고, 여기서 처리기(324)는 현재 프레임 전에 드롭된 연속 프레임들의 수를 결정한다. 스텝(702)에서, 처리기(324)는 현재 프레임 이전에 드롭된 연속 프레임들의 수를 결정한다. 이전의 프레임 중 드롭된 프레임이 없는 경우에, 처리는 스텝(704)으로 진행하고, 여기서 상태 벡터는 소정의 값만큼(이 실시예에서는 1) 증가된다.
스텝(702)을 다시 참조하면, 이전 프레임들이 드롭된 경우에, 처리는 스텝(706)으로 간다. 정상적인 경우에, 프레임들은 큐(312)에 저장될 때 큐(312)에서 복호화 모듈(3140로 순차적으로 제공된다. 그러나, 처리기(324)가 하나 이상의 프레임이 드롭될 필요가 있다고 결정하면, 드롭된 하나 이상의 프레임들은 암호화 모듈(314)에 제공되지 않는다. 그보다는, 큐(312)의 드롭된 프레임의 다음 프레임은 복호화 모듈(314)에 제공된다. 스텝(706)에서, 처리기(324)는 현재 프레임 전에 얼마나 많은 수의 연속 프레임들이 드롭되었는가를 결정한다. 상태 벡터는 드롭된 프레임 수에 비례하여 상대적으로 증가된다. 예를 들어, 현재 프레임 전에 2개의 프레임들이 드롭되었으면, 상태 벡터는 정상 증가량 1에 드롭된 2개의 프레임을 보상하기 위한 2를 더한 3만큼 증가된다. 이 프로세스는 복호화 전에 하나 이상의 프레임들이 드롭되었다 하더라고 프레임들이 적절히 복호화될 것을 보장한다.
스텝(708)에서, 현재 프레임은 상태 벡터의 현재값으로부터 유도된 코드북을 사용하여 복호화된다.
이 프로세스는 복호화 전에 하나 이상의 프레임들이 드롭되었다 하더라도 프레임들이 적절히 복호화될 것을 보장한다.
바람직한 실시예에 대한 이전 설명은 당업자가 본 발명을 실시할 수 있도록 하기 위해 제공된다. 이러한 실시예에 대한 다양한 변형이 가능하다는 것과 여기에 정의된 본 발명의 원리는 별다른 발명 능력없이도 다른 실시예에 적용될 수 있다는 점은 당업자에게 명백하다. 따라서 본 발명의 범위는 위 실시예로 한정되지 않고 첨부된 청구범위의 해석에 따른 최광의 범위에 의해 제한된다.

Claims (40)

  1. 각각 암호 보안 기능을 갖는 송신기 및 수신기를 포함하는 패킷 데이터 통신 시스템에서 암호-동기화를 구현하는 방법으로서,
    송신기에서 소정의 속도로 데이터 프레임을 발생시키는 단계;
    상기 소정의 속도에서 상태 벡터를 증가시키는 단계;
    상기 상태 벡터를 암호화 모듈에 제공하는 단계;
    적어도 하나의 상기 상태 벡터를 사용하여, 상기 암호화 모듈로부터 코드북(codebook)을 발생시키는 단계로서, 상기 코드북은 상기 데이터 프레임 중 적어도 하나를 암호화하는 단계; 및
    하나 이상의 상기 데이터 프레임들이 드롭되면 상기 상태 벡터를 디스에이블시키는 단계를 포함하는 암호-동기화 구현 방법.
  2. 제1항에 있어서, 상기 상태 벡터는 원하는 수의 상기 데이터 프레임이 드롭된 후에 인에이블되는 암호-동기화 구현 방법.
  3. 제1항에 있어서, 상기 데이터 프레임을 발생시키는 단계는,
    정보를 디지털 포맷으로 변환하는 단계;
    상기 디지털화된 정보를 보코더에 제공하는 단계; 및
    상기 제1 속도에서 상기 보코더에 의해 상기 데이터 프레임을 발생시키는 단계를 포함하는 암호-동기화 구현 방법.
  4. 제1항에 있어서, 하나 이상의 상기 데이터 프레임들을 드롭하는 단계는 고정된 소정의 속도에서 상기 데이터 프레임들을 드롭하는 단계를 포함하는 암호-동기화 구현 방법.
  5. 제1항에 있어서, 하나 이상의 상기 데이터 프레임을 드롭하는 단계는,
    통신 채널 레이턴시를 결정하는 단계; 및
    상기 통신 채널 레이턴시에 따라 가변 속도로 상기 데이터 프레임을 드롭하는 단계를 포함하는 암호-동기화 구현 방법.
  6. 제5항에 있어서, 가변 속도로 상기 데이터 프레임을 드롭하는 단계는,
    상기 통신 채널 레이턴시가 적어도 하나의 소정 임계값 이하로 떨어지면 상기 속도를 감소시키는 단계; 및
    상기 통신 채널 레이턴시가 적어도 하나의 다른 소정 임계값을 초과하면 상기 속도를 증가시키는 단계를 포함하는 암호-동기화 구현 방법.
  7. 제1항에 있어서, 상기 데이터 프레임을 드롭하는 단계는,
    통신 채널 레이턴시를 결정하는 단계;
    상기 통신 채널 레이턴시가 소정의 임계값 이하로 떨어지는 경우에는 제1 소정의 고정 속도에서 상기 데이터 프레임을 드롭하는 단계; 및
    상기 통신 채널 레이턴시가 상기 소정의 임계값을 초과하는 경우에는 제2 소정의 고정 속도에서 상기 데이터 프레임을 드롭하는 단계를 포함하는 암호-동기화 구현 방법.
  8. 제1항에 있어서, 하나 이상의 상기 데이터 프레임을 드롭하는 단계는,
    통신 채널 레이턴시를 결정하는 단계; 및
    상기 통신 채널 레이턴시가 소정의 임계값을 초과하는 경우에는 제1 인코딩 속도와 동일한 인코딩 속도를 갖는 상기 데이터 프레임 각각을 드롭하는 단계를 포함하는 암호-동기화 구현 방법.
  9. 제8항에 있어서, 상기 통신 채널 레이턴시가 제2 소정의 임계값을 초과하는 경우에는 상기 제1 인코딩 속도 및 제2 인코딩 속도와 같은 인코딩 속도를 갖는 상기 데이터 프레임 각각을 드롭하는 단계를 더 포함하는 암호-동기화 구현 방법.
  10. 각각 암호 보안 기능을 갖는 송신기 및 수신기를 포함하는 패킷 데이터 통신 시스템에서 암호-동기화를 구현하는 방법으로서,
    수신기에서 데이터 프레임을 발생시키는 단계;
    큐에 상기 데이터 프레임들을 순차적으로 저장하는 단계;
    상기 저장된 데이터 프레임들을 순차적으로 복호화 모듈에 제공하는 단계;
    상기 큐의 하나 이상의 상기 데이터 프레임들을 드롭하는 단계;
    소정의 속도로 상태 벡터를 증가시키는 단계;
    상기 상태 벡터를 복호화 모듈에 제공하는 단계;
    적어도 상기 상태 벡터를 사용하여 상기 복호화 모듈로부터 적어도 상기 데이터 프레임 중 하나를 복호화 하기 위한 코드북을 발생시키는 단계; 및
    드롭된 상기 하나 이상의 데이터 프레임 각각에 대해 상기 상태 벡터를 조정하는 단계를 포함하는 암호-동기화 구현 방법.
  11. 제10항에 있어서, 상기 상태 벡터를 조정하는 단계는,
    다수의 드롭된 데이터 프레임들의 수를 결정하는 단계; 및
    상기 드롭된 프레임의 수에 비례하여 상기 상태 벡터를 전진시키는 단계를 포함하는 암호-동기화 구현 방법.
  12. 제11항에 있어서, 상기 상태 벡터를 전진시키는 단계는 상기 하나 이상의 드롭된 프레임들에 대해 상기 상태 벡터의 값을 1만큼 전진시키는 단계를 포함하는 암호-동기화 구현 방법.
  13. 제10항에 있어서,
    상기 조정된 상태 벡터를 상기 복호화 모듈에 인가하는 단계;
    상기 조정된 상태 벡터로부터 유도된 제2 코드북을 발생시키는 단계;
    상기 큐의 순차적인 비드롭 프레임을 상기 복호화 모듈에 제공하는 단계; 및
    상기 제2 코드북을 사용하여 상기 순차적인 비드롭 프레임을 복호화하는 단계를 더 포함하는 암호-동기화 구현 방법.
  14. 제10항에 있어서, 상기 하나 이상의 상기 데이터 프레임들을 드롭하는 단계는 고정된 속도에서 상기 하나 이상의 데이터 프레임을 드롭하는 단계를 포함하는 암호-동기화 구현 방법.
  15. 제10항에 있어서, 상기 하나 이상의 데이터 프레임을 드롭하는 단계는,
    통신 채널 레이턴시를 결정하는 단계; 및
    상기 통신 채널 레이턴시에 따라 가변 속도로 상기 하나 이상의 데이터 프레임을 드롭하는 단계를 포함하는 암호-동기화 구현 방법.
  16. 제15항에 있어서, 가변 속도에서 상기 하나 이상의 데이터 프레임을 드롭하는 단계는,
    상기 통신 채널 레이턴시가 적어도 하나의 소정 임계값 이하로 떨어지는 경우에 상기 속도를 감소시키는 단계; 및
    상기 통신 채널 레이턴시가 적어도 하나의 다른 소정의 임계값을 초과하는 경우에는 상기 속도를 증가시키는 단계를 포함하는 암호-동기화 구현 방법.
  17. 제10항에 있어서, 상기 하나 이상의 데이터 프레임을 드롭하는 단계는,
    통신 채널 레이턴시를 결정하는 단계;
    상기 통신 채널 레이턴시가 소정의 임계값 이하로 떨어지는 경우에는 제1 소정의 고정 속도에서 상기 데이터 프레임을 드롭하는 단계; 및
    상기 통신 채널 레이턴시가 상기 소정의 임계값을 초과하는 경우에는 제2 소정의 고정된 속도에서 상기 데이터 프레임을 드롭하는 단계를 포함하는 암호-동기화 구현 방법.
  18. 제10항에 있어서, 상기 하나 이상의 데이터 프레임을 드롭하는 단계는,
    통신 채널 레이턴시를 결정하는 단계; 및
    상기 통신 채널 레이턴시가 소정의 임계값을 초과하는 경우에는 제1 인코딩 속도와 같은 인코딩 속도를 갖는 상기 데이터 프레임 각각을 드롭하는 단계를 포함하는 암호-동기화 구현 방법.
  19. 제18항에 있어서, 상기 통신 채널 레이턴시가 제2 소정의 임계값을 초과하는 경우에는 상기 제1 인코딩 속도 및 제2 인코딩 속도와 같은 인코딩 속도를 갖는 상기 하나 이상의 데이터 프레임을 드롭하는 단계를 더 포함하는 암호-동기화 구현 방법.
  20. 각각 암호 보안 기능을 갖는 송신기 및 수신기를 포함하는 패킷 데이터 통신시스템에서 암호-동기화를 구현하는 방법으로서,
    수신기에서 데이터 프레임을 발생시키는 단계;
    상기 데이터 프레임을 큐에 저장하는 단계;
    상기 큐에서 복호화 가능한 프레임이 존재하는 경우에는, 상기 큐로부터의 적어도 하나의 상기 데이터 프레임을 복호화 모듈에 제공하는 단계;
    상태 벡터를 상기 복호화 모듈에 제공하는 단계로서, 상기 상태 벡터는 소정의 속도로 증가되는 단계;
    적어도 상기 상태 벡터를 사용하여 상기 복호화 모듈로부터 적어도 하나의 상기 데이터 프레임을 복호화하기 위한 코드북을 발생시키는 단계; 및
    상기 큐가 언더플로(underflow) 상태인 경우에는 상기 상태 벡터를 디스에이블하는 단계를 포함하는 암호-동기화 구현 방법.
  21. 제20항에 있어서, 상기 상태 벡터를 디스에이블하는 단계는,
    상기 큐에 복호화할 수 있는 데이터 프레임이 존재하지 않는지를 결정하는 단계;
    상기 상태 벡터를 디스에이블하는 단계;
    상기 큐의 상기 데이터 프레임 중 적어도 하나가 복호화 가능한지를 결정하는 단계;
    상기 상태 벡터를 인에이블하는 단계; 및
    상기 상태 벡터를 1만큼 증가시키는 단계를 포함하는 암호-동기화 구현 방법.
  22. 각각 암호 보안 기능을 갖는 송신기 및 수신기를 포함하는 패킷 데이터 통신 시스템에서 암호-동기화를 구현하는 송신기로서,
    소정의 속도에서 데이터 프레임을 발생시키는 수단;
    상태 벡터를 발생시키는 수단으로서, 상기 상태 벡터는 상기 소정의 속도로 증가되는 수단;
    적어도 상기 상태 벡터로부터 적어도 하나의 상기 데이터 프레임을 암호화하기 위한 코드북을 발생시키는 암호화 모듈; 및
    하나 이상의 상기 데이터 프레임을 드롭하고, 드롭된 상기 데이터 프레임 각각에 대해 상기 상태 벡터를 디스에이블시키는 처리기를 포함하는 암호-동기화 구현 송신기.
  23. 제22항에 있어서, 상기 데이터 프레임을 고정된, 소정의 속도로 드롭되는 암호-동기화 구현 송신기.
  24. 제22항에 있어서, 상기 데이터 프레임은 가변 속도에서 드롭되는 암호-동기화 구현 송신기.
  25. 제14항에 있어서,
    상기 처리기는 추가적으로 통신 채널 레이턴시를 결정하고;
    상기 데이터 프레임은 상기 통신 채널 레이턴시가 적어도 하나의 소정의 임계값을 초과하는 경우에는 감소된 속도로 드롭되며; 그리고
    상기 통신 채널 레이턴시가 적어도 하나의 다른 소정의 임계값 이하로 떨어지는 경우에는 증가된 속도로 드롭되는 암호-동기화 구현 송신기.
  26. 제22항에 있어서, 상기 처리기는 추가적으로 통신 채널 레이턴시를 결정하고, 상기 통신 채널 레이턴시가 소정의 임계값 이하로 떨어지는 경우에는 제1 고정된 속도로 상기 데이터 프레임을 드롭시키고, 그리고 상기 통신 채널 레이턴시가 상기 소정의 임계값을 초과하는 경우에는 제2 고정된 속도로 상기 데이터 프레임을 드롭하는 암호-동기화 구현 송신기.
  27. 제22항에 있어서, 상기 처리기는 추가적으로 통신 채널 레이턴시를 결정하고, 그리고 상기 통신 채널 레이턴시가 소정의 임계값을 초과하는 경우에는 제1 인코딩 속도와 같은 인코딩 속도를 갖는 상기 데이터 프레임 각각을 드롭하는 암호-동기화 구현 송신기.
  28. 제27항에 있어서, 상기 처리기는 추가적으로 상기 통신 채널 레이턴시가 제2 소정의 임계값을 초과하는 경우에는, 상기 제1 인코딩 속도 및 제2 인코딩 속도와 같은 인코딩 속도를 갖는 상기 데이터 프레임 각각을 드롭하는 암호-동기화 구현송신기.
  29. 제22항에 있어서, 상기 데이터 프레임을 발생시키는 수단은,
    무선 통신 신호를 수신하는 수신기; 및
    상기 무선 통신 신호를 복조하고 상기 데이터 프레임을 발생시키기 위한 복조기를 포함하는 암호-동기화 구현 송신기.
  30. 각각 암호 보안 기능을 갖는 송신기 및 수신기를 포함하는 패킷 데이터 통신 시스템에서 암호-동기화를 구현하는 수신기로서,
    데이터 프레임을 발생시키는 수단;
    상기 데이터 프레임을 저장하는 큐;
    상태 벡터를 발생시키는 수단으로서, 상기 상태 벡터는 소정의 속도로 증가되는 수단;
    적어도 상기 상태 벡터로부터 상기 적어도 하나의 데이터 프레임을 복호화하는 코드북을 발생시키는 복호화 모듈; 및
    상기 큐의 하나 이상의 상기 데이터 프레임을 드롭하고, 드롭된 상기 데이터 프레임 각각에 대해 상기 상태 벡터를 조정하는 처리기를 포함하는 암호-동기화 구현 수신기.
  31. 제30항에 있어서, 상기 처리기는 드롭된 데이터 프레임의 수를 결정하고 상기 드롭된 프레임의 수에 비례하여 상기 상태 벡터를 전진시키므로써 상기 상태 벡터를 조정하는 암호-동기화 구현 수신기.
  32. 제31항에 있어서, 상기 상태 벡터는 상기 드롭된 데이터 프레임 각각에 대해 1만큼 전진되는 암호-동기화 구현 수신기.
  33. 제30항에 있어서, 상기 처리기는 고정된 속도로 상기 하나 이상의 데이터 프레임을 드롭시키는 암호-동기화 구현 수신기.
  34. 제30항에 있어서, 상기 처리기는 추가적으로 통신 채널 레이턴시를 결정하고, 상기 통신 채널 레이턴시에 따라 가변 속도로 상기 하나 이상의 데이터 프레임을 드롭시키는 암호-동기화 구현 수신기.
  35. 제34항에 있어서,
    상기 처리기는 상기 통신 채널 레이턴시가 적어도 하나의 소정 임계값 이하로 떨어지는 경우에는 상기 속도를 감소시키고; 그리고
    상기 처리기는 상기 통신 채널 레이턴시가 적어도 하나의 다른 소정의 임계값을 초과하는 경우에는 상기 속도를 증가시키는 암호-동기화 구현 수신기.
  36. 제30항에 있어서, 상기 처리기는 추가적으로 통신 채널 레이턴시를 결정하고; 그리고
    상기 통신 채널 레이턴시가 소정의 임계값 이하로 떨어지는 경우에는 제1 소정의 고정된 속도로 상기 하나 이상의 데이터 프레임을 드롭하고;
    상기 통신 채널 레이턴시가 상기 소정의 임계값을 초과하는 경우에는 제2 소정의 고정된 속도로 상기 하나 이상의 데이터 프레임을 드롭하는 암호-동기화 구현 수신기.
  37. 제30항에 있어서, 상기 처리기는 추가적으로 통신 채널 레이턴시를 결정하고; 그리고
    상기 통신 채널 레이턴시가 소정의 임계값을 초과하는 경우에는 제1 인코딩 속도와 같은 인코딩 속도를 갖는 상기 하나 이상의 데이터 프레임 각각을 드롭하는 암호-동기화 구현 수신기.
  38. 제37항에 있어서, 상기 처리기는 상기 통신 채널 레이턴시가 제2 소정의 임계값을 초과하는 경우에는 상기 제1 인코딩 속도 및 제2 인코딩 속도와 같은 인코딩 속도를 갖는 상기 하나 이상의 데이터 프레임을 드롭하는 암호-동기화 구현 수신기.
  39. 각각 암호 보안 기능을 갖는 송신기 및 수신기를 포함하는 패킷 데이터 통신 시스템에서 암호-동기화를 구현하는 수신기로서,
    데이터 프레임을 발생시키는 수단;
    상기 데이터 프레임을 저장하는 큐;
    상태 벡터를 발생시키는 수단으로서, 상기 상태 벡터는 소정의 속도로 증가되는 수단;
    적어도 상기 상태 벡터로부터 적어도 하나의 상기 데이터 프레임을 복호화하기 위한 코드북을 발생시키는 복호화 모듈; 및
    상기 큐에 복호화할 수 있는 데이터 프레임이 없는 경우에는 상기 상태 벡터를 디스에이블하는 처리기를 포함하는 암호-동기화 구현 수신기.
  40. 제39항에 있어서, 상기 상태 벡터는 상기 큐의 적어도 하나의 데이터 프레임이 암호화될 수 있게 되면 인에이블되는 암호-동기화 구현 수신기.
KR1020027009289A 2000-01-20 2001-01-19 패킷 데이터 통신 시스템에서 암호-동기화를 구현하기 위한 방법 및 장치 KR100840146B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/489,194 2000-01-20
US09/489,194 US7003114B1 (en) 2000-01-20 2000-01-20 Method and apparatus for achieving crypto-synchronization in a packet data communication system
PCT/US2001/001893 WO2001054343A2 (en) 2000-01-20 2001-01-19 Method and apparatus for achieving crypto-syncronization in a packet data communication system

Publications (2)

Publication Number Publication Date
KR20030009340A true KR20030009340A (ko) 2003-01-29
KR100840146B1 KR100840146B1 (ko) 2008-06-23

Family

ID=23942791

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027009289A KR100840146B1 (ko) 2000-01-20 2001-01-19 패킷 데이터 통신 시스템에서 암호-동기화를 구현하기 위한 방법 및 장치

Country Status (12)

Country Link
US (2) US7003114B1 (ko)
EP (1) EP1252737B1 (ko)
JP (1) JP4694079B2 (ko)
KR (1) KR100840146B1 (ko)
AT (1) ATE324722T1 (ko)
AU (1) AU2001232877A1 (ko)
DE (1) DE60119080T2 (ko)
ES (1) ES2266155T3 (ko)
HK (1) HK1051097B (ko)
MY (1) MY129358A (ko)
TW (1) TW563321B (ko)
WO (1) WO2001054343A2 (ko)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19817007C2 (de) * 1998-04-17 2001-08-09 Deutsche Telekom Ag Verfahren zur Nutzung digitaler Datennetze zum Zwecke der Bandbreitenreduktion bei der Übertragung von Daten über Sprachverbindungswege
US7003114B1 (en) * 2000-01-20 2006-02-21 Qualcomm Incorporated Method and apparatus for achieving crypto-synchronization in a packet data communication system
US7505594B2 (en) * 2000-12-19 2009-03-17 Qualcomm Incorporated Discontinuous transmission (DTX) controller system and method
US7095856B2 (en) * 2002-03-29 2006-08-22 Motorola, Inc. Method and apparatus to maintain encryption synchronization in a multi-modulation TDM system
US7530084B2 (en) * 2002-05-28 2009-05-05 Sony Corporation Method and apparatus for synchronizing dynamic graphics
US8840475B2 (en) * 2002-12-10 2014-09-23 Ol2, Inc. Method for user session transitioning among streaming interactive video servers
US20040165560A1 (en) * 2003-02-24 2004-08-26 Harris John M. Method and apparatus for predicting a frame type
US7715559B2 (en) * 2004-08-26 2010-05-11 Motorola, Inc. Crypto-synchronization for secure communication
US7596224B2 (en) * 2004-12-07 2009-09-29 Motorola, Inc. Method and system for secure call alert
US8228917B2 (en) 2005-04-26 2012-07-24 Qualcomm Incorporated Method and apparatus for ciphering and re-ordering packets in a wireless communication system
US7747021B2 (en) * 2005-05-18 2010-06-29 General Dynamics C4 Systems, Inc. Method and apparatus for fast secure session establishment on half-duplex point-to-point voice cellular network channels
US7643817B2 (en) * 2005-05-18 2010-01-05 General Dynamics C4 Systems, Inc. Method and apparatus for rapid secure session establishment on half-duplex AD-hoc group voice cellular network channels
US20060280159A1 (en) * 2005-06-10 2006-12-14 Hao Bi Method and apparatus for voice communication
EP1742475A1 (fr) * 2005-07-07 2007-01-10 Nagravision S.A. Méthode de contrôle d'accès à des données chiffrées
US8743909B2 (en) * 2008-02-20 2014-06-03 Qualcomm Incorporated Frame termination
US9071344B2 (en) * 2005-08-22 2015-06-30 Qualcomm Incorporated Reverse link interference cancellation
US8611305B2 (en) * 2005-08-22 2013-12-17 Qualcomm Incorporated Interference cancellation for wireless communications
US8594252B2 (en) * 2005-08-22 2013-11-26 Qualcomm Incorporated Interference cancellation for wireless communications
US8630602B2 (en) 2005-08-22 2014-01-14 Qualcomm Incorporated Pilot interference cancellation
US7715563B2 (en) * 2006-02-16 2010-05-11 General Dynamics C4 Systems, Inc. Rapid acquisition of state vectors in an encrypted data communication system
JP2007282097A (ja) * 2006-04-11 2007-10-25 Canon Inc デジタルカメラおよびその制御方法
US20070242828A1 (en) * 2006-04-12 2007-10-18 General Dynamics C4 Systems, Inc. Dynamic interleaving of state vector components in an encrypted data communication system
JP4954622B2 (ja) * 2006-06-29 2012-06-20 京セラ株式会社 受信装置および復号方法
US20080288518A1 (en) * 2007-05-15 2008-11-20 Motorola, Inc. Content data block processing
US8204224B2 (en) * 2007-11-24 2012-06-19 University Of Massachusetts Wireless network security using randomness
US9326135B2 (en) 2008-02-21 2016-04-26 Google Technology Holdings LLC Method and apparatus for secure communication in a digital two way radio protocol
US8995417B2 (en) 2008-06-09 2015-03-31 Qualcomm Incorporated Increasing capacity in wireless communication
US9277487B2 (en) 2008-08-01 2016-03-01 Qualcomm Incorporated Cell detection with interference cancellation
US9237515B2 (en) 2008-08-01 2016-01-12 Qualcomm Incorporated Successive detection and cancellation for cell pilot detection
US20100097955A1 (en) * 2008-10-16 2010-04-22 Qualcomm Incorporated Rate determination
US8291218B2 (en) 2008-12-02 2012-10-16 International Business Machines Corporation Creating and using secure communications channels for virtual universes
US9160577B2 (en) 2009-04-30 2015-10-13 Qualcomm Incorporated Hybrid SAIC receiver
US8787509B2 (en) 2009-06-04 2014-07-22 Qualcomm Incorporated Iterative interference cancellation receiver
US8831149B2 (en) 2009-09-03 2014-09-09 Qualcomm Incorporated Symbol estimation methods and apparatuses
WO2011063568A1 (en) 2009-11-27 2011-06-03 Qualcomm Incorporated Increasing capacity in wireless communications
US9673837B2 (en) 2009-11-27 2017-06-06 Qualcomm Incorporated Increasing capacity in wireless communications
US8634291B2 (en) * 2010-01-26 2014-01-21 Oracle America, Inc. Energy efficient management of datalinks
JP5833034B2 (ja) * 2010-02-26 2015-12-16 トムソン ライセンシングThomson Licensing 電子番組ガイドをポーズされた番組と同期させるシステム及び方法
US8730251B2 (en) * 2010-06-07 2014-05-20 Apple Inc. Switching video streams for a display without a visible interruption
CA2823975C (en) * 2011-01-12 2016-07-12 Landmark Graphics Corporation Three-dimensional earth-formation visualization
US8824687B2 (en) * 2011-05-04 2014-09-02 Acquire Media Ventures, Inc. Method and system for pacing, acking, timing, and handicapping (path) for simultaneous receipt of documents employing encryption
US8971348B2 (en) * 2012-10-31 2015-03-03 Qualcomm Incorporated Allocation of voice idle time period for inter-RAT measurement
EP3323118B1 (en) * 2015-07-16 2021-04-28 DTC Communications, Inc. Covert surveillance system concealment kit for rapid development
WO2018212278A1 (ja) * 2017-05-17 2018-11-22 パナソニックIpマネジメント株式会社 映像記録装置及び映像記録検証システム並びに映像記録方法及び映像検証方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4817146A (en) * 1984-10-17 1989-03-28 General Electric Company Cryptographic digital signal transceiver method and apparatus
US5179591A (en) * 1991-10-16 1993-01-12 Motorola, Inc. Method for algorithm independent cryptographic key management
JPH05316100A (ja) * 1992-04-03 1993-11-26 Nec Corp 暗号化音声パケット同期方式
US5592556A (en) * 1994-08-09 1997-01-07 Ericsson Ge Mobile Communications Inc. Digital radio with vocoding encrypting codec
JPH1013406A (ja) * 1996-06-25 1998-01-16 Nec Corp ディジタル秘話装置
EP1016310A1 (en) 1997-09-15 2000-07-05 Celotek Corporation Cryptographic system for public atm/sonet communication system with virtual circuit lookup
US6219420B1 (en) * 1998-09-02 2001-04-17 Motorola, Inc. High assurance encryption system and method
US6298055B1 (en) * 1998-10-26 2001-10-02 Cisco Technology, Inc. Early detection of in-band signals in a packet voice transmitter with reduced transmission delay
AU1517600A (en) * 1998-10-28 2000-05-15 L-3 Communications Corporation Encryption and authentication methods and apparatus for securing telephone communications
US6665872B1 (en) * 1999-01-06 2003-12-16 Sarnoff Corporation Latency-based statistical multiplexing
US7003114B1 (en) * 2000-01-20 2006-02-21 Qualcomm Incorporated Method and apparatus for achieving crypto-synchronization in a packet data communication system

Also Published As

Publication number Publication date
AU2001232877A1 (en) 2001-07-31
EP1252737B1 (en) 2006-04-26
US20060126844A1 (en) 2006-06-15
US7474749B2 (en) 2009-01-06
HK1051097A1 (en) 2003-07-18
WO2001054343A2 (en) 2001-07-26
TW563321B (en) 2003-11-21
EP1252737A2 (en) 2002-10-30
WO2001054343A3 (en) 2002-01-17
DE60119080D1 (de) 2006-06-01
MY129358A (en) 2007-03-30
HK1051097B (zh) 2006-11-10
DE60119080T2 (de) 2006-11-30
JP4694079B2 (ja) 2011-06-01
JP2003521153A (ja) 2003-07-08
ATE324722T1 (de) 2006-05-15
ES2266155T3 (es) 2007-03-01
US7003114B1 (en) 2006-02-21
KR100840146B1 (ko) 2008-06-23

Similar Documents

Publication Publication Date Title
KR100840146B1 (ko) 패킷 데이터 통신 시스템에서 암호-동기화를 구현하기 위한 방법 및 장치
US6785262B1 (en) Method and apparatus for voice latency reduction in a voice-over-data wireless communication system
US6400724B1 (en) Method and apparatus for efficient data transmission in a voice-over-data communication system
KR100812848B1 (ko) 무선 음성 데이타 통신 시스템에서 효과적인 데이타 송신제어를 위한 방법 및 장치
US6721280B1 (en) Method and apparatus for voice latency reduction in a voice-over-data wireless communication system
JP4011624B2 (ja) 同期を保持しないチャンネル上でのビット総数保全性および同期データ転送を提供する方法および装置
US7505594B2 (en) Discontinuous transmission (DTX) controller system and method
US7127604B2 (en) Changing a codec or MAC size without affecting the encryption key in PacketCable communication
CN108933786B (zh) 用于改善无线数字通信系统接收方密文语音质量的方法
TW200849842A (en) Method of regulating the transmission jitter within a reception terminal
EP3229443B1 (en) Data processing device, data processing method, and program
EP2073478B1 (en) Encryption communication apparatus and method for controlling transfer period of key resynchronization information
KR100491514B1 (ko) 동기화를 유지하지 않는 채널을 통한 비트 카운트 무결성 및 동기 데이터 전송을 제공하는 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20130531

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140529

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 11