KR20000068663A - 개선된 변환을 사용한 개선된 셀룰라 메시지 암호화 알고리즘을위한 방법 및 장치 - Google Patents

개선된 변환을 사용한 개선된 셀룰라 메시지 암호화 알고리즘을위한 방법 및 장치 Download PDF

Info

Publication number
KR20000068663A
KR20000068663A KR1019997002699A KR19997002699A KR20000068663A KR 20000068663 A KR20000068663 A KR 20000068663A KR 1019997002699 A KR1019997002699 A KR 1019997002699A KR 19997002699 A KR19997002699 A KR 19997002699A KR 20000068663 A KR20000068663 A KR 20000068663A
Authority
KR
South Korea
Prior art keywords
message
inverse
cmea
secret
offset
Prior art date
Application number
KR1019997002699A
Other languages
English (en)
Other versions
KR100573180B1 (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 KR20000068663A publication Critical patent/KR20000068663A/ko
Application granted granted Critical
Publication of KR100573180B1 publication Critical patent/KR100573180B1/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
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

개선된 CMEA, 또는 ECMEA 처리를 위한 방법 및 장치. 순방향 ECMEA 및 역방향 ECMEA 처리를 제공한다. 순방향 ECMEA 처리는 역방향 ECMEA 처리에 의해 암호화된 문을 복호화하며, 역방향 ECMEA는 순방향 ECMEA 처리에 의해 암호화된 문을 복호화한다. 순방향 ECMEA 처리는 변환, CMEA 처리의 반복, 및 역변환을 사용한다. 역방향 ECMEA 처리는 역방향 변환, CMEA 처리의 반복, 및 역방향 역변환을 사용한다. 변환 및 CMEA 처리, 및 CMEA 처리의 반복은 보안을 개선하기 위해서 비밀 오프셋을 사용한다. 변환 및 CMEA 처리의 반복은 또한 자체 역(involutary) 룩업 테이블을 사용하는 개선된 tbox 함수를 사용한다.

Description

개선된 변환을 사용한 개선된 셀룰라 메시지 암호화 알고리즘을 위한 방법 및 장치{Methods and apparatus for enhanced CMEA employing enhanced transformations}
무선전화는 예를 들면 상태정보를 전달하며, 동작모드를 재구성하고, 호출(call) 착신을 처리하며, 이를테면 가입자의 일련번호와 전화번호, 대화 및 사용자에 의해 전송된 다른 데이터와 같은 시스템 및 사용자 데이터를 전달하는 것을 포함하는 몇 가지 목적을 위한 메시지 송수신(messiging)을 사용한다. 중앙 서비스국(central serving station)이 각각의 가입자에 유선으로 접속되고, 이에 따라 권한없는 상대방(침입자)이 도청 및 간섭하는 것으로부터 상당한 정도의 보호를 보증하는 통상의 유선전화와는 달리, 무선전화 서비스국(즉, 기지국)은 가입자의 실제 위치에 관계없이 공중으로 신호를 통해 메시지를 송수신해야 한다. 기지국은 어디서든지 가입자와 서로 메시지를 송수신할 수 있어야 하기 때문에, 메시지 송수신 처리는 가입자 장비와 송수신되는 신호에 전적으로 의존한다. 신호는 공중을 통해 전송되기 때문에, 이들 신호는 도청자 혹은 해당 장비를 가진 침입자에 의해 가로채어질 수 있다.
무선전화에 의해 신호가 평문(plaintext)으로 전송된다면, 도청자가 그 신호를 가로채어 이를 사용해 가입자인 양하거나, 아니면 사용자에 의해 전송된 사적인 데이터를 가로챌 위험이 존재하다. 이러한 사적인 데이터는 대화 내용을 포함할 수 있다. 사적인 데이터는 또한 예를 들면 무선전화에 접속된 모뎀을 통해 전송된 컴퓨터 데이터와 같이 사용자에 의해 전송된 비음성 데이터를 포함할 수 있으며, 통상 키 누룸에 의해 전송되는 은행계좌 혹은 다른 사적인 사용자 정보를 포함할 수도 있다. 대화를 듣거나 비음성 데이터를 가로채는 도청자는 사용자로부터 사적인 정보를 얻을 수도 있다. 암호화되지 않은 전화신호(즉, 평문 신호)의 메시지 내용은 적합하게 개조된 수신기에 의해 비교적 쉽게 가로채어 진다.
택일적으로, 침입자는 큰 전송 파워를 사용하여, 설정된 접속에 스스로 끼여들어, 신호를 기지국으로 보내어 대화 상대방인 양 할 수 있다.
무선신호로 전송되는 메시지에 암호화를 적용하지 않았을 때, 메시지를 도청하며 대화 중에 수화자 혹은 송화자인 양하는 것이 가능하다. 이러한 권한없는 침입 및/또는 도청은 사실 심각한 문제인 것으로 입증되었으며 상당히 바람직하지 못한 것이다.
무선전화 응용에 암호화 적용은 앞에서 다룬 보안문제에 해결책을 제공하나, 이들 방법은 본질적으로 계산 위주이기 때문에 무전전화에 표준 암호화 적용이 상당한 어렵다. 구체적으로, 이들 방법은 소형 무선 핸드셋을 공급하고자 하는 희망에 의해 부과되는 제약 및 소형 핸드셋에 의해 부과되는 처리 능력의 제약을 받는다. 통상의 무선 핸드셋에 있는 처리 능력은 이를테면 DES(데이터 암호화 표준)와 같은 일반적으로 알려진 암호화 알고리즘 처리요건을 다루기에는 부족하다. 통상의 무선전화 시스템에서 이러한 공지된 암호화 알고리즘을 구현하는 것은 신호를 처리하는데 필요한 시간(즉, 암호화 및 복호화)이 증가할 가능성이 잠재해 있어 가입자에 대해 허용할 수 없는 지연이 야기된다.
본원에 참조 문헌으로 활용된 리드의 미국 특허 제 5,159,634호("리드")에는 무선전화를 위한 한 암호화 시스템이 개시되어 있다. 리드는 CMEA("셀룰라 메시지 암호화 알고리즘")으로 알려진 암호화 처리를 기술하고 있다. CMEA의 주요 동작은 tbox 함수인데, 이것은 공지된 표 및 암호키를 사용하여, 한 옥텟(octet)을 다른 옥텟에 일 대 일 매핑하는 것이다. 초기 색인으로 시작하여, 키 소재(key material)는 테이블 소재(table material)와 복수 반복적으로 결합되어 매핑을 수행한다. tbox 함수는 함수 호출이나 정적 메모리에 거주하는 tbox 테이블로서 구현될 수 있다. tbox 테이블의 목적은 상기 후자의 경우로 구현되었을 때, 주어진 보안 레벨에 대해 암호화를 현저하게 시간 단축하게 하는 것이다.
본 출원인의 1998년 4월 13일 출원된 "셀룰라 전화 메시지의 개선된 보안을 위한 복수-반복 CMEA 암호화 및 복호화 방법 및 장치" 명칭의 특허원 제 09/059,107, 및 1998년 4월 12일 출원된 "무선전화 메시지의 개선된 보안을 위한 룩업 테이블로 암호키의 향상된 보안 확장 방법 및 장치" 명칭의 특허원 제 09/059,116에 개시된 개선된 CMEA 처리가 존재한다. 이들 개선은 CMEA 처리에 현저하게 증가된 보안을 제공한다. 그러나, 부가적인 개선은 더욱 증가된 보안을 제공할 것이다.
종래 기술의 CMEA 처리는 이하 상세히 기술된 바와 같이 현저하게 개선될 수 있다. 이들 개선은 상당한 이점이 있는 추가된 보안도를 제공한다. 리드의 암호화 처리는 수정 및 단순화하여 개선될 수 있다. 리드의 원래의 처리, 혹은 이하 수정된 CMEA라고 할 수정 및 단순화된 처리 어느 것이든, 포괄적으로 ECMEA(개선된 CMEA)라 명명되는 더 많은 개선점을 포함하는 개선된 처리에서 사용될 수 있다.
본 발명은 1997년 7월 29일 출원된 미국 특허원 제 60/054,018호를 우선권으로 주장한다. 1997년 7월 22일자 출원된 발명의 명칭이 "Methods and Apparatus for Enhanced CMEA Including a CMEA Iteration Preceded by a Transformation and Followed by an Inverse Transformation"인 상기 특허는 본원에서 참조 문헌으로 통합되었다.
본 발명은 일반적으로 무선전화 암호화에 관한 것이다. 특히, 본 발명은 대량의 부가적인 시스템 자원을 필요로 하지 않으면서 무선 전화 시스템에서 신속하고 안전한 암호화를 위한 개선된 안전한 암호화 시스템에 관한 것이다.
도 1은 CMEA에 기초한 암호화 구현에서 종래의 CMEA 암호화 처리 및 그 이용 국면을 도시한 흐름도.
도 2는 수정된 CMEA 암호화 처리를 도시한 흐름도.
도 3은 변환과, 자체 역 룩업을 사용하며 비밀 오프셋에 의해 순열배치된 입력들이 사용되는 개선된 tbox 함수를 채용한 CMEA 처리와, 역변환을 사용한 순방향 ECMEA 암호화 방법을 도시한 흐름도.
도 4는 순방향 ECMEA 암호화 방법에서 사용되는 변환을 도시한 흐름도.
도 5는 순방향 ECMEA 암호화 방법에서 사용된 역변환을 도시한 흐름도.
도 6은 역방향 변환과, 자체 역 룩업을 사용하며 비밀 오프셋에 의해 순열배치된 입력들이 사용되는 개선된 tbox 함수를 채용한 CMEA 처리와, 역방향 역변환을 사용한 역방향 ECMEA 암호화 방법을 도시한 흐름도.
도 7은 역방향 ECMEA 암호화 방법에서 사용되는 역방향 변환을 도시한 흐름도.
도 8은 역방향 ECMEA 암호화 방법에서 사용되는 역방향 역변환을 도시한 흐름도.
도 9는 본 발명에 따른 ECMEA 처리를 채용한 전환 시스템을 도시한 도면.
본 발명은 개선된 순방향 CMEA, 혹은 ECMEA 처리, 및 역방향 ECMEA 처리를 제공함으로써 암호화 알고리즘의 추가된 보안도를 제공한다. 순방향 처리에 의해 암호화된 정보는 역방향 처리에 의해 복호화되며, 역방향 처리에 의해 암호화된 정보는 순방향 처리에 의해 복호화된다. 순방향 ECMEA 처리는 CMEA 처리의 반복 전에 메시지를 변환하고, CMEA 처리의 반복 후에 역변환한다. CMEA 처리의 반복은 리드의 원 처리이거나, 수정된 CMEA 처리가 될 수 있다. 리드의 원 처리를 의미하는 경우에는 "원 CMEA" 용어를 사용할 것이며, 수정된 CMEA 처리를 의미하는 경우에는 "수정된 CMEA" 용어를 사용할 것이다. "CMEA 처리" 용어를 다른 정의없이 사용하는 경우, 원 CMEA 혹은 수정된 CMEA 중 어느 하나가 사용될 수 있으며, 그 선택은 설계 선호도에 달려있다. 그러나, 설계 선호도에 다른 것이 제안되어 있지 않으면 수정된 CMEA를 사용하는 것이 좋다. CMEA 처리의 반복은 제 1 비밀 오프셋에 의해 tbox 함수에의 입력들을 순열배치(permutation)함으로써 향상된다. CMEA 처리에 의해 활용되는 tbox 함수는 자체 역(involutary) 룩업 테이블을 사용하여 향상된다. 변환 및 역변환은 제 1 비밀 오프셋 및 제 2 비밀 오프셋을 사용한다. 변환은 제 1 오프셋의 오프셋 회전(rotation) 및 각 옥텟의 자체 역 룩업을 수행하며, 인접한 옥텟의 각 쌍간 비트-교환(bit-trade)을 수행한다. 마지막 옥텟을 제외한 모든 옥텟에 대해서, 변환은 무작위 옥텟 순열배치를 수행하는데, 이것은 이전의 옥텟과 그 이하의 임의의 옥텟간 교환이다. 변환은 또한 마지막 옥텟과 그 이하의 임의의 옥텟간 교환인 최종 옥텟 순열배치를 수행한다.
역변환은 제 2 오프셋에 대한 초기 오프셋 회전, 및 마지막 옥텟에 대한 초기 옥텟 순열배치를 수행하는데, 이것은 마지막 옥텟과 이 이하의 임의의 옥텟간 교환이다. 마지막 옥텟을 제외한 모든 옥텟에 대해서, 역변환은 무작위 옥텟 순열배치를 수행하며, 이것은 옥텟과 이 이하의 임의의 옥텟간 교환이다. 변환은 인접한 옥텟의 각 쌍간 비트-교환을 수행하며, 각각의 옥텟의 자체 역 룩업 및 이에 이어 제 2 오프셋의 오프셋 회전을 수행한다.
역변환은 변환과 비교하여 볼 때 역순서로 제 1 및 제 2 오프셋을 사용하기 때문에, 순방향 ECMEA 처리는 전체적으로 볼 때 스스로 역전되지 않는다. 순방향 ECMEA 처리에 의해 암호화된 문을 복호화하기 위해서, 또는 순방향 ECMEA 처리에 의해 복호화를 위해 문을 암호화하기 위해서, 역방향 ECMEA 처리가 사용된다. 역방향 ECMEA 처리는 역방향 변환, 이어서 CMEA 처리의 반복, 이어서 역방향 역변환을 사용한다. 역방향 변환은 제 1 및 제 2 오프셋의 사용이 유지되는 점을 제외하곤 변환과 동일하다. 즉, 변환이 제 1 오프셋을 사용하는 경우, 역방향 변환은 제 2 오프셋을 사용하며, 변환이 제 2 오프셋을 사용하는 경우, 역방향 변환은 제 2 오프셋을 사용하며, 변환이 제 2 오프셋을 사용하는 경우, 역방향 변환은 제 1 오프셋을 사용한다. 마찬가지로, 역방향 역변환은 제 1 및 제 2 오프셋의 사용이 유지되는 점을 제외하고 역변환과 같다. 즉, 역변환이 제 1 오프셋을 사용하는 경우, 역방향 역변환은 제 2 오프셋을 사용하며, 역변환이 제 2 오프셋을 사용하는 경우, 역방향 역변환은 제 1 오프셋을 사용한다.
CMEA 알고리즘의 반복은 제 1 비밀 오프셋에 의해 tbox 함수에의 입력을 순열배치함으로써 개선된다. CMEA 알고리즘에 의해 사용된 tbox 함수는 자체 역 룩업 테이블을 사용하여 향상된다.
순방향 ECMEA 처리는 역방향 ECMEA 처리에 의해 암호화된 문을 복호화하며, 역방향 ECMEA 처리는 순방향 ECMEA 처리에 의해 암호화된 문을 복호화한다. 앞에서 다룬 개선은 CMEA를 개선하며, 이동통신 무선 트랜시버에서 통상적으로 사용되는 것과 같은 소형 컴퓨터에서 신속하고 효율적으로 동작하도록 구현될 수 있다.
본 발명에 따른 암호화 시스템은 개선된 tbox 함수를 적합하게 사용할 수 있으며, 또한 개선된 tbox 함수에의 입력들을 순열배치하며, 변환 및 역방향 변환과 역변환 및 역방향 역변환을 수행할 때 사용하기 위한 제 1 및 제 2 오프셋을 사용하는 것을 채용할 수 있다. 각각의 오프셋은 2개의 비밀값 및 외부 암호 동기화(cryptosync) 값을 사용하여 생성된다. 비밀값은 이 분야에 공지된 많은 기술 중 임의의 것에 의해 발생될 수 있다. 무선분야 외의 일부 응용에서, 호출(call)의 제 1 메시지를 암호화하는데 사용되는 외부 암호 동기화 값은 초기화 벡터이다. 그 다음 메시지에 대해서, 외부 암호 동기화 값은 이전에 암호화된 메시지로부터 제 1 2개의 옥텟의 암호문이다.
본 발명의 또 다른 특징에서, 본 발명에 따른 전화 시스템은 이동통신국 및 기지국을 포함한다. 이동통신국 및 기지국 각각은 문(text)을 발생하고, 이 문을 발생된 문으로서 식별하여 이 문과 식별을 암호화/복호화 프로세서에 공급하는 I/O 인터페이스에 공급하며, 이어서 암호화/복호화 프로세서는 상기 문을 암호화하여 이를 전송하기 위해 트랜시버에 공급한다. 장치가 트랜시버를 통해 전송을 수신할 때, 전송은 입력되는 암호문(cipher text)으로서 식별되고, 이 암호문 및 식별은 암호화/복호화 프로세서에 공급되며, 이 프로세서는 암호문을 복호화하여 이를 문으로서 I/O 프로세서에 공급하여 그의 목적지로 보낸다. 이동통신국은 순방향 ECMEA 처리를 사용하는 것이 바람직하며 기지국은 역방향 ECMEA 처리를 사용하는 것이 바람직하다.
본 발명의 보다 완전한 이해, 및 본 발명의 다른 특징 및 잇점은 다음의 상세한 설명 및 첨부한 도면으로부터 명백할 것이다.
도 1은 호출(call) 동안에 전송될 수 있는 어떤 중요한 사용자 데이터의 암호화를 위한 CMEA 키를 사용한 종래의 방법(100)을 도시한 흐름도이다. CMEA 키는 256바이트의 비밀 어레이 tbox(z)를 생성하는데 사용된다. 대안으로, tbox 함수는 함수 호출로서 구현될 수도 있다. 이것은 RAM 사용을 줄이지만 대략적으로 그 크기 정도만큼 처리시간을 증가시킨다.
단계 102에서, 처리되지 않은 메시지가 도입된다. 단계 104에서, 함수 호출이 아닌 정적 테이블로서 tbox를 구현하는 시스템에서는 정적 tbox를 도출한다. tbox 테이블은 다음과 같이 하여 도출된다.
0 ≤z ≤256의 범위 내의 각각의 z에 대해서,
tbox(z) = C(((C(((C(((C((z XOR k0) + k1) + z)XOR k2) + k3) + z)XOR k4) +k5) +z)XOR k6) +k7) +z, 여기서 "+"는 모듈로 256 가산을 나타내며, "XOR"은 비트단위 부울린 배타-OR 연산자, "z"는 함수 인자(function argument), k0,..,k7은 CMEA 키의 8개의 옥텟을 포함하며, C()는 셀룰라 인증(Cellular Authentication), 음성 프라이버시(Voice Privacy), 및 암호화(Encryption)(CAVE) 8비트 테이블 룩업의 출력이다. 이하 기술되는 바와 같은 개선이 없을 때, tbox 함수는 종래에 공지된 것이다. 그러나, 이하 도 2 내지 도 5에 관련하여 기술되는 개선에 의해서 txox 함수는 현저하게 증가된 보안 특징을 제공할 수 있다.
CMEA는 3개의 연속한 단계를 포함하며, 각각의 단계는 메시지의 각각의 바이트 스트링을 변경한다. 처리는 편의상 데이터 버퍼에 저장된 메시지에 대해 수행될 수 있다. 단계 106, 108 및 110에서, CMEA 처리의 제 1, 제 2 및 제 3 단계는 각각 이하 기술되는 바와 같이 수행된다. 0 ≤i ≤d 범위 내의 정수 i에 대해 b(i)로 각각의 바이트를 표기한 d 바이트 길이의 데이터 버퍼는 3개의 단계에서 암호화된다. CMEA의 제 1 단계(I)는 다음과 같다.
1. 변수 z을 제로로 초기화한다.
2. 0 ≤i ≤d 범위 내의 연속한 i의 정수값에 대해서,
a. q = zi의 하위 바이트에 의해 변수 q를 형성하며, 여기서는 비트단위 부울린 배타-OR 연산자.
b. k = TBOX(q)에 의해 변수 k를 형성한다.
c. b(i) = b(i) + k mod 25으로 b(i)를 갱신한다.
d. z = b(i) + z mod 256으로 z를 갱신한다.
CMEA의 제 2 단계(II)는 다음과 같다.
1. 0 ≤i 〈 (d-1)/2 범위 내의 모든 i값에 대해서, b(i) = b(i)(b(d-1-i) OR 1). 여기서 OR는 비트단위 부울린 OR 연산자이다.
CMEA의 마지막 혹은 제 3 단계(III)는 제 1 단계의 역인 복호화이다.
1. 변수 z을 제로로 초기화한다.
2. 0 ≤i ≤d 범위 내의 연속한 i의 정수값에 대해서,
a. q = zi의 하위 바이트에 의해 변수 q를 형성한다.
b. k = TBOX(q)에 의해 변수 k를 형성한다.
c. z(i) = b(i) + k mod 25으로 z를 갱신한다.
d. b(i) = b(i) - z mod 256으로 b(i)를 갱신한다.
단계 112에서, 최종 처리된 출력이 제공된다.
상기 기술된 CMEA 처리는 스스로 역전된다. 즉, 동일 순서에 적용된 동일 단계는 평문을 암호화하며 암호문을 복호화하는데 사용된다. 그러므로, 암호화 및 복호화가 실행되고 있는지 여부를 판단할 필요가 없다. 불행히도, 상기 기술된 CMEA 처리는 호를 위해 사용된 CMEA 키를 찾을 수 있게 하는 침입을 받을 수 있는 것으로 알려져 있다.
도 2는 도 1에 도시한 종래의 방법(100)의 수정을 포함하는 수정된 CMEA 처리를 도시한 흐름도이다. 수정된 CMEA 처리(200)는 호출 동안에 전송될 수 있는 어떤 중요한 사용자 데이터의 암호화를 위한 CMEA 키를 사용한다. CMEA 키는 256바이트의 비밀 어레이, tbox(z)를 생성하는데 사용된다. 대안으로, tbox 함수는 함수 호출로서 구현될 수 있다. 이것은 RAM의 사용을 줄이지만, 대략 크기의 정도만큼 처리시간을 증가시킨다.
단계 202에서, 처리되지 않은 메시지가 도입된다. 단계 204에서, 함수 호출이 아닌 정적 테이블로서 tbox를 구현하는 시스템에서, 정적 tbox 테이블이 도출된다. tbox 테이블은 이하 상세히 기술될 종래 기술로부터 수정된 것이다.
수정된 CMEA는 3개의 연속한 단계를 포함하는데, 그 각각은 메시지의 각 바이트 스트링을 변경한다. 메시지는 편의상 처리를 위해서 데이터 버퍼 내에 격납된다. 단계 206, 208 및 210에서, CMEA 처리의 제 1, 제 2 및 제 3 단계는 여기 기술되는 바와 같이 각각 수행된다. 0 ≤i ≤nmax범위 내의 정수 i에 대해 b(i)로 각각의 바이트를 표기한 nmax바이트 길이의 데이터 버퍼는 3개의 단계에서 암호화된다. 수정된 CMEA의 제 1 단계(I)는 다음과 같다.
1. 변수 z을 제로로 초기화한다.
2. 0 ≤i ≤nmax범위 내의 연속한 i의 정수값에 대해서,
a. q = z오프셋1에 의해 변수 q를 형성하며, 여기서는 비트단위 부울린 배타-OR 연산자이며, 오프셋1은 나중에 정의될 8비트 비밀값이다.
b. k = TBOX(q)에 의해 변수 k를 형성한다.
c. b(i) = b(i) + k mod 25로 b(i)를 갱신한다.
d. z = b(i)로 z를 갱신한다.
수정된 CMEA의 제 2 단계(II)는 다음과 같다.
1. 0 ≤i ≤nmax-1, i는 우수, 범위 내의 i 및 i+1의 모든 값에 대해서,
b(i) = b(i)b(i+1).
수정된 CMEA의 마지막 혹은 제 3 단계(III)는 제 1 단계의 역인 복호화이다.
1. 변수 z를 제로로 초기화한다.
2. 0 ≤i ≤nmax범위 내의 연속한 i의 정수값에 대해서,
a. q = z오프셋1로 변수 q를 형성한다.
b. k = TBOX(q)에 의해 변수 k를 형성한다.
c. z(i) = b(i)로 z를 갱신한다.
d. b(i) = b(i) - k mod 256으로 b(i)를 갱신한다.
단계 112에서, 최종 처리된 출력이 제공된다.
상기 기술된 수정된 CMEA 처리는 스스로 역전한다. 즉, 동일 순서에 적용된 동일 단계는 평문을 암호화하며 암호문을 복호화하는데 사용된다. 그러므로, 암호화 및 복호화가 실행되고 있는지 여부를 판단할 필요가 없다. 불행히도, 도 1에 관련하여 기술된 상기 기술된 원래의 CMEA 처리 및 상기 기술된 수정된 CMEA 처리는 호출을 위해 사용된 CMEA 키를 찾을 수 있게 하는 침입을 받을 수 있는 것으로 알려져 있다.
사용자 정보에 추가된 보안을 제공하기 위해서, 본 발명에 따른 암호화 시스템은 자체 역 룩업 테이블을 채용하는 개선된 tbox 함수를 사용하는 CMEA 처리의 반복을 사용한다. CMEA 처리 반복은 도 1에 도시한 원래의 CMEA 처리이거나 도 2에 도시한 수정된 처리일 수 있다. 암호화 시스템은 또한 비밀 오프셋에 의해 tbox 함수에 입력을 허용함으로써 tbox 함수의 사용을 개선한다. 부가적인 보안은 CMEA 반복 전후에 메시지에 변환을 적용함으로써 제공된다.
도 3은 본 발명에 따른 개선된 ECMEA 암호화/복호화 처리를 보인 흐름도이다. 단계 302에서, 처리되지 않은 메시지가 암호화/복호화 처리에 도입된다. 처리되지 않은 메시지는 전송하기 위해 암호화될 평문 메시지이거나, 수신한 암호화된 메시지로서 복호화될 메시지일 수 있다. 처리되지 않은 메시지는 편이상, 처리하기 위해서 데이터 버퍼에 격납될 수 있다. 단계 304에서, 함수 호출이 아닌 정적 테이블로서 tbox를 구현하는 시스템에서, 정적 tbox 테이블이 도출된다. 비밀 오프셋을 발생할 때 사용하기 위해 한 세트의 비밀값 K0-k3이 발생되고, 오프셋이 계산된다. 비밀값 K0-K3은 바람직하게 옥텟이다. 한 세트의 비밀값은 이 분야에 공지된 많은 기술 중 하나를 사용하여 발생될 수 있다. 모든 비밀값 K0-K3은 각각의 무선전화 호출마다 발생되는 것이 바람직하며 호출 전체를 통해 일정한 것이 바람직하다. 제 1 및 제 2 오프셋은 다음 식을 사용하여 발생된다.
오프셋1 = ((K0+1)*CS mod 257)K1mod 256
오프셋2 = ((K2+1)*CS mod 257)K3mod 256
여기서, K0-K3은 앞에서 정의된 바와 같다. CS는 2진 카운터로서 구현된 옥텟인 것이 바람직하다. 오프셋 1 및 오프셋2는 각각 8비트 값이다.
단계 308에서, 제 1 및 제 2 오프셋을 사용하여 메시지에 대해 변환이 수행되어 변환된 메시지를 생성한다. 변환에 대한 상세한 것은 도 4 설명에 관련하여 이하 기술한다.
다음 310에서, 변환된 메시지는 CMEA 키를 사용하여 CMEA 처리가 반복되어 중간 암호문 메시지를 생성한다. 사용된 CMEA 처리는 도 1에 관련하여 설명한 리드의 원 CMEA 처리일 수 있거나 도 2에 관련하여 설명한 수정된 CMEA 처리일 수 있다. CMEA 처리의 반복은 개선된 tbox 함수가 포함됨으로써 개선되는데, 이 개선된 tbox 함수는 각각의 옥텟의 자체 역 룩업을 수행하며 다음 식으로 주어진다.
tbox(z) = I(I(I(I(I(I(I(I(I(I(I(I(I(I(z+k0)XOR k1)+k2)XOR k3)+k4)XOR k5)+k6)XOR k7)-k6)XOR k5)-k4)XOR k3)-k2)XOR k1)-k0
여기서, "+"는 모듈로 256 가산, "-"는 모듈로 256 감산을 나타내며, "XOR"는 XOR 함수, "z"는 함수 인자, k0,..,k7은 8 옥텟의 ECMEA 키이며, I()는 알려진 ibox 8비트 테이블 룩업의 출력이다. ibox 테이블은 8비트 바이트를 8비트 바이트로 자체 역 맵핑을 수행하기 위해 선택된 엔트리를 갖는 자체 역 룩업 테이블이다. ibox 테이블의 바람직한 예는 다음과 같다.
여기서 엔트리들은 16진수 형식으로 되어 있다. ibox 테이블 엔트리는 0x00부터 0xff까지 색인된다. 이것은 십진수 0 내지 255로 바꾼다. 상기 테이블에 있어서, 제 1 행의 제 1 엔트리는 0x00로 색인되며, 제 1 행 내의 제 8 엔트리는 0x07로 색인되며, 제 2 행의 제 1 엔트리는 0x08로 색인되고, 제 2 행의 제 8 엔트리는 0x0f으로 색인된다. 등등. 즉 ibox(ibox((z))) = z. 예를 들면, ibox(0x00) = 0xdd. 0xdd로 색인된 엔트리를 찾으면 ibox(0xdd) = 0x00임을 알 수 있다. 개선된 tbox 함수는 도 1 및 도 2의 설명과 관련하여 전술한 TBOX 함수로 대치된다.
보안을 더욱 개선하기 위해서, tbox 함수에의 입력은 비밀 오프셋을 사용하여 순열배치된다. 각각의 tbox 함수 입력은 순열배치되어 순열배치 결과를 생성한다. CMEA의 반복에서 사용하기 위해서, 제 1 오프셋이 사용된다. tbox 함수 입력이 x로서 정의된다면, 예를 들면 순열배치 결과는 CMEA 처리에서 tbox 사용을 위한 값 (x오프셋1)이 된다. tbox 함수를 변환 혹은 역변환에서 사용할 때, tbox 함수 내에 위치하는 곳에 따라, (x오프셋1) 혹은 (x오프셋2)을 사용하게 될 것이다. 변환 및 역변환 내에서의 tbox 순열배치의 사용을 포함하여 변환 및 역변환 각각을 이하 상세히 기술한다. 각각의 순열배치 결과는 tbox 함수를 거친다. 따라서, 각각의 tbox 입력 x에 대해서, 사용되는 함수는 (x오프셋1) 혹은 (x오프셋2)이다. tbox 입력의 순열배치에 의해서 tbox 엔트리의 위치가 각각의 메시지에 따라 효과적으로 옮겨지기 때문에 암호해독 침입의 어려움이 크게 증가한다.
단계 312에서, 중간 암호문은 제 1 및 제 2 비밀 오프셋을 사용하여 역변환되어 최종 처리된 메시지를 생성한다. 역변환에 대해 도 5의 설명과 관련하여 이하 기술한다.
도 4는 도 3에 도시한 순방향 ECMEA 처리(300)에서 수행되는 변환(308)의 단계들을 상세히 도시한 흐름도이다. 변환(308) 단계는 각각의 옥텟(On)마다 수행되며, 여기서 n은 0 내지 nmax-1의 정수이고, nmax는 메시지 내의 옥텟의 수이다.
단계 402에서 n은 0으로 설정된다. 단계 404에서 다음 식에 따라 오프셋 회전 및 자체 역 룩업이 수행된다.
n〉0이면,
오프셋1 = (오프셋1 〉〉 1) OR (오프셋1 〈〈 7)
On= 오프셋2tbox(On 오프셋1)
여기서 On은 처리되지 않은 메시지의 n번째 옥텟, 〉〉1은 우측으로 1비트 시프트, 〈〈7은 좌측으로 7비트 시프트를 나타낸다. 이들 2개의 시프트와 상기 그 행 내의 그 다음 OR는 우측으로 1비트 회전을 포함한다.
단계 406에서 다음 식에 따라 현재의 옥텟과 그 이하의 옥텟간 비트-교환이 수행된다.
n〉0이면,
j = On-1 On
j = j AND tbox(j오프셋1)
On-1= On-1 j
On= On j
여기서, j는 임시 버퍼 변수이다.
단계 408에서, 무작위 옥텟 순열배치는 다음 식에 따라, (n-1)번째 옥텟을 그 이하의 임의의 옥텟과 교환을 수행하도록 수행된다.
n〉1이면,
j = tbox(On 오프셋1)
j = (n*j) 〉〉 8
z = Oj
Oj=On-1
On-1= z
j 및 z은 임시 버퍼 변수이다.
단계 410에서 n을 증분시키고 nmax와 비교한다. n 〈 nmax이면, 제어는 단계 404로 옮겨진다. n 〉 nmax이면, 제어는 단계 412로 진행된다.
단계 412에서, 마지막 옥텟을 그 이하의 임의의 옥텟과 교환하는 최종 무작위 옥텟 순열배치가 다음 식에 따라 수행된다.
j = tbox(0x37오프셋1)
j = (n*j) 〉〉 8
z = Oj
Oj=On-1
On-1= z
j 및 z은 임시 버퍼 변수이다.
단계 414에서, 변환이 완료된다.
도 5는 도 3에 도시한 순방향 ECMEA 처리(300)에서 수행되는 역변환(312)의 단계를 상세히 도시한 흐름도이다. 변환(312) 단계는 각각의 옥텟(On)마다 수행되며, On은 중간 암호문 메시지의 n번째 옥텟이며, n은 0 내지 nmax-1의 정수이며, nmax는 메시지 내의 옥텟 수이다.
단계 502에서, 초기 역 오프셋 회전은 다음 식에 따라 오프셋2에 대해 수행된다.
j = (nmax-1) AND 0x07
오프셋2 = (오프셋2 〉〉 j) OR (오프셋2 〈〈 (8-j))
여기서 〉〉j는 우측으로 j비트 시프트를 나타내며, 〈〈(8-j)는 좌측으로 (8-j) 비트 시프트를 나타낸다. 이들 2개의 시프트 및 상기 그 행 내의 그 다음 OR는 우측으로 j비트 회전을 포함한다.
단계 504에서, 초기 역 무작위 옥텟 순열배치를 수행하여, 다음 식에 따라 마지막 옥텟을 그 이하의 임의의 옥텟과 교환한다.
j = tbox(0x37오프셋2)
j = (nmax*j) 〉〉 8
z = Oj
Oj=Onmax-1
Onmax-1= z
여기서 j 및 z는 임시 버퍼 변수이다.
단계 506에서 n은 nmax-1로 설정된다.
단계 508에서, 역 무작위 옥텟 순열배치를 수행하여, 다음 식에 따라 (n-1)번째 옥텟을 그 이하의 임의의 옥텟과 교환한다.
n〉1이면,
j = tbox(0n 오프셋2)
j = (n *j) 〉〉 8
z = Oj
Oj=On-1
On-1= z
여기서 j 및 z는 임시 버퍼 변수이다.
단계 510에서, 현재의 옥텟과 그 이하의 옥텟간에 역 비트-교환은 다음 식에 따라 수행된다.
n〉0이면,
j = 0n-1 0n
j = j AND tbox(j오프셋2)
0n-1= 0n-1 j
0n= 0n j
여기서 j는 임시 버퍼 변수이다.
단계 512에서, 현재의 옥텟과 역 오프셋 회전의 역 자체 역 룩업이 다음 식에 따라 수행된다.
0n= 오프셋2tbox(0n 오프셋1)
오프셋2 = (오프셋2 〈〈 1) OR (오프셋2 〉〉 7)
여기서 〈〈1은 좌측으로 1비트 시프트를 나타내며, 〉〉7은 우측으로 7비트 시프트를 나타낸다. 이들 2개의 시프트 및 상기 그 행 내의 그 다음 OR는 좌측으로 1비트 회전을 포함한다.
단계 514에서 n은 감분되고 0과 비교된다. n ≥ 0이면 제어는 단계 508로 옮겨진다. n 〈 0이면 제어는 단계 516로 옮겨지고 역변환이 완료된다.
도 6은 도 3에 도시한 역 ECMEA 처리(300)에 의해 암호화된 메시지를 복호화하거나, 메시지를 암호화한 후 도 3에 도시한 순방향 ECMEA 처리(300)에 의해 복호화되는데 적합한 역방향 ECMAC 처리(600)를 도시한 흐름도이다. 역방향 ECMEA 처리(600)는 역변환, 이어서 CMEA 반복 및 이에 이어 역방향 역변환을 채용한다. 역방향 변환은 역방향 변환이 제 1 및 제 2 비밀 오프셋의 사용을 역방향으로 하는 것을 제외하고 변환과 동일하다. 즉, 변환이 제 1 오프셋을 사용하는 경우, 역방향 변환은 제 2 오프셋을 사용하며, 변환이 제 2 오프셋을 사용하는 경우, 역방향 변환은 제 2 오프셋을 사용하며, 변환이 제 2 오프셋을 사용하는 경우, 역방향 변환은 제 1 오프셋을 사용한다. 마찬가지로, 역방향 역변환은 역방향 역변환이 제 1 및 제 2 비밀 오프셋의 사용을 역방향으로 하는 것을 제외하고 역변환과 동일하다. 즉, 역변환이 제 1 오프셋을 사용하는 경우, 역방향 역변환은 제 2 오프셋을 사용하며, 역변환이 제 2 오프셋을 사용하는 경우, 역방향 변환은 제 1 오프셋을 사용한다.
단계 602에서, 처리되지 않은 메시지는 암호화/복호화 처리에 도입된다. 처리되지 않은 메시지는 암호화된 평문 메시지이거나, 수신된 암호화된 메시지로서 복호화될 메시지일 수 있다. 처리되지 않은 메시지는 편의상 처리하기 위해서 데이터 버퍼 내에 격납된다. 단계 604에서, 함수 호출이 아닌 정적 테이블로서 tbox를 구현하는 시스템에서, 정적 테이블이 도출된다. 단계 606에서, 비밀 오프셋을 발생할 때 사용하기 위해 한 셋트의 비밀값 K0-K3이 발생되며 오프셋이 계산된다. 비밀 값 K0-K3은 바람직하게 옥텟이다. 한 세트의 비밀값은 이 분야에 공지된 많은 기술 중 하나를 사용하여 발생될 수 있다. 모든 비밀값 K0-K3은 각각의 무선전화 호출마다 발생되는 것이 바람직하며 호출 전체를 통해 일정한 것이 바람직하다. 제 1 및 제 2 오프셋은 다음 식을 사용하여 발생된다.
오프셋1 = ((K0+1) * CS mod 257) K1mod 256
오프셋2 = ((K2+1) * CS mod 257) K3mod 256
여기서 K0-K3는 상기한 바와 같이 정의된다. CS는 2진 카운터로서 구현된 옥텟인 것이 바람직하다. 오프셋1 및 오프셋2는 각각 8비트값이다.
단계 608에서, 역방향 변환은 제 1 및 제 2 비밀 오프셋을 사용하여, 처리되지 않은 메시지에 대해 수행되어 역방향 변환된 메시지를 생성한다. 역방향 변환의 상세를 도 7의 설명에 관련하여 이하 기술한다.
단계 610에서, 역방향 변환된 메시지는 CMEA 키를 사용하여 CMEA 처리의 반복되어 역방향 중간 암호문 메시지를 생성한다. 사용된 CMEA 처리는 도 1에 관련하여 기술된 리드의 원 처리일 수 있으며, 혹은 도 2에 관련하여 기술된 수정된 CMEA 처리일 수 있다. 역방향 ECMEA 처리를 위해 선택된 CMEA 처리는 대응하는 순방향 ECMEA 처리용으로 선택된 것과 동일해야 한다. CMEA 처리 반복은 개선된 tbox 함수를 포함시켜 개선되는데, 이 개선된 tbox는 각각의 옥텟의 자체 역 룩업을 수행하며, 다음 식으로 주어진다.
tbox(z) = I(I(I(I(I(I(I(I(I(I(I(I(I(I(z+k0)XOR k1)+k2)XOR k3)+k4)XOR k5)+k6)XOR k7)-k6)XOR k5)-k4)XOR k3)-k2)XOR k1)-k0
여기서, "+"는 모듈로 256 가산, "-"는 모듈로 256 감산을 나타내며, "XOR"는 XOR 함수, "z"는 함수 인자, k0,..,k7은 8 옥텟의 ECMEA 키이며, I()는 알려진 ibox 8비트 테이블 룩업의 출력이다. ibox 테이블은 8비트 바이트를 8비트 바이트로 자체 역 맵핑을 수행하기 위해 선택된 엔트리를 갖는 자체 역 룩업 테이블이다. ibox 테이블의 바람직한 예는 다음과 같다.
여기서 엔트리들은 16진수 형식으로 되어 있다. ibox 테이블 엔트리는 0x00부터 0xff까지 색인된다. 이것은 십진수 0 내지 255로 바꾼다. 상기 테이블에 있어서, 제 1 행의 제 1 엔트리는 0x00로 색인되며, 제 1 행 내의 제 8 엔트리는 0x07로 색인되며, 제 2 행의 제 1 엔트리는 0x08로 색인되고, 제 2 행의 제 8 엔트리는 0x0f로 색인된다. 등등. 테이블을 검토해보면 이 테이블은 자체 역 룩업을 제공함이 명백하다. 0xdd로 색인된 엔트리를 찾으면 ibox(0xdd) = 0x00임을 알 수 있다. 개선된 tbox 함수는 도 1 및 도 2의 설명과 관련하여 전술한 TBOX 함수로 대치된다.
보안을 더욱 개선하기 위해서, tbox 함수에의 입력은 비밀 오프셋을 사용하여 순열배치된다. 각각의 tbox 함수 입력은 순열배치되어 순열배치 결과를 생성한다. CMEA 처리의 반복에서 사용하기 위해서, 제 1 오프셋이 사용된다. tbox 함수 입력이 x로서 정의된다면, 예를 들면 순열배치 결과는 CMEA 처리에서 tbox 사용을 위한 값 (x오프셋1)이 된다. tbox 함수를 변환 혹은 역변환에서 사용할 때, tbox 함수 내에 위치하는 곳에 따라, (x오프셋1) 혹은 (x오프셋2)을 사용하게 될 것이다. 변환 및 역변환 내에서의 tbox 순열배치의 사용을 포함하여 변환 및 역변환 각각을 이하 상세히 기술한다. 각각의 순열배치 결과는 tbox 함수를 거친다. 따라서, 각각의 tbox 입력 x에 대해서, 사용되는 함수는 (x오프셋1) 혹은 (x오프셋2)이다. tbox 입력의 순열배치에 의해서 tbox 엔트리의 위치가 각각의 메시지에 대해 효과적으로 옮겨지기 때문에 암호해독 침입의 어려움이 크게 증가한다.
단계 612에서, 역방향 중간 암호문에 대해 제 1 및 제 2 비밀 오프셋을 사용하여 역방향 역변환이 수행되어 최종 처리된 문을 생성한다. 역방향 역변환에 대해 상세한 것을 도 8의 설명과 관련하여 이하 기술한다.
도 7은 도 6에 도시한 순방향 ECMEA 처리(600)에서 수행되는 역방향 변환(608)의 단계들을 상세히 도시한 흐름도이다. 변환(608) 단계는 각각의 옥텟(On)마다 수행된다. On은 처리되지 않은 메시지의 제 n번째 옥텟이다. 여기서 n은 0 내지 nmax-1의 정수이고, nmax는 메시지 내의 옥텟의 수이다.
단계 702에서 n은 0으로 설정된다. 단계 704에서 다음 식에 따라 오프셋 회전 및 자체 역 룩업이 수행된다.
n〉0이면,
오프셋1 = (오프셋1 〉〉 1) OR (오프셋2 〈〈 7)
On= 오프셋1tbox(On 오프셋2)
여기서 〉〉1은 우측으로 1비트 시프트, 〈〈7은 좌측으로 7비트 시프트를 나타낸다. 이들 2개의 시프트와 상기 그 행 내의 그 다음 OR는 우측으로 1비트 회전을 포함한다.
단계 706에서 다음 식에 따라 현재의 옥텟과 그 이하의 옥텟간 비트-교환이 수행된다.
n〉0이면,
j = On-1 On
j = j AND tbox(j오프셋2)
On-1= On-1 j
On= On j
여기서, j는 임시 버퍼 변수이다.
단계 708에서, 무작위 옥텟 순열배치는 다음 식에 따라, 다음 식에 따라, (n-1)번째 옥텟을 그 이하의 임의의 옥텟과 교환을 수행하도록 수행된다.
n〉1이면,
j = tbox(On 오프셋2)
j = (n*j) 〉〉 8
z = Oj
Oj=On-1
On-1= z
여기서 j 및 z은 임시 버퍼 변수이다.
단계 710에서 n을 증분시키고 nmax와 비교한다. n 〈 nmax이면, 제어는 단계 404로 옮겨진다. n 〉 nmax이면, 제어는 단계 412로 옮겨진다.
단계 712에서, 마지막 옥텟을 그 이하의 임의의 옥텟과 교환하는 최종 무작위 옥텟 순열배치가 다음 식에 따라 수행된다.
j = tbox(0x37오프셋2)
j = (n*j) 〉〉 8
z = Oj
Oj=On-1
On-1= z
여기서, j 및 z은 임시 버퍼 변수이다.
단계 714에서, 변환이 완료된다.
도 8은 도 6에 도시한 순방향 ECMEA 처리(600)에서 수행되는 역방향 역변환(612)의 단계를 상세히 도시한 흐름도이다.
단계 802에서, 초기 역 오프셋 회전은 다음 식에 따라 오프셋1에 대해 수행된다.
j = (nmax-1) AND 0x07
오프셋1 = (오프셋1 〉〉 j) OR (오프셋1 〈〈 (8-j))
여기서 〉〉j는 우측으로 j비트 시프트를 나타내며, 〈〈(8-j)는 좌측으로 (8-j) 비트 시프트를 나타낸다. 이들 2개의 시프트 및 상기 그 행 내의 그 다음 OR는 우측으로 j비트 회전을 포함한다.
단계 804에서, 초기 역 무작위 옥텟 순열배치를 수행하여, 다음 식에 따라 마지막 옥텟을 그 이하의 임의의 옥텟과 교환한다.
j = tbox(0x37오프셋1)
j = (nmax*j) 〉〉 8
z = Oj
Oj=Onmax-1
Onmax-1= z
여기서 j 및 z는 임시 버퍼 변수이다.
단계 806에서 n은 nmax-1로 설정된다.
단계 808에서, 역 무작위 옥텟 순열배치를 수행하여, 다음 식에 따라 (n-1)번째 옥텟을 그 이하의 임의의 옥텟과 교환한다.
n〉1이면,
j = tbox(0n 오프셋1)
j = (n *j) 〉〉 8
z = Oj
Oj=On-1
On-1= z
여기서 j 및 z는 임시 버퍼 변수이다.
단계 810에서, 현재의 옥텟과 그 이하의 옥텟간에 역 비트-교환이 다음 식에 따라 수행된다.
n〉0이면,
j = 0n-1 0n
j = j AND tbox(j오프셋1)
0n-1= 0n-1 j
0n= 0n j
여기서 j는 임시 버퍼 변수이다.
단계 812에서, 현재의 옥텟과 역 오프셋 회전의 역 자체 역 룩업이 다음 식에 따라 수행된다.
0n= 오프셋1tbox(0n 오프셋2)
오프셋1 = (오프셋1 〈〈 1) OR (오프셋1 〉〉 7)
여기서 〈〈1은 좌측으로 1비트 시프트를 나타내며, 〉〉7은 우측으로 7비트 시프트를 나타낸다. 이들 2개의 시프트 및 상기 그 행 내의 그 다음 OR는 좌측으로 1비트 회전을 포함한다.
단계 814에서 n은 감분되고 0과 비교된다. n ≥ 0이면 제어는 단계 808로 옮겨진다. n 〈 0이면 제어는 단계 816로 옮겨지고 역변환이 완료된다.
도 9는 핸드셋(1000) 및 기지국(1100)을 포함하는 무선전화 시스템(900)을 도시한 도면이다. 핸드셋(1000) 및 기지국(1100)은 본 발명에 따라 메시지 전송 및 처리를 수행하도록 장치된다. 전화 핸드셋(1000)은 트랜시버(1002), 입력/출력(I/O) 인터페이스(1004), 암호화/복호화 프로세서(1006), 및 키 발생기(1008)를 포함한다. 키 발생기(1008)는 키 발생을 위해, 저장된 비밀 데이터를 수신하여 사용한다. 저장된 비밀 데이터는 EEPROM 혹은 플래시 메모리와 같은 불휘발성 메모리(1010)에 저장되는 것이 바람직하다. 키 발생기는 또한 오프셋을 생성하는데 사용되는 비밀값 K0-K3을 발생한다. 비밀값은 옥텟인 것이 바람직하다. 키 발생기는 이 분야에 공지된 많은 기술 중 하나를 사용하여 비밀값 K0-K3을 발생하도록 설계될 수 있다. 한 세트의 비밀값 K0-K3은 각각의 무선전화 호출마다 발생되는 것이 바람직하며, 값 K0-K3은 호출 전체를 통해 일정한 것이 바람직하다. 키 발생기(1008)는 발생된 키 및 비밀값 K0-K3을 메모리(1012)에 저장한다. 암호화/복호화 프로세서는 또한 키 발생기(1008)로부터 수신된 키, 및 정적 테이블로서 tbox 함수를 구현하고자 한다면 발생되어 사용될 수 있는 정적 tbox 테이블의 저장을 위한 메모리를 포함한다. 전화 핸드셋(1000)은 또한 메시지 발생기(1016)를 포함하는데, 이 메시지 발생기는 암호화/복호화 프로세서(1006)에 의해 암호화되어 트랜시버(1002)에 의해 전송된 메시지를 발생한다.
내부 발생된 메시지가 전화 핸드셋(1000)에 의해 암호화되어 전송될 때, 메시지는 메시지 발생기(1016)에서 I/O 인터페이스(1004)로 전송된다. I/O 인터페이스(1004)는 메시지를 식별과 함께 암호화/복호화 프로세서(1006)로 전송한다. 암호화/복호화 프로세서(1006)는 키 발생기(1008)로부터 키를 수신하고 이어서 메시지를 암호화는데 이를 사용한다.
전화 핸드셋 기반 암호화/복호화 프로세서(1006)가 메시지 발생기(1016)로부터 평문 메시지를 수신할 때, 메시지는 도 3의 설명과 관련하여 상기 기술된 순방향 ECMEA 처리된다. 순방향 ECMEA 처리는 변환, CMEA 처리의 반복, 및 역변환을 포함한다. 도 3에서 전술한 순방향 ECMEA 처리의 사용으로 tbox 엔트리의 위치는 각각의 메시지에 대해 옮겨질 뿐만 아니라 단일의 메시지의 암호화 반복 각각에 대해서도 옮겨진다.
순방향 ECMEA 처리를 완료하였을 때, 최종 암호문이 생성되어 메모리(1014)에 저장되며, I/O 인터페이스(1004)로 보내져서 전송하기 위해 트랜시버(1002)로 보내진다.
암호화된 메시지를, 복호화하기 위한 전화 기지국(1100)이 수신하였을 때, 트랜시버(1102)는 이를 I/O 인터페이스(1104)로 전달한다. I/O 인터페이스는 메시지를 암호화/복호화 프로세서(1106)로 전달한다. 암호화/복호화 프로세서(1106)는 키 발생기(1108)로부터 키를 수신하여, 도 3의 설명과 관련하여 전술한 ECMEA 처리를 사용하여 메시지를 복호화한다. 전화 핸드셋(1000)은 메시지를 암호화 및 복호화하기 위해 순방향 ECMEA 처리를 사용하며, 도 6의 설명과 관련하여 전술한 바와 같이, 암호화 및 복호화를 위한 역방향 ECMEA 처리를 사용하는 기지국(1100)과 통신하도록 되어 있는 것이 바람직하다. 기지국(1100)은 트랜시버(1102), I/O 인터페이스(1104), 암호화/복호화 프로세서(1106), 키 발생기(1108), 불휘발성 메모리(1110), 메모리(1112), 메모리(1114), 및 메시지 발생기(1116)을 포함한다. 이들 구성요소는 핸드셋(1000)의 대응하는 구성요소와 유사하나 역방향 ECMEA 처리를 구현하도록 구성된다. 따라서, 핸드셋(1000)에 의해 암호화된 메시지는 기지국(1100)에 의해 복호화되며, 기지국(1100)에 의해 암호화된 메시지는 핸드셋(1000)에 의해 복호화된다.
속도요건 및 메모리 제약에 의존하여, 핸드셋(100) 혹은 기지국(1100)은 함수 혹은 정적 테이블로서 tbox를 구현하도록 설계될 수 있다. 정적 테이블로서 tbox의 구현은 증가된 메모리를 필요로 하지만 보다 빠른 속도를 제공한다.
상기 기술된 CMEA 처리에 대한 개선은 실제적으로 보안을 증가시키면서, 처리 혹은 시스템 자원을 실제적으로 증가시키지 않으며, 그러므로 무선전화 시스템과 같은 환경에서 사용하는데 매우 적합하다. 이러한 시스템에서 이동통신 기기 및 기지국 기기는 흔히 제한된 처리 능력을 갖는다.본 발명을 본 바람직한 실시예 맥락에서 개시하였으나, 이 분야에 숙련된 자는 상기 설명 및 이하 이어지는 청구범위에 일관성 있는 광범위한 다양한 구현이 채용될 수 있을 알 것이다.

Claims (18)

  1. 무선전화 시스템에서 활용되는 CMEA 암호화 시스템에서 사용하기 위한, 호출(call) 내의 각각의 메시지에 대한 개선된 순방향 CMEA 암호화 처리 방법에 있어서,
    처리되지 않은 메시지를 도입하는 단계;
    하나 이상의 비밀 오프셋을 생성하는 단계;
    상기 처리되지 않은 메시지에 대해 변환을 수행하여 변환된 메시지를 생성하는 단계;
    상기 변환된 메시지에 대해서, CMEA 처리의 반복을 수행하여 중간 암호문 메시지를 생성하는 단계;
    상기 중간 암호문 메시지에 대한 역변환을 수행하여 최종 처리된 메시지를 생성하는 단계를 포함하며, 상기 CMEA 처리의 반복은 자체 역(involutary) 룩업을 사용하는 개선된 tbox 함수를 사용하며, 상기 tbox 함수는 입력들을 수신하며, 상기 개선된 tbox 함수로의 상기 입력은 하나 이상의 상기 비밀 오프셋을 사용하여 순열배치되어(permutation) 순열배치 결과를 생성하는 개선된 순방향 CMEA 암호화 처리 방법.
  2. 제 1항에 있어서, 상기 하나 이상의 비밀 오프셋은 제 1 및 제 2 비밀 오프셋을 포함하는 개선된 순방향 CMEA 암호화 처리 방법.
  3. 제 2항에 있어서, 상기 제 1 및 제 2 오프셋 각각을 발생하는 단계는 복수의 비밀값을 암호 동기화(cryptosychroniization) 값에 결합하는 단계를 포함하는 호출 내의 메시지에 대한 개선된 순방향 CMEA 암호화 처리 방법.
  4. 제 3항에 있어서, 상기 비밀값은 옥텟(octets)인 개선된 순방향 CMEA 암호화 처리 방법.
  5. 제 4항에 있어서, 상기 암호 동기화 값은 8비트값인 개선된 순방향 CMEA 암호화 처리 방법.
  6. 제 5항에 있어서, 상기 호출은 n 개의 처리되지 않은 메시지와, 오프셋1=((K0+1)*CS mod 257)K1mod 256의 식에 의해 표현되는 오프셋1을 포함하는 상기 호출의 처리되지 않은 메시지에 대한 제 1의 오프셋, 및 오프셋2=((K2+1)*CS mod 257)K3mod 256의 식에 의해 표현되는 오프셋2을 포함하는 상기 호출의 상기 제 n번째 메시지에 대한 제 2 오프셋을 포함하며, K0및 K1는 상기 비밀값이며 CS는 제 n번째 처리되지 않은 메시지에 대한 상기 암호 동기화 값이며, K2및 K3는 상기 비밀값이며 CS는 상기 제 n번째 처리되지 않은 메시지에 대한 상기 암호 동기화 값인 개선된 순방향 CMEA 암호화 처리 방법.
  7. 제 6항에 있어서, 상기 변환은 자체 역 룩업 및 오프셋 회전(rotation) 단계, 비트-교환(bit-trading) 단계, 및 상기 처리되지 않은 메시지의 각각의 옥텟에 대한 무작위 옥텟 순열배치 단계를 포함하며, 상기 비트-교환 단계 및 상기 무작위 옥텟 순열배치 단계 각각은 상기 제 1 비밀 오프셋을 사용하며, 상기 자체 역 룩업 단계는 상기 제 1 및 제 2 비밀 오프셋 각각을 사용하는 개선된 순방향 CMEA 암호화 처리 방법.
  8. 제 7항에 있어서, 상기 역변환은 초기 역 오프셋 회전 단계, 역 무작위 옥텟 순열배치 단계, 역 비트-교환 단계, 및 상기 중간 암호문 메시지의 각각의 옥텟에 대한 역 자체 역 룩업 및 역 오프셋 회전 단계를 포함하며, 상기 역 무작위 옥텟 순열배치 및 역 비트-교환 단계 각각은 상기 제 2 비밀 오프셋을 사용하여, 상기 역 자체 역 룩업 단계는 상기 제 1 및 제 2 비밀 오프셋 각각을 사용하는 것을 특징으로 하는 호출 내의 메시지에 대한 개선된순방향 CMEA 암호화 처리 방법.
  9. 무선전화 시스템에 활용되는 CMEA 암호화 시스템에서 사용하기 위한, 호출 내의 각각의 메시지에 대한 개선된 역방향 CMEA 암호화 처리 방법에 있어서,
    처리되지 않은 메시지를 도입하는 단계;
    하나 이상의 비밀 오프셋을 생성하는 단계;
    상기 처리되지 않은 메시지에 대해 역방향 변환(reverse transformation)을 수행하여 역방향 변환된 메시지를 생성하는 단계;
    상기 역방향 변환된 메시지에 대해서, 상기 CMEA 처리의 반복을 수행하여 역방향 중간 암호문 메시지를 생성하는 단계;
    상기 중간 암호문 메시지에 대한 역방향 역변환을 수행하여 최종 처리된 메시지를 생성하는 단계를 포함하며, 상기 CMEA 처리의 반복은 자체 역 룩업을 사용하는 개선된 tbox 함수를 사용하며, 상기 개선된 tbox 함수에의 입력은 하나 이상의 상기 비밀 오프셋을 사용하여 순열배치되어 순열배치 결과를 생성하는 개선된 역방향 CMEA 암호화 처리 방법.
  10. 제9항에 있어서, 상기 하나 이상의 비밀 오프셋은 제 1 및 제 2 비밀 오프셋을 포함하는 개선된 역방향 CMEA 암호화 처리 방법.
  11. 제 10항에 있어서, 상기 제 1 및 제 2 오프셋 각각을 발생하는 단계는 복수의 비밀값을 암호 동기화 값에 결합하는 단계를 포함하는 개선된 역방향 CMEA 암호화 처리 방법.
  12. 제 11항에 있어서, 상기 비밀값은 옥텟인 개선된 역방향 CMEA 암호화 처리 방법.
  13. 제 12항에 있어서, 상기 암호 동기화 값은 8비트값인 개선된 역방향 CMEA 암호화 처리 방법.
  14. 제 13항에 있어서, 상기 호출은 n개의 처리되지 않은 메시지; K0및 K1가 상기 비밀값이며 CS가 제 n번째 처리되지 않은 메시지에 대한 상기 암호 동기화 값일 때, 오프셋1=((K0+1)*CS mod 257)K1mod 256의 식으로 표현된 오프셋1을 포함하는 상기 호출의 상기 제 n번째 메시지에 대한 제 1 오프셋; K2및 K3이 상기 비밀값이며 CS가 상기 제 n번째 처리되지 않은 메시지에 대한 상기 암호 동기화 값일 때 오프셋2=((K2+1)*CS mod 257)K3mod 256의 식으로 표현된 오프셋2을 포함하는 상기 호출의 상기 제 n번째 메시지에 대한 제 2 오프셋을 포함하는 것을 특징으로 하는 호출 내의 메시지에 대한 개선된 역방향 CMEA 암호화 처리 방법.
  15. 제 14항에 있어서, 상기 역방향 변환은 오프셋 회전 및 자체 역 룩업 단계, 비트-교환 단계, 및 각각의 옥텟에 대한 무작위 옥텟 순열배치 단계를 포함하며, 상기 비트-교환 단계 및 상기 무작위 옥텟 순열배치 단계 각각은 상기 제 2 비밀 오프셋을 사용하며, 상기 자체 역 룩업단계는 상기 제 1 및 제 2 비밀 오프셋 각각을 사용하는 개선된 역방향 CMEA 암호화 처리 방법.
  16. 제 15항에 있어서, 상기 역방향 역변환은 초기 역 오프셋 회전 단계, 역 무작위 옥텟 순열배치 단계, 역 비트-교환하는 단계, 및 상기 중간 암호문 메시지의 각각의 옥텟에 대한 역 자체 역 룩업 및 역 오프셋 회전 단계를 포함하며, 상기 역 무작위 옥텟 순열배치 및 역 비트-교환 단계 각각은 상기 제 1 비밀 오프셋을 사용하여, 상기 역 자체 역 룩업 단계는 상기 제 1 및 제 2 비밀 오프셋 각각을 사용하는 개선된 역방향 CMEA 암호화 처리 방법.
  17. 메시지를 안전하게 전송하기 위한 무선 핸드셋에 있어서,
    트랜시버;
    입력/출력 인터페이스;
    호출 동안 사용될 하나의 이상의 키를 발생하는 키 발생기; 및
    암호화될 평문 혹은 복호화될 암호문으로서 상기 메시지의 식별과 함께 암호화 혹은 복호화될 메시지를 상기 입력/출력 인터페이스로부터 수신하며, 역 변환, 자체 역 룩업 테이블을 활용하는 개선된 tbox 함수, 하나 이상의 비밀 오프셋의 의해 순열배치된 입력을 갖는 개선된 tbox 함수를 포함하는 CMEA 반복, 및 변환을 포함하는 개선된 순방향 CMEA 처리를 사용하여 상기 메시지를 처리하기 위한 암호화 프로세서를 포함하며, 상기 암호화/복호화 프로세서는 암호화 혹은 복호화된 메시지를 그 다음 루팅을 위해 상기 입력/출력 인터페이스로 되돌려 보내도록 동작하는 무선 핸드셋.
  18. 메시지를 안전하게 전송하기 위한 무선 기지국에 있어서,
    트랜시버;
    입력/출력 인터페이스;
    호출 동안 사용될 하나의 이상의 키를 발생하는 키 발생기; 및
    암호화될 평문 혹은 복호화될 암호문으로서 상기 메시지의 식별과 함께 암호화 혹은 복호화될 메시지를 상기 입력/출력 인터페이스로부터 수신하며, 역 변환, 자체 역 룩업 테이블을 활용하는 개선된 tbox 함수, 하나 이상의 비밀 오프셋의 의해 순열배치된 입력을 갖는 개선된 tbox 함수를 포함하는 CMEA 반복, 및 변환을 포함하는 개선된 순방향 CMEA 처리를 사용하여 상기 메시지를 처리하기 위한 암호화 프로세서를 포함하며, 상기 암호화/복호화 프로세서는 암호화 혹은 복호화된 메시지를 그 다음 루팅을 위해 상기 입력/출력 인터페이스로 되돌려 보내도록 동작하는 무선 기지국.
KR1019997002699A 1997-07-29 1998-07-29 개선된 변환을 사용한 개선된 셀룰러 메시지 암호화 알고리즘을 위한 방법 및 장치 KR100573180B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US5401897P 1997-07-29 1997-07-29
US60/054,018 1997-07-29

Publications (2)

Publication Number Publication Date
KR20000068663A true KR20000068663A (ko) 2000-11-25
KR100573180B1 KR100573180B1 (ko) 2006-04-24

Family

ID=21988232

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997002699A KR100573180B1 (ko) 1997-07-29 1998-07-29 개선된 변환을 사용한 개선된 셀룰러 메시지 암호화 알고리즘을 위한 방법 및 장치

Country Status (9)

Country Link
US (1) US6377687B1 (ko)
EP (1) EP0928526B1 (ko)
JP (2) JP3466204B2 (ko)
KR (1) KR100573180B1 (ko)
CN (1) CN1236516A (ko)
BR (1) BR9806124A (ko)
CA (1) CA2266665A1 (ko)
DE (1) DE69830646T2 (ko)
WO (1) WO1999007103A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075859A (en) * 1997-03-11 2000-06-13 Qualcomm Incorporated Method and apparatus for encrypting data in a wireless communication system
JP2001359165A (ja) * 2000-06-15 2001-12-26 Mitsubishi Electric Corp モバイル通信システム
DE10103609A1 (de) * 2001-01-28 2002-08-14 Audioton Kabelwerk Gmbh Freisprecheinrichtung für den Betrieb von Mobiltelefonen in Kraftfahrzeugen
DE10103608A1 (de) * 2001-01-28 2002-08-14 Audioton Kabelwerk Gmbh Freisprecheinrichtung für den Betrieb von Mobiltelefonen in Kraftfahrzeugen
EP1712032B1 (en) * 2003-12-11 2011-05-11 Irdeto B.V. Block ciphering system, using permutations to hide the core ciphering function of each encryption round
US20050193197A1 (en) * 2004-02-26 2005-09-01 Sarvar Patel Method of generating a cryptosync
DE602006006072D1 (de) * 2006-11-22 2009-05-14 Research In Motion Ltd System und Verfahren für ein sicheres Aufzeichnungsprotokoll unter Verwendung von gemeinsam genutzten Kenntnissen von Mobilteilnehmerberechtigungsnachweisen

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1522775A (en) * 1922-04-14 1925-01-13 William F Friedman Secret-signaling apparatus for automatically enciphering and deciphering messages
US1516180A (en) * 1922-06-05 1924-11-18 William F Friedman Secret signaling system employing apparatus for automatically enciphering and deciphering messages
US5159634A (en) * 1991-09-13 1992-10-27 At&T Bell Laboratories Cryptosystem for cellular telephony
US5410599A (en) * 1992-05-15 1995-04-25 Tecsec, Incorporated Voice and data encryption device
GB9211648D0 (en) * 1992-06-02 1992-07-15 Racal Datacom Ltd Data communication system
US5594797A (en) * 1995-02-22 1997-01-14 Nokia Mobile Phones Variable security level encryption

Also Published As

Publication number Publication date
JP3466204B2 (ja) 2003-11-10
CN1236516A (zh) 1999-11-24
BR9806124A (pt) 1999-08-31
EP0928526B1 (en) 2005-06-22
WO1999007103A1 (en) 1999-02-11
JP2000508441A (ja) 2000-07-04
JP2003263109A (ja) 2003-09-19
CA2266665A1 (en) 1999-02-11
KR100573180B1 (ko) 2006-04-24
DE69830646T2 (de) 2006-05-11
EP0928526A1 (en) 1999-07-14
DE69830646D1 (de) 2005-07-28
US6377687B1 (en) 2002-04-23

Similar Documents

Publication Publication Date Title
EP0966809B1 (en) Method of and apparatus for encrypting signals for transmission
KR100573180B1 (ko) 개선된 변환을 사용한 개선된 셀룰러 메시지 암호화 알고리즘을 위한 방법 및 장치
JP3459074B2 (ja) 無線電話メッセージのセキュリティを改善するためのルックアップテーブルへの秘密鍵の強化されたセキュリティ拡張の方法および装置
US6266411B1 (en) Method and apparatus for multiple-iteration CMEA encryption and decryption for improved security for wireless telephone messages
KR100591870B1 (ko) 인볼룬터리 룩업을 사용하고 변환들에 의해 선행 및 추종되는 cmea 반복을 포함하는 강화된 cmea를 위한 방법 및 장치
US6418224B1 (en) Methods and apparatus for self-inverting multiple-iteration CMEA crypto-processing for improved security for wireless telephone messages
WO1999003246A2 (en) Methods and apparatus for enhanced security expansion of a secret key into a lookup table for improved security for wireless telephone messages
KR100591869B1 (ko) 무선 전화 메시지들에 대한 보안성을 개선하기 위해 다수의 씨엠이에이 반복을 사용하는 암호화 및 해독화방법 및 무선 전화
CA2603161C (en) Method of and apparatus for encrypting signals for transmission
MXPA98010503A (en) Methods and apparatus for multiple-iteration cmea encryption and decryption for improved security for wireless telephone messages
MXPA98010502A (en) Methods and apparatus for enhanced security expansion of a secret key into a lookup table for improved security for wireless telephone messages

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: 20130405

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140404

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150416

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160408

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee