KR101543571B1 - 비밀 통신 방법 - Google Patents
비밀 통신 방법 Download PDFInfo
- Publication number
- KR101543571B1 KR101543571B1 KR1020080093040A KR20080093040A KR101543571B1 KR 101543571 B1 KR101543571 B1 KR 101543571B1 KR 1020080093040 A KR1020080093040 A KR 1020080093040A KR 20080093040 A KR20080093040 A KR 20080093040A KR 101543571 B1 KR101543571 B1 KR 101543571B1
- Authority
- KR
- South Korea
- Prior art keywords
- receiver
- authentication server
- value
- originator
- transmitter
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic 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 involving a third party or a trusted authority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
본 발명은 비밀 통신 방법에 관한 것으로, 도청 등의 공격을 막을 수 있어 사용자들 사이의 완전한 비밀 통신을 수행할 수 있도록, 본 발명에 따른 비밀 통신 방법은 사업자 인증 서버가 발신기측 암호를 기반으로 생성된 발신측 암호화값을 이용하여 발신기를 등록하고, 수신기측 암호를 기반으로 생성된 수신측 암호화값을 이용하여 수신기를 등록하는 단계, 상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청에 따라, 상기 사업자 인증 서버가 상기 수신측 암호화값을 이용하여 상기 수신기를 인증하는 단계, 상기 수신기 인증이 완료됨에 따라, 상기 사업자 인증 서버가 상기 발신측 암호화값을 이용하여 상기 발신기를 인증하는 단계 및 상기 발신기 인증이 완료됨에 따라, 상기 사업자 인증 서버가 상기 발신기와 상기 수신기 각각 동일하게 생성된 암호화키를 이용하여 비밀 통신이 수행되도록 제어하는 단계를 통해 이뤄질 수 있다.
이동전화, 핸드폰, 인증, 키교환, 키동의, 도청, 비밀 통신, 암호화키
Description
본 발명은 비밀 통신 방법에 관한 것으로, 보다 상세하게는 도청 등의 공격을 막을 수 있어 사용자들 사이의 완전한 비밀 통신을 수행할 수 있는 기술에 관한 것이다.
통신 중계 서버를 통해 발신기와 수신기를 연결하는 통신 시스템에서, 발신기와 수신기 사이의 데이터(음성을 포함한다)는 외부 침입자에 의해 통신 경로상에서 데이터를 복제하거나 훔쳐가는 것에 의해 안전하지 못하다.
이와 같은 문제를 해결하기 위하여, 발신기와 수신기 사이의 데이터 흐름에 암호를 추가하는 방법이 제안되었다.
특히, 이동통신망은 무선 통신을 위해 전파의 형태로 데이터가 송수신되기 때문에, 데이터가 외부에 노출되어 있다. 따라서 이동통신망은 CAVE(Cellular Authentication and Voice Encryption) 알고리즘을 사용하여 Private long code를 암호화키로 생성하여 사용한다. 이 알고리즘은 기본적으로 비밀키 방식의 알고리즘을 근간으로 하고 있으나, 현재 이 알고리즘은 상당히 많이 분석되어 이미 해독되었다고 알려져 있다. 비록, 이 암호화키가 안전하다 할지라도, 이 암호화키를 이용한 통신 암호화는 기지국과 단말기 사이에만 이루어지기 때문에, 사용자들간의 완전한 비밀 통신이 불가능한 문제가 있다.
본 발명은 전술된 종래기술에 따른 문제점을 해결하기 위하여 도출된 것으로서, 한 사업자 또는 두 사업자에 각각 가입된 사용자들 사이의 안전한 비밀 통신을 보장할 수 있는 기술의 제공을 목적으로 한다.
본 발명의 다른 목적은 통신 경로 상에서의 도청이 불가능한 비밀 통신 기술을 제공하는 것이다.
본 발명의 또 다른 목적은 전방향 안정성을 제공하는 비밀 통신 기술을 제공하는 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 비밀 통신 방법은 사업자 인증 서버가 발신기측 암호를 기반으로 생성된 발신측 암호화값을 이용하여 발신기를 등록하고, 수신기측 암호를 기반으로 생성된 수신측 암호화값을 이용하여 수신기를 등록하는 단계; 상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청에 따라, 상기 사업자 인증 서버가 상기 수신측 암호화값을 이용하여 상기 수신기를 인증하는 단계; 상기 수신기 인증이 완료됨에 따라, 상기 사업자 인증 서버가 상기 발신측 암호화값을 이용하여 상기 발신기를 인증하는 단계; 및 상기 발신기 인증이 완료됨에 따라, 상기 사업자 인증 서버가 상기 발신기와 상기 수신기 각각 동일하게 생성된 암호화키를 이용하여 비밀 통신이 수행되도록 제어하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 등록하는 단계는 상기 사업자 인증 서버가 상기 발신기로부터 수신된 발신측 제1 암호화값과 발신측 제2 암호화값을 이용하여 상기 발신기를 등록하고, 상기 수신기로부터 수신된 수신측 제1 암호화값과 수신측 제2 암호화값을 수신하여 상기 수신기를 등록하며, 상기 발신측 제1 암호화값은 상기 발신기 식별자와 발신기측 암호를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 발신측 제2 암호화값은 상기 발신측 제1 암호화값과 타원곡선 상의 임의의 한 점을 이용하여 산출된 값을 의미하며, 상기 수신측 제1 암호화값은 상기 수신기 식별자와 수신기측 암호를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 수신측 제2 암호화값은 상기 수신측 제1 암호화값과 타원 곡선 상의 임의의 한 점을 이용하여 산출된 값을 의미할 수 있다.
이때, 상기 사업자 인증 서버는 상기 발신기 및 상기 수신기로부터 수신된 정보가 암호화된 경우 자신의 공개키를 이용하여 복호화할 수 있다.
아울러, 상기 사업자 인증 서버는 상기 발신기로부터 발신기측 암호가 수신되면, 상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청이 발생된 것으로 확인할 수 있다.
이때, 상기 사업자 인증 서버는 상기 수신기로부터 상기 발신기의 비밀 통신 요청에 대한 응답으로 수신기측 암호가 수신되면, 상기 사업자 인증 서버가 상기 수신측 암호화값을 이용하여 상기 수신기를 인증할 수 있다.
또한, 상기 수신기를 인증하는 단계는 상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청에 따라, 상기 사업자 인증 서버가 상기 발신기로부터 발신측 랜덤 암호화값, 발신기 식별자 및 수신기 식별자를 수신하는 단계; 상기 사업자 인증 서버가 상기 수신측 암호화값을 이용하여 수신기간 인증자를 산출하고, 상기 발신측 암호화값을 이용하여 발신기간 인증자를 산출하는 단계; 상기 사업자 인증 서버가 상기 산출된 수신기간 인증자, 상기 발신기로부터 수신된 상기 발신기 식별자 및 상기 발신측 랜덤 암호화값을 상기 수신기에게 전송하는 단계; 상기 사업자 인증 서버가 상기 수신기로부터 수신측 랜덤 암호화값, 수신기간 해쉬 값, 수신기와 발신기간 해쉬 값을 수신하는 단계; 상기 사업자 인증 서버가 상기 수신기로부터 수신된 상기 수신측 랜덤 암호화값을 이용하여 수신기간 세션 키를 산출하는 단계; 상기 사업자 인증 서버가 상기 수신기로부터 수신된 상기 수신기간 해쉬 값을 이용하여 상기 수신기를 인증하는 단계; 및 상기 수신기 인증에 성공하면, 상기 사업자 인증 서버가 상기 산출된 발신기간 인증자, 상기 수신기로부터 수신된 상기 수신기와 발신기간 해쉬 값 및 수신측 랜덤 암호화값을 상기 발신기로 전송하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 발신측 랜덤 암호화값은 상기 발신기에 의해 임의의 발신기 랜덤값 및 상기 타원 곡선 상의 임의의 한 점을 이용하여 산출된 값을 의미하며, 상기 수신측 랜덤 암호화값은 상기 수신기에 의해 임의의 수신기 랜덤값 및 상기 타원 곡선 상의 임의의 한 점을 이용하여 산출된 값을 의미하며, 상기 수신기간 해쉬 값은 상기 수신기에 의해 수신기 식별자, 사업자 인증 서버 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 수신기간 인증자, 수신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 수신기와 발신기간 해쉬 값은 상기 수신기에 의해 수신기 식별자, 발신기 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 발신기와 수신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 발신기와 수신기간 세션키는 상기 임의의 수신기 랜덤값과 상기 발신측 랜덤 암호화값을 이용하여 산출된 값을 의미하며, 상기 수신기간 세션키는 수신측 암호화값, 임의의 수신기 랜덤값 및 상기 수신기간 인증자를 이용하여 산출된 값을 의미할 수 있다.
또한, 상기 발신기를 인증하는 단계는 상기 사업자 인증 서버가 상기 발신기로부터 발신기간 해쉬 값, 발신기와 수신기간 해쉬 값을 수신하는 단계; 상기 사업자 인증 서버가 상기 발신기로부터 수신된 상기 발신기간 해쉬 값을 이용하여 상기 발신기를 인증하는 단계; 상기 발신기 인증에 성공하면, 상기 사업자 인증 서버가 사업자 인증 서버와 발신기간 해쉬 값 및 사업자 인증 서버와 수신기간 해쉬 값을 산출하는 단계; 및 상기 사업자 인증 서버가 상기 발신기로 상기 사업자 인증 서버와 발신기간 해쉬값을 전송하고, 상기 수신기로 상기 사업자 인증 서버와 수신기간 해쉬값 및 상기 발신기와 수신기간 해쉬 값을 전송하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 사업자 인증 서버와 발신기간 해쉬 값은 사업자 인증 서버 식별자, 발신기 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 상기 발신기간 인증자 및 발신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 사업자 인증 서버와 수신기간 해쉬 값은 사업자 인증 서버 식별자, 수신기 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 수신기간 인증자, 수신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 발신기간 해쉬 값은 상기 발신기에 의해 발신기 식별자, 사업자 인증 서버 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 발신기간 인증자, 발신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 발신기와 수신기간 해쉬 값은 상기 발신기에 의해 발신기 식별자, 수신기 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 발신기와 수신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 발신기와 수신기간 세션키는 상기 임의의 발신기 랜덤값와 상기 수신측 랜덤 암호화값을 이용하여 산출된 값을 의미하며, 상기 발신기간 세션키는 발신측 암호화값, 임의의 발신기 랜덤값 및 상기 발신기간 인증자를 이용하여 산출된 값을 의미할 수 있다.
아울러, 상기 수신기 또는 발신기를 인증하는 단계 이후에, 상기 수신기 또는 발신기 인증에 실패하면, 상기 사업자 인증 서버가 상기 발신기 또는 수신기로 상기 비밀 통신을 중단하기 위한 중단 메시지를 전송하는 단계;를 더 포함하여 이뤄질 수 있다.
또한, 상기 비밀 통신이 수행되도록 제어하는 단계는 상기 발신기에서 상기 사업자 인증 서버와 발신기간 해쉬 값을 기초로 상기 사업자 인증 서버를 인증하여 인증에 성공하면 암호화키를 생성하고, 상기 수신기에서 상기 사업자 인증 서버와 수신기간 해쉬 값을 기초로 상기 사업자 인증 서버를 인증하고 상기 발신기와 수신기간 해쉬 값을 기초로 상기 발신기를 인증하여 인증에 성공하면 상기 발신기에서 생성된 암호화키와 동일한 암호화키를 생성하여 상기 생성된 암호화키를 이용하여 비밀 통신이 수행되도록 제어하는 단계;를 포함하여 이뤄질 수 있다.
또한, 상기 발신기 또는 상기 수신기가 상기 사업자 인증 서버 인증에 실패한 경우 또는 상기 수신기가 상기 발신기 인증에 실패한 경우, 상기 발신기 또는 상기 수신기는 상기 비밀 통신을 중단할 수 있다.
아울러, 상기 등록하는 단계는 상기 사업자 인증 서버가 상기 발신기로부터 수신한 상기 발신측 제1 암호화값과 상기 발신측 제2 암호화값 그리고 상기 수신기로부터 수신한 상기 수신측 제1 암호화값과 상기 수신측 제2 암호화값은 사업자 인증 서버 식별자를 더 이용하여 산출된 값을 의미할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 비밀 통신 방법은 발신측 사업자 인증 서버가 발신기측 암호를 기반으로 생성된 발신측 암호화값을 이용하여 발신기를 등록하고, 수신측 사업자 인증 서버가 수신기측 암호를 기반으로 생성된 수신측 암호화값을 이용하여 수신기를 등록하는 단계; 상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청에 따라, 상기 수신측 사업자 인증 서버가 상기 발신기 및 상기 발신측 사업자 인증 서버로부터 전달되는 정보를 이용하여 상기 수신기를 인증하는 단계; 상기 수신기 인증이 완료됨에 따라, 상기 수신측 사업자 인증 서버로부터 전달되는 정보를 이용하여 상기 발신측 사업자 인증 서버가 상기 수신측 사업자 인증 서버를 인증하는 단계; 상기 수신측 사업자 인증 서버 인증이 완료됨에 따라, 상기 발신측 사업자 인증 서버가 상기 발신기를 인증하는 단계; 상기 발신기 인증이 완료됨에 따라, 상기 수신측 사업자 인증 서버가 상기 발신측 사업자 인증 서버를 인증하는 단계; 및 상기 발신측 사업자 인증 서버 인증이 완료됨에 따라, 상기 발신측 사업자 인증 서버와 상기 수신측 사업자 인증 서버가 상기 발신기와 상기 수신기 각각 동일하게 생성된 암호화키를 이용하여 비밀 통신이 수행되도록 제어하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 수신기를 인증하는 단계는 상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청에 따라, 상기 발신측 사업자 인증 서버가 상기 발신기로부터 발신측 랜덤 암호화값, 발신기 식별자 및 수신기 식별자를 수신하는 단계; 상기 발신측 사업자 인증 서버가 상기 발신측 랜덤 암호화값, 발신기 식별자, 수신기 식별자와 발신측 사업자 인증 서버 식별자를 상기 수신측 사업자 인증 서버로 전송하고, 상기 발신기에 의해 기 등록된 발신측 암호화값을 이용하여 발신측 서버 랜덤 암호화값을 산출하는 단계; 상기 수신측 사업자 인증 서버가 상기 수신기에 의해 기 등록된 수신측 암호화값을 이용하여 수신측 서버 랜덤 암호화값을 산출하는 단계; 상기 수신측 사업자 인증 서버가 상기 산출된 수신측 서버 랜덤 암호화값과, 상기 발신측 사업자 인증 서버로부터 수신된 상기 발신기 식별자 및 발신측 랜덤 암호화값을 상기 수신기로 전송하는 단계; 상기 수신측 사업자 인증 서버가 상기 수신기로부터 수신측 랜덤 암호화값, 수신측 사업자 인증 서버와 수신기간 해쉬 값, 상기 발신기와 수신기간 해쉬값을 수신하는 단계; 상기 수신측 사업자 인증 서버가 상기 수신기로부터 수신된 상기 수신측 사업자 인증 서버와 수신기간 해쉬 값을 이용하여 상기 수신기를 인증하고 인증에 성공하면, 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬값을 산출하는 단계; 및 상기 수신측 사업자 인증 서버가 상기 상기 발신측 사업자 인증 서버로 상기 수신기로부터 수신된 수신측 랜덤 암호화값, 상기 발신기와 수신기간 해쉬값 및 상기 산출된 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬값을 전송하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 수신측 사업자 인증 서버를 인증하는 단계는 상기 발신측 사업자 인증 서버가 상기 수신측 사업자 인증 서버로부터 수신된 상기 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬값을 이용하여 상기 수신측 사업자 인증 서버를 인증하는 단계; 및 상기 인증에 성공하면, 상기 발신측 사업자 인증 서버가 상기 발신기로 상기 수신측 사업자 인증 서버로부터 수신된 수신측 랜덤 암호화값 및 발신기와 수신기간 해쉬값과, 상기 산출된 발신측 서버 랜덤 암호화값을 전송하는 단계;를 포함하여 이뤄질 수 있다.
여기서, 상기 발신기를 인증을 수행하는 단계는 상기 발신측 사업자 인증 서버가 상기 발신기로부터 상기 수신기와 발신기간 해쉬값, 상기 발신기와 발신측 사업자 인증 서버간 해쉬값을 수신하는 단계; 상기 발신측 사업자 인증 서버가 상기 발신기로부터 수신된 상기 발신기와 발신측 사업자 인증 서버간 해쉬값을 이용하여 상기 발신기를 인증하는 단계; 상기 인증에 성공하면, 상기 발신측 사업자 인증 서버가 상기 발신측 사업자 인증 서버와 수신측 사업자 인증 서버간 해쉬값을 산출하는 단계; 및 상기 발신측 사업자 인증 서버가 상기 산출된 발신측 사업자 인증 서버와 수신측 사업자 인증 서버간 해쉬값 및 상기 발신기로부터 수신된 수신기와 발신기간 해쉬값을 전송하는 단계;를 포함하여 이뤄질 수 있다.
또한, 상기 발신측 사업자 인증 서버를 인증하는 단계는 상기 수신측 사업자 인증 서버가 상기 발신측 사업자 인증 서버로부터 수신된 상기 발신측 사업자 인증 서버와 수신측 사업자 인증 서버간 해쉬값을 이용하여 상기 발신측 사업자 인증 서버를 인증하는 단계; 및 상기 인증에 성공하면, 상기 수신측 사업자 인증 서버가 수신측 사업자 인증 서버와 수신기간 해쉬 값을 산출하는 단계;를 포함하여 이뤄질 수 있다.
또한, 상기 제어하는 단계는 상기 수신측 사업자 인증 서버가 상기 수신기에게 상기 산출된 수신측 사업자 인증 서버와 수신기간 해쉬값 및 상기 발신측 사업자 인증 서버로부터 수신된 발신기와 수신기간 해쉬값을 전송하여 상기 수신기에서 암호화키를 생성하도록 제어하고, 상기 발신측 사업자 인증 서버가 상기 발신기로 발신측 사업자 인증 서버와 발신기간 해쉬값을 전송하여 상기 발신기에서 상기 수신기에서 생성된 암호화키와 동일한 암호화키가 생성되도록 제어하여 비밀 통신이 수행되도록 제어할 수 있다.
이때, 상기 등록하는 단계는 상기 사업자 인증 서버가 상기 발신기로부터 수신된 발신측 제1 암호화값과 발신측 제2 암호화값을 이용하여 상기 발신기를 등록하고, 상기 수신기로부터 수신된 수신측 제1 암호화값과 수신측 제2 암호화값을 수신하여 상기 수신기를 등록하며, 상기 발신측 제1 암호화값은 상기 발신기 식별자와 발신기측 암호를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 발신측 제2 암호화값은 상기 발신측 제1 암호화값과 타원곡선 상의 임의의 한 점을 이용하여 산출된 값을 의미하며, 상기 수신측 제1 암호화값은 상기 수신기 식별자와 수신기측 암호를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 수신측 제2 암호화값은 상기 수신측 제1 암호화값과 타원 곡선 상의 임의의 한 점을 이용하여 산출된 값을 의미할 수 있다.
이때, 상기 사업자 인증 서버는 상기 발신기 및 상기 수신기로부터 수신된 정보가 암호화된 경우 자신의 공개키를 이용하여 복호화할 수 있다.
아울러, 상기 사업자 인증 서버는 상기 발신기로부터 발신기측 암호가 수신되면, 상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청이 발생된 것으로 확인할 수 있다.
이때, 상기 사업자 인증 서버는 상기 수신기로부터 상기 발신기의 비밀 통신 요청에 대한 응답으로 수신기측 암호가 수신되면, 상기 사업자 인증 서버가 상기 수신측 암호화값을 이용하여 상기 수신기를 인증할 수 있다.
또한, 상기 수신기를 인증하는 단계는 상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청에 따라, 상기 사업자 인증 서버가 상기 발신기로부터 발신측 랜덤 암호화값, 발신기 식별자 및 수신기 식별자를 수신하는 단계; 상기 사업자 인증 서버가 상기 수신측 암호화값을 이용하여 수신기간 인증자를 산출하고, 상기 발신측 암호화값을 이용하여 발신기간 인증자를 산출하는 단계; 상기 사업자 인증 서버가 상기 산출된 수신기간 인증자, 상기 발신기로부터 수신된 상기 발신기 식별자 및 상기 발신측 랜덤 암호화값을 상기 수신기에게 전송하는 단계; 상기 사업자 인증 서버가 상기 수신기로부터 수신측 랜덤 암호화값, 수신기간 해쉬 값, 수신기와 발신기간 해쉬 값을 수신하는 단계; 상기 사업자 인증 서버가 상기 수신기로부터 수신된 상기 수신측 랜덤 암호화값을 이용하여 수신기간 세션 키를 산출하는 단계; 상기 사업자 인증 서버가 상기 수신기로부터 수신된 상기 수신기간 해쉬 값을 이용하여 상기 수신기를 인증하는 단계; 및 상기 수신기 인증에 성공하면, 상기 사업자 인증 서버가 상기 산출된 발신기간 인증자, 상기 수신기로부터 수신된 상기 수신기와 발신기간 해쉬 값 및 수신측 랜덤 암호화값을 상기 발신기로 전송하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 발신측 랜덤 암호화값은 상기 발신기에 의해 임의의 발신기 랜덤값 및 상기 타원 곡선 상의 임의의 한 점을 이용하여 산출된 값을 의미하며, 상기 수신측 랜덤 암호화값은 상기 수신기에 의해 임의의 수신기 랜덤값 및 상기 타원 곡선 상의 임의의 한 점을 이용하여 산출된 값을 의미하며, 상기 수신기간 해쉬 값은 상기 수신기에 의해 수신기 식별자, 사업자 인증 서버 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 수신기간 인증자, 수신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 수신기와 발신기간 해쉬 값은 상기 수신기에 의해 수신기 식별자, 발신기 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 발신기와 수신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 발신기와 수신기간 세션키는 상기 임의의 수신기 랜덤값과 상기 발신측 랜덤 암호화값을 이용하여 산출된 값을 의미하며, 상기 수신기간 세션키는 수신측 암호화값, 임의의 수신기 랜덤값 및 상기 수신기간 인증자를 이용하여 산출된 값을 의미할 수 있다.
또한, 상기 발신기를 인증하는 단계는 상기 사업자 인증 서버가 상기 발신기로부터 발신기간 해쉬 값, 발신기와 수신기간 해쉬 값을 수신하는 단계; 상기 사업자 인증 서버가 상기 발신기로부터 수신된 상기 발신기간 해쉬 값을 이용하여 상기 발신기를 인증하는 단계; 상기 발신기 인증에 성공하면, 상기 사업자 인증 서버가 사업자 인증 서버와 발신기간 해쉬 값 및 사업자 인증 서버와 수신기간 해쉬 값을 산출하는 단계; 및 상기 사업자 인증 서버가 상기 발신기로 상기 사업자 인증 서버와 발신기간 해쉬값을 전송하고, 상기 수신기로 상기 사업자 인증 서버와 수신기간 해쉬값 및 상기 발신기와 수신기간 해쉬 값을 전송하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 사업자 인증 서버와 발신기간 해쉬 값은 사업자 인증 서버 식별자, 발신기 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 상기 발신기간 인증자 및 발신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 사업자 인증 서버와 수신기간 해쉬 값은 사업자 인증 서버 식별자, 수신기 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 수신기간 인증자, 수신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 발신기간 해쉬 값은 상기 발신기에 의해 발신기 식별자, 사업자 인증 서버 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 발신기간 인증자, 발신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 발신기와 수신기간 해쉬 값은 상기 발신기에 의해 발신기 식별자, 수신기 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 발신기와 수신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 상기 발신기와 수신기간 세션키는 상기 임의의 발신기 랜덤값와 상기 수신측 랜덤 암호화값을 이용하여 산출된 값을 의미하며, 상기 발신기간 세션키는 발신측 암호화값, 임의의 발신기 랜덤값 및 상기 발신기간 인증자를 이용하여 산출된 값을 의미할 수 있다.
아울러, 상기 수신기 또는 발신기를 인증하는 단계 이후에, 상기 수신기 또는 발신기 인증에 실패하면, 상기 사업자 인증 서버가 상기 발신기 또는 수신기로 상기 비밀 통신을 중단하기 위한 중단 메시지를 전송하는 단계;를 더 포함하여 이뤄질 수 있다.
또한, 상기 비밀 통신이 수행되도록 제어하는 단계는 상기 발신기에서 상기 사업자 인증 서버와 발신기간 해쉬 값을 기초로 상기 사업자 인증 서버를 인증하여 인증에 성공하면 암호화키를 생성하고, 상기 수신기에서 상기 사업자 인증 서버와 수신기간 해쉬 값을 기초로 상기 사업자 인증 서버를 인증하고 상기 발신기와 수신기간 해쉬 값을 기초로 상기 발신기를 인증하여 인증에 성공하면 상기 발신기에서 생성된 암호화키와 동일한 암호화키를 생성하여 상기 생성된 암호화키를 이용하여 비밀 통신이 수행되도록 제어하는 단계;를 포함하여 이뤄질 수 있다.
또한, 상기 발신기 또는 상기 수신기가 상기 사업자 인증 서버 인증에 실패한 경우 또는 상기 수신기가 상기 발신기 인증에 실패한 경우, 상기 발신기 또는 상기 수신기는 상기 비밀 통신을 중단할 수 있다.
아울러, 상기 등록하는 단계는 상기 사업자 인증 서버가 상기 발신기로부터 수신한 상기 발신측 제1 암호화값과 상기 발신측 제2 암호화값 그리고 상기 수신기로부터 수신한 상기 수신측 제1 암호화값과 상기 수신측 제2 암호화값은 사업자 인증 서버 식별자를 더 이용하여 산출된 값을 의미할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 비밀 통신 방법은 발신측 사업자 인증 서버가 발신기측 암호를 기반으로 생성된 발신측 암호화값을 이용하여 발신기를 등록하고, 수신측 사업자 인증 서버가 수신기측 암호를 기반으로 생성된 수신측 암호화값을 이용하여 수신기를 등록하는 단계; 상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청에 따라, 상기 수신측 사업자 인증 서버가 상기 발신기 및 상기 발신측 사업자 인증 서버로부터 전달되는 정보를 이용하여 상기 수신기를 인증하는 단계; 상기 수신기 인증이 완료됨에 따라, 상기 수신측 사업자 인증 서버로부터 전달되는 정보를 이용하여 상기 발신측 사업자 인증 서버가 상기 수신측 사업자 인증 서버를 인증하는 단계; 상기 수신측 사업자 인증 서버 인증이 완료됨에 따라, 상기 발신측 사업자 인증 서버가 상기 발신기를 인증하는 단계; 상기 발신기 인증이 완료됨에 따라, 상기 수신측 사업자 인증 서버가 상기 발신측 사업자 인증 서버를 인증하는 단계; 및 상기 발신측 사업자 인증 서버 인증이 완료됨에 따라, 상기 발신측 사업자 인증 서버와 상기 수신측 사업자 인증 서버가 상기 발신기와 상기 수신기 각각 동일하게 생성된 암호화키를 이용하여 비밀 통신이 수행되도록 제어하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 수신기를 인증하는 단계는 상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청에 따라, 상기 발신측 사업자 인증 서버가 상기 발신기로부터 발신측 랜덤 암호화값, 발신기 식별자 및 수신기 식별자를 수신하는 단계; 상기 발신측 사업자 인증 서버가 상기 발신측 랜덤 암호화값, 발신기 식별자, 수신기 식별자와 발신측 사업자 인증 서버 식별자를 상기 수신측 사업자 인증 서버로 전송하고, 상기 발신기에 의해 기 등록된 발신측 암호화값을 이용하여 발신측 서버 랜덤 암호화값을 산출하는 단계; 상기 수신측 사업자 인증 서버가 상기 수신기에 의해 기 등록된 수신측 암호화값을 이용하여 수신측 서버 랜덤 암호화값을 산출하는 단계; 상기 수신측 사업자 인증 서버가 상기 산출된 수신측 서버 랜덤 암호화값과, 상기 발신측 사업자 인증 서버로부터 수신된 상기 발신기 식별자 및 발신측 랜덤 암호화값을 상기 수신기로 전송하는 단계; 상기 수신측 사업자 인증 서버가 상기 수신기로부터 수신측 랜덤 암호화값, 수신측 사업자 인증 서버와 수신기간 해쉬 값, 상기 발신기와 수신기간 해쉬값을 수신하는 단계; 상기 수신측 사업자 인증 서버가 상기 수신기로부터 수신된 상기 수신측 사업자 인증 서버와 수신기간 해쉬 값을 이용하여 상기 수신기를 인증하고 인증에 성공하면, 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬값을 산출하는 단계; 및 상기 수신측 사업자 인증 서버가 상기 상기 발신측 사업자 인증 서버로 상기 수신기로부터 수신된 수신측 랜덤 암호화값, 상기 발신기와 수신기간 해쉬값 및 상기 산출된 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬값을 전송하는 단계;를 포함하여 이뤄질 수 있다.
이때, 상기 수신측 사업자 인증 서버를 인증하는 단계는 상기 발신측 사업자 인증 서버가 상기 수신측 사업자 인증 서버로부터 수신된 상기 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬값을 이용하여 상기 수신측 사업자 인증 서버를 인증하는 단계; 및 상기 인증에 성공하면, 상기 발신측 사업자 인증 서버가 상기 발신기로 상기 수신측 사업자 인증 서버로부터 수신된 수신측 랜덤 암호화값 및 발신기와 수신기간 해쉬값과, 상기 산출된 발신측 서버 랜덤 암호화값을 전송하는 단계;를 포함하여 이뤄질 수 있다.
여기서, 상기 발신기를 인증을 수행하는 단계는 상기 발신측 사업자 인증 서버가 상기 발신기로부터 상기 수신기와 발신기간 해쉬값, 상기 발신기와 발신측 사업자 인증 서버간 해쉬값을 수신하는 단계; 상기 발신측 사업자 인증 서버가 상기 발신기로부터 수신된 상기 발신기와 발신측 사업자 인증 서버간 해쉬값을 이용하여 상기 발신기를 인증하는 단계; 상기 인증에 성공하면, 상기 발신측 사업자 인증 서버가 상기 발신측 사업자 인증 서버와 수신측 사업자 인증 서버간 해쉬값을 산출하는 단계; 및 상기 발신측 사업자 인증 서버가 상기 산출된 발신측 사업자 인증 서버와 수신측 사업자 인증 서버간 해쉬값 및 상기 발신기로부터 수신된 수신기와 발신기간 해쉬값을 전송하는 단계;를 포함하여 이뤄질 수 있다.
또한, 상기 발신측 사업자 인증 서버를 인증하는 단계는 상기 수신측 사업자 인증 서버가 상기 발신측 사업자 인증 서버로부터 수신된 상기 발신측 사업자 인증 서버와 수신측 사업자 인증 서버간 해쉬값을 이용하여 상기 발신측 사업자 인증 서버를 인증하는 단계; 및 상기 인증에 성공하면, 상기 수신측 사업자 인증 서버가 수신측 사업자 인증 서버와 수신기간 해쉬 값을 산출하는 단계;를 포함하여 이뤄질 수 있다.
또한, 상기 제어하는 단계는 상기 수신측 사업자 인증 서버가 상기 수신기에게 상기 산출된 수신측 사업자 인증 서버와 수신기간 해쉬값 및 상기 발신측 사업자 인증 서버로부터 수신된 발신기와 수신기간 해쉬값을 전송하여 상기 수신기에서 암호화키를 생성하도록 제어하고, 상기 발신측 사업자 인증 서버가 상기 발신기로 발신측 사업자 인증 서버와 발신기간 해쉬값을 전송하여 상기 발신기에서 상기 수신기에서 생성된 암호화키와 동일한 암호화키가 생성되도록 제어하여 비밀 통신이 수행되도록 제어할 수 있다.
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
본 발명에 따르면 사업자와 가입자 사이 및 사업자간의 상호 인증을 통해 안전한 비밀 통신을 보장할 수 있다.
또한 본 발명에 따르면, 충돌이 없는 일방향 해쉬 함수와, 단말기의 비밀번호, 랜덤 정수 등을 통한 계산에 의해 통신 경로 상에서의 도청이 불가능하고, 전 방향 안정성을 갖는 비밀 통신 기술을 제공할 수 있다.
이하에서, 첨부된 도면들을 참조하여 본 발명의 실시예가 기술된다.
하기에서 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략될 것이다. 또한 후술되는 용어들은 본 발명에서의 기능을 고려하여 설정된 용어들로서 이 용어들은 제품을 생산하는 생산자의 의도 또는 관례에 따라 달라질 수 있으며, 용어들의 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
(3자간 비밀 통신 시스템)
먼저 첨부된 도면 도1을 참조로 본 발명의 실시예에 따른 3자간 비밀 통신 시스템을 설명한다.
도1은 본 발명의 실시예에 따른 3자간 비밀 통신 시스템의 블럭도이다.
도1에 도시된 바와 같이, 본 실시예에 따른 3자간 비밀 통신 시스템(100)은 통신망(150)을 통해 상호 연결된, 사업자 인증 서버(110), 발신기(120) 및 수신기(130)를 포함한다.
발신기(120)는 비밀 통신을 위한 발신기측 암호가 할당되어 있고, 발신기측 암호, 정수 및 변수를 포함하는 함수를 연산할 수 있다. 발신기측 암호는 사용 편 의성을 고려하여 발신기(120)에 구비된 USIM(Universal Subscriber Identity Module)카드에 저장될 수 있다.
수신기(130)는 비밀 통신을 위한 수신기측 암호가 할당되어 있고, 수신기측 암호, 정수 및 변수를 포함하는 함수를 연산할 수 있다. 수신기측 암호는 사용 편의성을 고려하여 수신기(130)에 구비된 USIM카드에 저장될 수 있다.
사업자 인증 서버(110)는 발신기측 암호와 수신기측 암호가 저장되고, 발신기측 암호, 수신기측 암호, 정수 및 변수를 포함하는 함수를 연산할 수 있다.
이와 같은 구성을 갖는 3자간 비밀 통신 시스템(100)은 함수 연산 결과의 비교를 기반으로, 발신기(120)와 사업자 인증 서버(110) 사이 및 수신기(130)와 사업자 인증 서버 사이(110)에 상호 인증을 수행한다. 인증이 완료되면, 발신기(120)와 수신기(130)가 함수에 의해 생성된 암호화키를 기반으로 비밀 통신을 수행하게 된다. 여기서, 발신기(120), 수신기(130) 및 사업자 인증 서버(110)에서 연산되는 함수는 충돌이 없는 일방향 해쉬 함수가 사용될 수 있다.
(3자간 비밀 통신 방법)
이하에서 첨부된 도면 도2 내지 도6을 참조로 본 발명의 실시예에 따른 3자간 비밀 통신 방법을 설명한다.
도2는 본 발명의 실시예에 따른 3자간 비밀 통신 방법의 흐름도이고, 도3은 도2에서 인증 단계의 세부 흐름도이고, 도4는 도2에서 데이터의 흐름을 도시한 것이고, 도5는 도4의 제1변형예이고, 도6은 도4의 제2변형예이다.
도시된 바와 같이, 본 실시예에 따른 3자간 비밀 통신 방법은 등록 단계(S100), 요청 단계(S200), 인증 단계(S300) 및 통신 단계(S400)를 포함한다.
본 실시예의 설명에 앞서, 본 실시예에 사용되는 다양한 파라미터를 먼저 정의한다.
A는 발신기의 식별자, B는 수신기의 식별자, S는 사업자 인증 서버의 식별자, πA는 발신기측 암호, πB는 수신기측 암호, P는 타원곡선 상의 한점, h, h'은 충돌이 없는 일방향 해쉬 함수, E는 FP상에서 정의된 타원곡선으로 E(Zp)=(x,y)∈(Zp,Zp)|y2=x3+ax+b, 단 4a3+27b2=0(mod p)∪{○} 또는 FP상에서 정의된 타원곡선 E(Zp)=(x,y)∈ |y2+xy=x3+ax2+b, 단 a,b∈ (b≠0)∪{○}, a, b, s, t는 점 P의 위수 n보다 작은 랜덤 정수, 는 비트 배타적 논리합, 는 두 값이 같은지를 비교하는 연산자인 것으로 가정한다. 아울러 K는 암호화키를 의미하며, 세션키로 불릴 수도 있다. 한편, 타원곡선 관련 연산들은 모두 Fp상에서 수행됨에 유의한다.
등록 단계(S100)는 발신기와 수신기가 사업자 인증 서버로 발신기측 암호 및 수신기측 암호를 각각 등록하는 단계이다.
여기서, 발신기측 암호 및 수신기측 암호는 사용자에 의해 지정된 암호(예컨대, 비밀번호)를 의미한다. 즉, 비밀 통신을 위해 사용자에 의해 입력되어 지정되는 암호로, 사용자로부터 비밀통신을 위한 암호가 입력되면, 발신기 및 수신기는 이를 바로 사업자 인증 서버로 전송하여 등록하는 것이 아니라, 발신기측 암호를 기반으로 발신기는 발신측 암호화값을 생성하여 사업자 인증 서버로 전송함으로써 등록을 수행할 수 있으며, 수신기측 암호를 기반으로 수신기는 수신측 암호화값을 생성하여 사업자 인증 서버로 전송함으로써 등록을 수행하게 된다.
보다 구체적으로 설명하면, 먼저, 발신기는 사업자 인증 서버에 등록하기 위해, 사용자에 의해 입력되어 지정된 발신기측 암호를 기반으로 발신측 제1 암호화값과 발신측 제2 암호화값을 산출한 후, 이를 사업자 인증 서버로 전송하여 등록을 수행하게 된다. 여기서, 발신측 제1 암호화값(ωA)은 수학식 ωA=h'(S,A,πA)에 따라 산출되며, 발신측 제2 암호화값(νA)은 수학식 νA=h(S,A,πA)-1P에 따라 산출될 수 있다. 다시 말해, 상기 발신측 제1 암호화값(ωA) 및 발신측 제2 암호화값(νA)은 전술한 바와 같이 발신기측 암호(πA)를 이용하여 해쉬 함수에 따라 산출되는 정보로, 발신측 제1 암호화값(ωA)는 발신기 식별자(A)와 사업자 인증 서버 식별자(S), 발신기측 암호(πA)를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 발신측 제2 암호화값(νA)는 발신측 제1 암호화값(ωA)와 타원곡선 상의 임의의 한 점을 이용하여 산출될 수 있는 값을 의미한다.
이러한 과정을 거쳐 발신기는 발신측 제1 암호화값과 발신측 제2 암호화값을 산출하고, 이를 사업자 인증 서버로 전송하여 등록한다. 여기서, 발신측 제2 암호화값(νA)은 νA=h'(S,A,πA)P로 대체하여 사용할 수 있음에 유의한다. 이 경우 후술될 도 변경되어야 함에 유의한다.
수신기 또한 사업자 인증 서버에 등록하기 위해, 사용자에 의해 입력되어 지정된 수신기측 암호를 기반으로 수신측 제1 암호화값(ωB)과 수신측 제2 암호화값(νB)을 산출한 후, 이를 사업자 인증 서버로 전송하여 등록을 수행하게 된다. 여기서, 수신측 제1 암호화값(ωB)은 ωB=h'(S,B,πB)와에 따라 산출되며, 수신측 제2 암호화값(νB)은 νB=h(S,B,πB)-1P에 따라 산출될 수 있다. 다시 말해, 상기 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)은 전술한 바와 같이 수신기측 암호(πB)을 이용하여 해쉬 함수에 따라 산출되는 정보로, 수신측 제1 암호화값(ωB)은 수신기 식별자(B), 사업자 인증 서버 식별자(S), 수신기측 암호(πB)를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 수신측 제2 암호화값(νB)는 수신측 제1 암호화값(ωB)과 타원곡선 상의 임의의 한 점을 이용하여 산출될 수 있는 값을 의미한다.
이러한 과정을 거쳐 수신기는 수신측 제1 암호화값(ωB)과 수신측 제2 암호화값(νB)을 산출하고, 이를 사업자 인증 서버로 전송하여 등록한다. 여기서 수신측 제2 암호화값(νB)은 νB=h'(S,B,πB)P로 대체하여 사용할 수 있으며, 이 경우 후술될 도 변경되어야 함에 유의한다.
아울러, 발신기 및 수신기가 사업자 인증 서버로 전송하는 발신측 제1 암호화값(ωA), 발신측 제2 암호화값(νA), 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)은 공개키 암호화 기법을 사용하여 암호를 전송하여 수행될 수 있으며, 사업자 인증 서버는 상기 발신기 및 수신기로부터 수신된 정보, 즉 발신측 제1 암호화값(ωA), 발신측 제2 암호화값(νA), 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)을 자신의 공개키를 이용하여 복호화할 수 있다.
그러나 본 발명은 이에 특별히 한정될 필요는 없으며, 경우에 따라 가입자가 직접 가입기관에 방문하여 사업자 인증 서버로 해당 정보를 전송하여 등록 절차를 수행할 수도 있음에 유의한다
여기서, 발신기측 암호 및 수신기측 암호는 사용자에 의해 지정된 암호(예컨대, 비밀번호)를 의미한다. 즉, 비밀 통신을 위해 사용자에 의해 입력되어 지정되는 암호로, 사용자로부터 비밀통신을 위한 암호가 입력되면, 발신기 및 수신기는 이를 바로 사업자 인증 서버로 전송하여 등록하는 것이 아니라, 발신기측 암호를 기반으로 발신기는 발신측 암호화값을 생성하여 사업자 인증 서버로 전송함으로써 등록을 수행할 수 있으며, 수신기측 암호를 기반으로 수신기는 수신측 암호화값을 생성하여 사업자 인증 서버로 전송함으로써 등록을 수행하게 된다.
보다 구체적으로 설명하면, 먼저, 발신기는 사업자 인증 서버에 등록하기 위해, 사용자에 의해 입력되어 지정된 발신기측 암호를 기반으로 발신측 제1 암호화값과 발신측 제2 암호화값을 산출한 후, 이를 사업자 인증 서버로 전송하여 등록을 수행하게 된다. 여기서, 발신측 제1 암호화값(ωA)은 수학식 ωA=h'(S,A,πA)에 따라 산출되며, 발신측 제2 암호화값(νA)은 수학식 νA=h(S,A,πA)-1P에 따라 산출될 수 있다. 다시 말해, 상기 발신측 제1 암호화값(ωA) 및 발신측 제2 암호화값(νA)은 전술한 바와 같이 발신기측 암호(πA)를 이용하여 해쉬 함수에 따라 산출되는 정보로, 발신측 제1 암호화값(ωA)는 발신기 식별자(A)와 사업자 인증 서버 식별자(S), 발신기측 암호(πA)를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 발신측 제2 암호화값(νA)는 발신측 제1 암호화값(ωA)와 타원곡선 상의 임의의 한 점을 이용하여 산출될 수 있는 값을 의미한다.
이러한 과정을 거쳐 발신기는 발신측 제1 암호화값과 발신측 제2 암호화값을 산출하고, 이를 사업자 인증 서버로 전송하여 등록한다. 여기서, 발신측 제2 암호화값(νA)은 νA=h'(S,A,πA)P로 대체하여 사용할 수 있음에 유의한다. 이 경우 후술될 도 변경되어야 함에 유의한다.
수신기 또한 사업자 인증 서버에 등록하기 위해, 사용자에 의해 입력되어 지정된 수신기측 암호를 기반으로 수신측 제1 암호화값(ωB)과 수신측 제2 암호화값(νB)을 산출한 후, 이를 사업자 인증 서버로 전송하여 등록을 수행하게 된다. 여기서, 수신측 제1 암호화값(ωB)은 ωB=h'(S,B,πB)와에 따라 산출되며, 수신측 제2 암호화값(νB)은 νB=h(S,B,πB)-1P에 따라 산출될 수 있다. 다시 말해, 상기 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)은 전술한 바와 같이 수신기측 암호(πB)을 이용하여 해쉬 함수에 따라 산출되는 정보로, 수신측 제1 암호화값(ωB)은 수신기 식별자(B), 사업자 인증 서버 식별자(S), 수신기측 암호(πB)를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 수신측 제2 암호화값(νB)는 수신측 제1 암호화값(ωB)과 타원곡선 상의 임의의 한 점을 이용하여 산출될 수 있는 값을 의미한다.
이러한 과정을 거쳐 수신기는 수신측 제1 암호화값(ωB)과 수신측 제2 암호화값(νB)을 산출하고, 이를 사업자 인증 서버로 전송하여 등록한다. 여기서 수신측 제2 암호화값(νB)은 νB=h'(S,B,πB)P로 대체하여 사용할 수 있으며, 이 경우 후술될 도 변경되어야 함에 유의한다.
아울러, 발신기 및 수신기가 사업자 인증 서버로 전송하는 발신측 제1 암호화값(ωA), 발신측 제2 암호화값(νA), 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)은 공개키 암호화 기법을 사용하여 암호를 전송하여 수행될 수 있으며, 사업자 인증 서버는 상기 발신기 및 수신기로부터 수신된 정보, 즉 발신측 제1 암호화값(ωA), 발신측 제2 암호화값(νA), 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)을 자신의 공개키를 이용하여 복호화할 수 있다.
그러나 본 발명은 이에 특별히 한정될 필요는 없으며, 경우에 따라 가입자가 직접 가입기관에 방문하여 사업자 인증 서버로 해당 정보를 전송하여 등록 절차를 수행할 수도 있음에 유의한다
삭제
삭제
삭제
요청 단계(S200)는 발신기가 사업자 인증 서버로 비밀 통신을 요청하는 단계이다. 요청 단계(S200)는 발신기에 발신기측 암호가 입력된 경우에 수행된다. 이때, 발신기의 키음이 묵음 상태를 유지하는 것이 바람직하다.
인증 단계(S300)는 발신기와 사업자 인증 서버 사이 및 수신기와 사업자 인증 서버 사이에 상호 인증을 수행하는 단계이다. 인증 단계는 수신기에 수신기측 암호가 입력된 경우에 수행되며, 이때에도 수신기의 키음이 묵음 상태를 유지하는 것이 바람직하다.
첨부된 도면 도3을 참조로 인증 단계(S300)를 상세히 설명하면, 인증 단계(S300)는 수신기 인증 단계에서, 사업자 인증 서버가 수신기를 인증한다(S310).
수신기 인증 단계에서, 먼저, 사업자 인증 서버가 발신기로부터 수학식 XA=aP를 계산하여 생성된, 즉 임의의 발신기 랜덤값(a) 및 타원 곡선 상의 임의의 한점을 이용하여 생성된 발신측 랜덤 암호화값(XA)과 발신기 식별자(A) 및 수신기 식별자(B)를 수신한다.
이후, 사업자 인증 서버가 발신기 및 수신기의 암호 등록 단계에서 발신기 암호 및 수신기 암호를 이용하여 생성되어 등록된 발신측 암호화값 및 수신측 암호화값을 검색한다. 즉, 발신측 제1 암호화값(ωA), 발신측 제2 암호화값(νA), 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)을 검색하고, 임의의 서버 제1 랜덤값(t)와 임의의 서버 제2 랜덤값(s)를 선택한다.
이후, 사업자 인증 서버는 수신측 제1 암호화값(ωB), 수신측 제2 암호화값(νB)과 임의의 서버 제1 랜덤값(t)을 이용하여 기 정의된 수학식에 따라 수신기간 인증자(XSB)를 산출하게 된다.
다시 말해 사업자 인증 서버가 비트 배타적 논리합을 라 할 때, 수학식 XSB = t(νB)ωB=th(S,B,πB)-1PωB를 계산한다. 그리고, 사업자 인증 서버는 계산된 발신기 식별자(A), 발신측 랜덤 암호화값(XA) 및 상기 계산된 수신기간 인증자(XSB)를 수신자에게 전송하고, 발신기간 인증자(XSA)를 계산한다. 즉, 사업자 인증 서버는 발신측 제1 암호화값(ωA), 발신측 제2 암호화값(νA) 및 임의의 서버 제2 랜덤값(s)을 이용하여, 기 정의된 수학식에 따라, 즉, 수학식 XSA = s(νA)ωA=sh(S,A,πA)-1PωA와 KAS=s(XA)=asP를 계산하여 발신기간 인증자(XSA)를 계산할 수 있다.
이후, 사업자 인증 서버는 수신기로부터 수신측 랜덤 암호화값(XB), 수신기간 해쉬 값(VBS), 수신기와 발신기간 해쉬 값(VBA)을 수신한다.
여기서, 수신측 랜덤 암호화값(XB)은 수신기에 의해 생성되는 것으로, 임의의 수신기 랜덤값(b) 및 상기 타원 곡선 상의 임의의 한 점을 이용하여 산출된 값, 즉 수학식 XB=bP에 따라 산출되는 값을 의미한다.
상기 수신기간 해쉬 값(VBS)은 상기 수신기에 의해 수신기 식별자(B), 사업자 인증 서버 식별자(S), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 수신기간 인증자(XSB), 수신기간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값, 즉, 수학식 VBS=h(B,S,XA,XB,XSB,)에 따라 산출되는 값을 의미한다. 여기서, 수신기간 세션키()는 상기 수신측 제1 암호화값(ωB), 임의의 수신기 랜덤값(b) 그리고 상기 수신기간 인증자(XSB)를 이용하여 산출된 값, 즉 수학식 =bh(S,B,πB)(XSBπB)에 따라 산출된 값을 의미한다.
그리고, 상기 수신기와 발신기간 해쉬 값(VBA)은 수신기에 의해 수신기 식별자(B), 발신기 식별자(A), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 발신기와 수신기간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값, 즉 수학식 VBA=h(B,A,XA,XB,)에 따라 산출된 값을 의미한다. 여기서, 상기 발신기와 수신기간 세션키()는 상기 임의의 수신기 랜덤값(b)와 상기 발신측 랜덤 암호화값(XA)을 이용하여 산출된 값, 즉, =b(XA)=abP에 따라 산출될 수 있는 값을 의미한다. 한편, 전술된 KBS는 전술된 νB가 h'(S,B,πB)P인 경우에, KBS=bh(S,B,πB)-1(XSB ωB)=btP로 대체되어야 함에 유의한다.
상기 수신기로부터 수신측 랜덤 암호화값(XB), 수신기간 해쉬 값(VBS), 수신기와 발신기간 해쉬 값(VBA)을 수신한 사업자 인증 서버는 먼저, 상기 수신기로부터 수신된 상기 수신측 랜덤 암호화값(XB)와 임의의 서버 제1 랜덤값(t)을 이용하여 상기 수신기간 세션 키()를 산출, 즉 수학식 =t(XB)=btP를 계산한다.
그리고, 사업자 인증 서버가 상기 수신기로부터 수신된 상기 수신기간 해쉬 값(VBS)을 상기 수신기 식별자(B), 상기 사업자 인증 서버 식별자(S), 상기 발신측 랜덤 암호화값(XA), 상기 수신측 랜덤 암호화값(XB), 상기 수신기간 인증자(XSB), 상기 수신기간 세션키()를 충돌이 없는 일방향 해쉬한 값과 동일한 지 비교하여 상기 수신기를 인증하게 된다. 즉, 수학식 VBS h(B,S,XA,XB,XSB,)를 검사하여 두 값이 같은 경우 수신기 인증에 성공하게 된다.
그리고, 사업자 인증 서버는 수신기 인증에 성공함에 따라, 산출된 발신기간 인증자(XSa), 수신기와 발신기간 해쉬 값(VBA) 및 수신측 랜덤 암호화값(XB)를 발신기로 전송한다(S311).
이후, 사업자 인증 서버가 발신기 및 수신기의 암호 등록 단계에서 발신기 암호 및 수신기 암호를 이용하여 생성되어 등록된 발신측 암호화값 및 수신측 암호화값을 검색한다. 즉, 발신측 제1 암호화값(ωA), 발신측 제2 암호화값(νA), 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)을 검색하고, 임의의 서버 제1 랜덤값(t)와 임의의 서버 제2 랜덤값(s)를 선택한다.
이후, 사업자 인증 서버는 수신측 제1 암호화값(ωB), 수신측 제2 암호화값(νB)과 임의의 서버 제1 랜덤값(t)을 이용하여 기 정의된 수학식에 따라 수신기간 인증자(XSB)를 산출하게 된다.
다시 말해 사업자 인증 서버가 비트 배타적 논리합을 라 할 때, 수학식 XSB = t(νB)ωB=th(S,B,πB)-1PωB를 계산한다. 그리고, 사업자 인증 서버는 계산된 발신기 식별자(A), 발신측 랜덤 암호화값(XA) 및 상기 계산된 수신기간 인증자(XSB)를 수신자에게 전송하고, 발신기간 인증자(XSA)를 계산한다. 즉, 사업자 인증 서버는 발신측 제1 암호화값(ωA), 발신측 제2 암호화값(νA) 및 임의의 서버 제2 랜덤값(s)을 이용하여, 기 정의된 수학식에 따라, 즉, 수학식 XSA = s(νA)ωA=sh(S,A,πA)-1PωA와 KAS=s(XA)=asP를 계산하여 발신기간 인증자(XSA)를 계산할 수 있다.
이후, 사업자 인증 서버는 수신기로부터 수신측 랜덤 암호화값(XB), 수신기간 해쉬 값(VBS), 수신기와 발신기간 해쉬 값(VBA)을 수신한다.
여기서, 수신측 랜덤 암호화값(XB)은 수신기에 의해 생성되는 것으로, 임의의 수신기 랜덤값(b) 및 상기 타원 곡선 상의 임의의 한 점을 이용하여 산출된 값, 즉 수학식 XB=bP에 따라 산출되는 값을 의미한다.
상기 수신기간 해쉬 값(VBS)은 상기 수신기에 의해 수신기 식별자(B), 사업자 인증 서버 식별자(S), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 수신기간 인증자(XSB), 수신기간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값, 즉, 수학식 VBS=h(B,S,XA,XB,XSB,)에 따라 산출되는 값을 의미한다. 여기서, 수신기간 세션키()는 상기 수신측 제1 암호화값(ωB), 임의의 수신기 랜덤값(b) 그리고 상기 수신기간 인증자(XSB)를 이용하여 산출된 값, 즉 수학식 =bh(S,B,πB)(XSBπB)에 따라 산출된 값을 의미한다.
그리고, 상기 수신기와 발신기간 해쉬 값(VBA)은 수신기에 의해 수신기 식별자(B), 발신기 식별자(A), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 발신기와 수신기간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값, 즉 수학식 VBA=h(B,A,XA,XB,)에 따라 산출된 값을 의미한다. 여기서, 상기 발신기와 수신기간 세션키()는 상기 임의의 수신기 랜덤값(b)와 상기 발신측 랜덤 암호화값(XA)을 이용하여 산출된 값, 즉, =b(XA)=abP에 따라 산출될 수 있는 값을 의미한다. 한편, 전술된 KBS는 전술된 νB가 h'(S,B,πB)P인 경우에, KBS=bh(S,B,πB)-1(XSB ωB)=btP로 대체되어야 함에 유의한다.
상기 수신기로부터 수신측 랜덤 암호화값(XB), 수신기간 해쉬 값(VBS), 수신기와 발신기간 해쉬 값(VBA)을 수신한 사업자 인증 서버는 먼저, 상기 수신기로부터 수신된 상기 수신측 랜덤 암호화값(XB)와 임의의 서버 제1 랜덤값(t)을 이용하여 상기 수신기간 세션 키()를 산출, 즉 수학식 =t(XB)=btP를 계산한다.
그리고, 사업자 인증 서버가 상기 수신기로부터 수신된 상기 수신기간 해쉬 값(VBS)을 상기 수신기 식별자(B), 상기 사업자 인증 서버 식별자(S), 상기 발신측 랜덤 암호화값(XA), 상기 수신측 랜덤 암호화값(XB), 상기 수신기간 인증자(XSB), 상기 수신기간 세션키()를 충돌이 없는 일방향 해쉬한 값과 동일한 지 비교하여 상기 수신기를 인증하게 된다. 즉, 수학식 VBS h(B,S,XA,XB,XSB,)를 검사하여 두 값이 같은 경우 수신기 인증에 성공하게 된다.
그리고, 사업자 인증 서버는 수신기 인증에 성공함에 따라, 산출된 발신기간 인증자(XSa), 수신기와 발신기간 해쉬 값(VBA) 및 수신측 랜덤 암호화값(XB)를 발신기로 전송한다(S311).
삭제
삭제
발신기 인증 단계는 사업자 인증 서버가 발신기를 인증하는 단계이다(S320).
먼저, 사업자 인증 서버가 상기 발신기로부터 발신기간 해쉬 값(), 발신기와 수신기간 해쉬 값()을 수신한다. 여기서, 발신기간 해쉬 값()은 발신기에 의해 발신기 식별자(A), 사업자 인증 서버 식별자(S), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 발신기간 인증자(XSa), 발신기간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값, 즉, =h(A,S,XA,XB,XSa,)에 따라 산출된 값을 의미한다. 여기서, 발신기간 세션키()는 =ah(S,A,πA)(XSAωA)=asP를 이용하여 산출될 수 있는 값을 의미한다.
또한, 발신기와 수신기간 해쉬 값()은 발신기 식별자(A), 수신기 식별자(B), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 발신기와 수신기간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값, 즉=h(A,B,XA,XB,)에 따라 산출된 값을 의미하며, 상기 발신기와 수신기간 세션키()는 상기 임의의 발신기 랜덤값(a)와 상기 수신측 랜덤 암호화값(XB)를 이용하여 산출, 즉 =a(XB)=abP에 따라 산출되며, 수신기가 산출하는 발신기와 수신기간 세션키와 동일하게 산출될 수 있다.
즉, 발신기는 사업자 인증 서버로부터, 산출된 발신기간 인증자(), 수신기와 발신기간 해쉬 값() 및 수신측 랜덤 암호화값(XB)가 수신되면, 먼저, 상기 수신된 수신기와 발신기간 해쉬 값()이 수신기(B), 발신기(A), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 발신기와 수신기간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값과 비교하게 된다. 즉, h(B,A,XA,XB,)를 검사하여 두 값이 같은 경우, 발신기는 발신기와 수신기간 해쉬 값() 및 발신기간 해쉬 값()를 계산하여 사업자 인증 서버로 전송하게 된다.
발신기간 세션키()는 전술된 νA가 h'(S,A,πA)P인 경우에, =ah(S,A,πA)-1(XSAωA)=asP로 대체되어야 함에 유의한다.
이후, 상기 사업자 인증 서버가 상기 발신기로부터 수신된 상기 발신기간 해쉬 값()을 발신기 식별자(A), 사업자 인증 서버 식별자(B), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 발신기간 인증자(), 발신기간 세션 키()를 해쉬한 값이 동일한 지 검사, 즉, h(A,S,XA,XB,,)를 검사하여 두 값이 같은 경우 발신기를 인증하고(S321), 발신기 인증에 성공하면, 상기 사업자 인증 서버가 사업자 인증 서버 식별자(S), 발신기 식별자(A), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 상기 발신기간 인증자() 및 발신기간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 사업자 인증 서버와 발신기간 해쉬 값(), 즉, 수학식 =h(S,A,XA,XB,,)를 산출하고, 상기 사업자 인증 서버가 사업자 인증 서버 식별자(S), 수신기 식별자(B), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 수신기간 제2 인증자(), 수신기간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 사업자 인증 서버와 수신기간 해쉬 값(), 즉, =h(S,B,XA,XB,,)를 산출하게 된다. 이후, 사업자 인증 서버가 발신기로 사업자 인증 서버와 발신기간 해쉬 값()를 전송(S331)하고 수신기로 사업자 인증 서버와 수신기간 해쉬 값() 및 발신기와 수신기간 해쉬 값()를 전송한다.
서버 인증 단계는 수신기와 발신기가 사업자 인증 서버를 인증하고 수신기와 발신기가 동일한 암호화키를 생성하여 비밀 통신이 수행되도록 제어하는 단계이다(S330).
서버 인증 단계는 발신기가 사업자 인증 서버와 발신기간 해쉬 값()을 기초로 사업자 인증 서버를 인증한다. 즉, h(S,A,XA,XB,,)를 검사하여 두 값이 같은 지를 판단하여 사업자 인증 서버를 인증(S331)한다. 인증에 성공하면, 암호화키(K)=h(A,B,)를 생성한다.
또한 수신기가 사업자 인증 서버와 수신기간 해쉬 값()을 기초로 사업자 인증 서버를 인증한다. 즉, h(S,B,XA,XB,,)를 검사하여 두 값이 같은 지를 판단하여 사업자 인증 서버를 인증하고(S332), 인증에 성공하면, 암호하키(K)=h(A,B,)를 생성한다. 여기서, 생성된 암호화키는 각 인증 과정이 정상적으로 이뤄지게 되면 동일하게 생성될 수 있으며, 발신기 및 수신기는 동일한 암호화키를 이용하여 비밀 통신 단계(S400)를 통해 비밀 통신을 수행할 수 있게 된다.
먼저, 사업자 인증 서버가 상기 발신기로부터 발신기간 해쉬 값(), 발신기와 수신기간 해쉬 값()을 수신한다. 여기서, 발신기간 해쉬 값()은 발신기에 의해 발신기 식별자(A), 사업자 인증 서버 식별자(S), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 발신기간 인증자(XSa), 발신기간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값, 즉, =h(A,S,XA,XB,XSa,)에 따라 산출된 값을 의미한다. 여기서, 발신기간 세션키()는 =ah(S,A,πA)(XSAωA)=asP를 이용하여 산출될 수 있는 값을 의미한다.
또한, 발신기와 수신기간 해쉬 값()은 발신기 식별자(A), 수신기 식별자(B), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 발신기와 수신기간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값, 즉=h(A,B,XA,XB,)에 따라 산출된 값을 의미하며, 상기 발신기와 수신기간 세션키()는 상기 임의의 발신기 랜덤값(a)와 상기 수신측 랜덤 암호화값(XB)를 이용하여 산출, 즉 =a(XB)=abP에 따라 산출되며, 수신기가 산출하는 발신기와 수신기간 세션키와 동일하게 산출될 수 있다.
즉, 발신기는 사업자 인증 서버로부터, 산출된 발신기간 인증자(), 수신기와 발신기간 해쉬 값() 및 수신측 랜덤 암호화값(XB)가 수신되면, 먼저, 상기 수신된 수신기와 발신기간 해쉬 값()이 수신기(B), 발신기(A), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 발신기와 수신기간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값과 비교하게 된다. 즉, h(B,A,XA,XB,)를 검사하여 두 값이 같은 경우, 발신기는 발신기와 수신기간 해쉬 값() 및 발신기간 해쉬 값()를 계산하여 사업자 인증 서버로 전송하게 된다.
발신기간 세션키()는 전술된 νA가 h'(S,A,πA)P인 경우에, =ah(S,A,πA)-1(XSAωA)=asP로 대체되어야 함에 유의한다.
이후, 상기 사업자 인증 서버가 상기 발신기로부터 수신된 상기 발신기간 해쉬 값()을 발신기 식별자(A), 사업자 인증 서버 식별자(B), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 발신기간 인증자(), 발신기간 세션 키()를 해쉬한 값이 동일한 지 검사, 즉, h(A,S,XA,XB,,)를 검사하여 두 값이 같은 경우 발신기를 인증하고(S321), 발신기 인증에 성공하면, 상기 사업자 인증 서버가 사업자 인증 서버 식별자(S), 발신기 식별자(A), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 상기 발신기간 인증자() 및 발신기간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 사업자 인증 서버와 발신기간 해쉬 값(), 즉, 수학식 =h(S,A,XA,XB,,)를 산출하고, 상기 사업자 인증 서버가 사업자 인증 서버 식별자(S), 수신기 식별자(B), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 수신기간 제2 인증자(), 수신기간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 사업자 인증 서버와 수신기간 해쉬 값(), 즉, =h(S,B,XA,XB,,)를 산출하게 된다. 이후, 사업자 인증 서버가 발신기로 사업자 인증 서버와 발신기간 해쉬 값()를 전송(S331)하고 수신기로 사업자 인증 서버와 수신기간 해쉬 값() 및 발신기와 수신기간 해쉬 값()를 전송한다.
서버 인증 단계는 수신기와 발신기가 사업자 인증 서버를 인증하고 수신기와 발신기가 동일한 암호화키를 생성하여 비밀 통신이 수행되도록 제어하는 단계이다(S330).
서버 인증 단계는 발신기가 사업자 인증 서버와 발신기간 해쉬 값()을 기초로 사업자 인증 서버를 인증한다. 즉, h(S,A,XA,XB,,)를 검사하여 두 값이 같은 지를 판단하여 사업자 인증 서버를 인증(S331)한다. 인증에 성공하면, 암호화키(K)=h(A,B,)를 생성한다.
또한 수신기가 사업자 인증 서버와 수신기간 해쉬 값()을 기초로 사업자 인증 서버를 인증한다. 즉, h(S,B,XA,XB,,)를 검사하여 두 값이 같은 지를 판단하여 사업자 인증 서버를 인증하고(S332), 인증에 성공하면, 암호하키(K)=h(A,B,)를 생성한다. 여기서, 생성된 암호화키는 각 인증 과정이 정상적으로 이뤄지게 되면 동일하게 생성될 수 있으며, 발신기 및 수신기는 동일한 암호화키를 이용하여 비밀 통신 단계(S400)를 통해 비밀 통신을 수행할 수 있게 된다.
삭제
삭제
삭제
삭제
삭제
삭제
이하에서 본 실시예에 따른 3자간 비밀 통신 방법의 적용예를 설명한다.
제1단계, 발신기와 수신기가 사업자 인증 서버에 자신의 식별자와 암호를 등록한다.
제2단계, 발신자가 수신기의 전화번호를 누르고, '비밀 통신'버튼을 누른다.
제3단계, 발신자가 발신기측 암호를 입력한다.
제4단계, 사업자 인증 서버가 수신기에 '비밀 통신'호를 연결한다.
제5단계, 수신자가 '비밀 통신'버튼을 누른다.
제6단계, 수신자가 수신기측 암호를 입력한다.
제7단계, 발신기와 사업자 인증 서버가 발신기측 암호를 기반으로 상호 인증을 수행한다.
제8단계, 수신기와 사업자 인증 서버가 수신기측 암호를 기반으로 상호 인증을 수행한다.
제9단계, 발신기와 수신기가 동일한 암호화키를 생성한다.
제10단계, 발신기와 수신기가 통신 내용에 대해 생성된 암호화키를 적용하여 암호화 및 복호화를 하여 비밀 통신을 수행한다.
제4단계, 사업자 인증 서버가 수신기에 '비밀 통신'호를 연결한다.
제5단계, 수신자가 '비밀 통신'버튼을 누른다.
제6단계, 수신자가 수신기측 암호를 입력한다.
제7단계, 발신기와 사업자 인증 서버가 발신기측 암호를 기반으로 상호 인증을 수행한다.
제8단계, 수신기와 사업자 인증 서버가 수신기측 암호를 기반으로 상호 인증을 수행한다.
제9단계, 발신기와 수신기가 동일한 암호화키를 생성한다.
제10단계, 발신기와 수신기가 통신 내용에 대해 생성된 암호화키를 적용하여 암호화 및 복호화를 하여 비밀 통신을 수행한다.
삭제
삭제
삭제
삭제
삭제
삭제
삭제
추가적으로, 전술된 3자간 비밀 통신 방법의 데이터 흐름은 첨부된 도면 도5 또는 도6의 값으로 치환되어 사용될 수도 있음에 유의한다. 도5에 도시된 데이터 흐름은, 3자간 비밀 통신에 반드시 필요한 값만을 처리하도록 구성되어 시스템 부하를 줄일 수 있는 효과가 있다. 또한 도6에 도시된 데이터 흐름은, 3자간 비밀 통신에서 처리되는 데이터들을 사업자 인증 서버에서 대부분 수용함으로써, 발신기와 수신기의 데이타 처리 부하를 줄일 수 있는 효과가 있다. 한편, 본 발명은 이와 같은 변형예들 외에도 다양한 데이터 흐름을 가질 수 있음에 유의한다.
(발신기의 3자간 암호화키 생성 방법)
이하에서 첨부된 도면 도7을 참조로, 본 실시예에 따른 발신기의 3자간 암호화키 생성 방법을 설명한다.
도7은 본 발명의 실시예에 따른 발신기의 3자간 암호화키 생성 방법의 흐름도이다.
도시된 바와 같이, 발신기의 3자간 암호화키 생성 방법은 먼저, 발신기가 사업자 인증 서버로 수신기 인증을 요청한다(S500). 사업자 인증 서버는 VBS h(B,S,XA,XB,XSB,KBS)를 검사하여 두 값이 같은 경우 수신기에 성공한다.
이후, 발신기가 사업자 인증 서버로 자기 인증을 요청한다(S501). 사업자 인증 서버는 VAS h(A,S,XA,XB,XSA,KAS)를 검사하여 두 값이 같은 경우 발신기 인증에 성공한다.
이후, 발신기가 사업자 인증 서버를 인증하고 암호화키를 생성한다(S502). 발신기는 VSA h(S,A,XA,XB,XSA,KAS)를 검사하여 두 값이 같은 경우 사업자 인증 서버를 인증하게 된다.
이후, 발신기가 사업자 인증 서버로 자기 인증을 요청한다(S501). 사업자 인증 서버는 VAS h(A,S,XA,XB,XSA,KAS)를 검사하여 두 값이 같은 경우 발신기 인증에 성공한다.
이후, 발신기가 사업자 인증 서버를 인증하고 암호화키를 생성한다(S502). 발신기는 VSA h(S,A,XA,XB,XSA,KAS)를 검사하여 두 값이 같은 경우 사업자 인증 서버를 인증하게 된다.
삭제
삭제
한편 전술된 단계는 발신기에서 실행하기 위한 프로그램의 형태로 발신기의 저장 매체에 저장된다.
(사업자 인증 서버의 비밀 통신 인증 방법)
이하에서 첨부된 도면 도8을 참조로, 본 실시예에 따른 사업자 인증 서버의 비밀 통신 인증 방법을 설명한다.
도8은 본 발명의 실시예에 따른 사업자 인증 서버의 비밀 통신 인증 방법의 흐름도이다.
도8에 도시된 바와 같이, 본 실시예에 따른 사업자 인증 서버의 비밀 통신 인증 방법은 먼저, 사업자 인증 서버가 수신기를 인증한다(S510). 사업자 인증 서버는 VBS h(B,S,XA,XB,XSB,KBS)를 검사하여 두 값이 같은 경우 수신기를 인증하게 된다.
이후, 사업자 인증 서버가 수신기와 발신기로 사업자 인증 서버의 인증을 요청한다(S512). 발신기는 VSA h(S,A,XA,XB,XSA,KAS)를 검사하여 두 값이 같은 경우 사업자 인증 서버를 인증하게 된다. 또한 수신기가 VSB h(S,B,XA,XB,XSB,KBS)를 검사하여 두 값이 같은 경우 사업자 인증 서버를 인증하게 된다.
한편 전술된 단계는 사업자 인증 서버에서 실행하기 위한 프로그램의 형태로 사업자 인증 서버의 저장 매체에 저장된다.
(수신기의 3자간 암호화키 생성 방법)
이하에서 첨부된 도면 도9를 참조로 본 발명의 실시예에 따른 수신기의 3자간 암호화키 생성 방법을 설명한다.
도9는 본 발명의 실시예에 따른 수신기의 3자간 암호화키 생성 방법의 흐름도이다.
도9에 도시된 바와 같이, 본 실시예에 따른 수신기의 3자간 암호화키 생성 방법은, 먼저, 수신기가 사업자 인증 서버로 자기 인증을 요청한다(S520). 사업자 인증 서버는 VBS h(B,S,XA,XB,XSB,KBS)를 검사하여 두 값이 같은 경우 수신기를 인증하게 된다.
이후, 수신기가 사업자 인증 서버로 발신기의 인증을 요청한다(S521). 사업자 인증 서버는 VAS h(A,S,XA,XB,XSA,KAS)를 검사하여 두 값이 같은 경우 발신기를 인증하게 된다.
이후, 수신기가 사업자 인증 서버를 인증하고 암호화키를 생성한다(S522). 수신기는 VSB h(S,B,XA,XB,XSB,KBS)를 검사하여 두 값이 같은 경우 사업자 인증 서버를 인증하게 된다.
한편 전술된 단계는 수신기에서 실행하기 위한 프로그램의 형태로 수신기의 저장 매체에 저장된다.
(4자간 비밀 통신 시스템)
이하에서 첨부된 도면 도10을 참조로 본 발명의 실시예에 따른 4자간 비밀 통신 시스템을 설명한다.
도10은 본 발명의 실시예에 따른 4자간 비밀 통신 시스템의 블럭도이다.
도10에 도시된 바와 같이, 본 실시예에 따른 4자간 비밀 통신 시스템(200)은 통신망(250)을 통해 상호 연결된 발신기측 사업자 인증 서버(210), 수신기측 사업자 인증 서버(220), 발신기(230) 및 수신기(240)를 포함한다. 즉 본 실시예는 발신기와 수신기가 서로 다른 통신 업체에 가입된 상태에서 비밀 통신을 하기 위한 시 스템에 관한 것이다.
발신기(230)는 비밀 통신을 위한 발신기측 암호가 할당되어 있고, 발신기측 암호, 정수 및 변수를 포함하는 함수를 연산할 수 있다. 발신기측 암호는 사용 편의성을 고려하여 발신기(230)에 구비된 USIM카드에 저장될 수 있다.
수신기(240)는 비밀 통신을 위한 수신기측 암호가 할당되어 있고, 수신기측 암호, 정수 및 변수를 포함하는 함수를 연산할 수 있다. 수신기측 암호는 사용 편의성을 고려하여 수신기(240)에 구비된 USIM카드에 저장될 수 있다.
발신기측 사업자 인증 서버(210)는 발신기측 암호가 저장되고, 발신기측 암호, 정수 및 변수를 포함하는 함수를 연산할 수 있다.
수신기측 사업자 인증 서버(220)는 수신기측 암호가 저장되고, 수신기측 암호, 정수 및 변수를 포함하는 함수를 연산할 수 있다.
이와 같은 구성을 갖는 4자간 비밀 통신 시스템(100)은 함수 연산 결과의 비교를 기반으로, 발신기(230)와 발신기측 사업자 인증 서버(210) 사이, 수신기(240)와 수신기측 사업자 인증 서버 사이(220) 및 발신기측 사업자 인증 서버(210)와 수신기측 사업자 인증 서버(220) 사이에 상호 인증을 수행한다. 인증이 완료되면, 발신기(230)와 수신기(240)가 함수에 의해 생성된 암호화키를 기반으로 비밀 통신을 수행하게 된다. 여기서, 발신기(230), 수신기(240), 발신기측 사업자 인증 서버(210) 및 수신기측 사업자 인증 서버(210)에서 연산되는 함수는 충돌이 없는 일방향 해쉬 함수가 사용될 수 있다.
(4자간 비밀 통신 방법)
이하에서 첨부된 도면 도11 내지 도15를 참조로 본 발명의 실시예에 따른 4자간 비밀 통신 방법을 설명한다.
도11은 본 발명의 실시예에 따른 4자간 비밀 통신 방법의 흐름도이고, 도12는 도11에서 인증 단계의 세부 흐름도이고, 도13은 도11에서 데이터의 흐름을 도시한 것이고, 도14는 도13의 제1변형예를 도시한 것이고, 도15는 도13의 제2변형예를 도시한 것이다.
본 실시예의 설명에 앞서, 본 실시예에 사용되는 다양한 파라미터를 먼저 정의한다.
A는 발신기의 식별자, B는 수신기의 식별자, S는 발신측 사업자 인증 서버의 식별자, T는 수신측 사업자 인증 서버의 식별자, πA는 발신기측 암호, πB는 수신기측 암호, P는 타원곡선 상의 한점, h, h'은 충돌이 없는 일방향 해쉬 함수, E는 FP상에서 정의된 타원곡선으로 E(Zp)=(x,y)∈(Zp,Zp)|y2=x3+ax+b, 단 4a3+27b2=0(mod p)∪○ 또는 상에서 정의된 타원곡선 E( )=(x,y)∈ |y2+xy=x3+ax2+b, 단 a,b∈ (b≠0)∪○, a, b, s, t는 점 P의 위수 n보다 작은 랜덤 정수, 는 비트 배타적 논리합, K는 암호화키, 는 두 값이 같은지를 비교하는 연산자인 것으로 가정한다. 한편, 타원곡선 관련 연산들은 모두 Fp상에서 수행됨에 유의한다.
도시된 바와 같이, 본 실시예는 등록 단계(S500), 요청 단계(S600), 인증 단계(S700) 및 통신 단계(S800)를 포함한다.
등록 단계(S500)는 발신기와 수신기가 발신기측 사업자 인증 서버와 수신기측 사업자 인증 서버로 발신기측 암호 및 수신기측 암호를 각각 등록하는 단계이다.
여기서, 발신기측 암호 및 수신기측 암호는 사용자에 의해 지정된 암호(예컨대, 비밀번호)를 의미한다. 즉, 비밀 통신을 위해 사용자에 의해 입력되어 지정되는 암호로, 사용자로부터 비밀통신을 위한 암호가 입력되면, 발신기 및 수신기는 이를 바로 발신기측 사업자 인증 서버 및 수신기측 사업자 인증 서버로 전송하여 등록하는 것이 아니라, 발신기측 암호를 기반으로 발신기는 발신측 암호화값을 생성하여 발신기측 사업자 인증 서버로 전송함으로써 등록을 수행할 수 있으며, 수신기측 암호를 기반으로 수신기는 수신측 암호화값을 생성하여 수신기측 사업자 인증 서버로 전송함으로써 등록을 수행하게 된다.
보다 구체적으로 설명하면, 먼저, 발신기는 발신기측 사업자 인증 서버에 등록하기 위해, 사용자에 의해 입력되어 지정된 발신기측 암호를 기반으로 발신측 제1 암호화값과 발신측 제2 암호화값을 산출한 후, 이를 발신기측 사업자 인증 서버로 전송하여 등록을 수행하게 된다. 여기서, 발신측 제1 암호화값(ωA)은 수학식 ωA=h'(S,A,πA)에 따라 산출되며, 발신측 제2 암호화값(νA)은 수학식 νA=h(S,A,πA)-1P에 따라 산출될 수 있다. 다시 말해, 상기 발신측 제1 암호화값 및 발신측 제2 암호화값은 전술한 바와 같이 발신기측 암호(πA)를 이용하여 해쉬 함수에 따라 산출되는 정보로, 발신측 제1 암호화값(ωA)은 발신기 식별자(A)와 발신측 사업자 인증 서버 식별자(S), 발신기측 암호(πA)를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 발신측 제2 암호화값(νA)는 발신측 제1 암호화값(ωA)와 타원곡선 상의 임의의 한 점을 이용하여 산출될 수 있는 값을 의미한다.
이러한 과정을 거쳐 발신기는 발신측 제1 암호화값과 발신측 제2 암호화값을 산출하고, 이를 발신기측 사업자 인증 서버로 전송하여 등록할 수 있다. 여기서, νA는 νA=h'(S,A,πA)P로 대체하여 사용할 수 있고, νB는 νB=h'(T,B,πB)P로 대체하여 사용할 수 있음에 유의한다. 이 경우 후술될 KAS와 KBT도 변경되어야 함에 유의한다.
수신기 또한 수신측 사업자 인증 서버에 등록하기 위해, 사용자에 의해 입력되어 지정된 수신기측 암호를 기반으로 수신측 제1 암호화값과 수신측 제2 암호화값을 산출한 후, 이를 수신측 사업자 인증 서버로 전송하여 등록을 수행하게 된다. 여기서, 수신측 제1 암호화값(ωB )은 ωB=h'(T,B,πB)와에 따라 산출되며, 수신측 제2 암호화값(νB)은 νB=h(T,B,πB)-1P에 따라 산출될 수 있다. 다시 말해, 상기 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)은 전술한 바와 같이 수신기측 암호(πB)을 이용하여 해쉬 함수에 따라 산출되는 정보로, 수신측 제1 암호화값(ωB)은 수신기 식별자(B), 수신측 사업자 인증 서버 식별자(T), 수신기측 암호(πB)를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 수신측 제2 암호화값(νB)는 수신측 제1 암호화값(ωB)과 타원곡선 상의 임의의 한 점을 이용하여 산출될 수 있는 값을 의미한다.
이러한 과정을 거쳐 수신기는 수신측 제1 암호화값과 수신측 제2 암호화값을 산출하고, 이를 수신측 사업자 인증 서버로 전송하여 등록한다. 여기서 νB=는 νB=h'(T,B,πB)P로 대체하여 사용할 수 있으며, 이 경우 후술될 KBS도 변경되어야 함에 유의한다.
아울러, 발신기 및 수신기가 사업자 인증 서버로 전송하는 발신측 제1 암호화값(ωA), 발신측 제2 암호화값(νA), 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)은 공개키 암호화 기법을 사용하여 암호를 전송하여 수행될 수 있으며, 각각의 사업자 인증 서버는 상기 발신기 및 수신기로부터 수신된 정보, 즉 발신측 제1 암호화값(ωA)), 발신측 제2 암호화값(νA), 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)을 자신의 공개키를 이용하여 복호화할 수 있다.
요청 단계(S600)는 발신기가 발신기측 사업자 인증 서버로 비밀 통신을 요청하는 단계이다. 요청 단계(S600)는 발신기에 발신기측 암호가 입력된 경우에 수행되며, 이때, 발신기의 키음이 묵음 상태를 유지하는 것이 바람직하다.
여기서, 발신기측 암호 및 수신기측 암호는 사용자에 의해 지정된 암호(예컨대, 비밀번호)를 의미한다. 즉, 비밀 통신을 위해 사용자에 의해 입력되어 지정되는 암호로, 사용자로부터 비밀통신을 위한 암호가 입력되면, 발신기 및 수신기는 이를 바로 발신기측 사업자 인증 서버 및 수신기측 사업자 인증 서버로 전송하여 등록하는 것이 아니라, 발신기측 암호를 기반으로 발신기는 발신측 암호화값을 생성하여 발신기측 사업자 인증 서버로 전송함으로써 등록을 수행할 수 있으며, 수신기측 암호를 기반으로 수신기는 수신측 암호화값을 생성하여 수신기측 사업자 인증 서버로 전송함으로써 등록을 수행하게 된다.
보다 구체적으로 설명하면, 먼저, 발신기는 발신기측 사업자 인증 서버에 등록하기 위해, 사용자에 의해 입력되어 지정된 발신기측 암호를 기반으로 발신측 제1 암호화값과 발신측 제2 암호화값을 산출한 후, 이를 발신기측 사업자 인증 서버로 전송하여 등록을 수행하게 된다. 여기서, 발신측 제1 암호화값(ωA)은 수학식 ωA=h'(S,A,πA)에 따라 산출되며, 발신측 제2 암호화값(νA)은 수학식 νA=h(S,A,πA)-1P에 따라 산출될 수 있다. 다시 말해, 상기 발신측 제1 암호화값 및 발신측 제2 암호화값은 전술한 바와 같이 발신기측 암호(πA)를 이용하여 해쉬 함수에 따라 산출되는 정보로, 발신측 제1 암호화값(ωA)은 발신기 식별자(A)와 발신측 사업자 인증 서버 식별자(S), 발신기측 암호(πA)를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 발신측 제2 암호화값(νA)는 발신측 제1 암호화값(ωA)와 타원곡선 상의 임의의 한 점을 이용하여 산출될 수 있는 값을 의미한다.
이러한 과정을 거쳐 발신기는 발신측 제1 암호화값과 발신측 제2 암호화값을 산출하고, 이를 발신기측 사업자 인증 서버로 전송하여 등록할 수 있다. 여기서, νA는 νA=h'(S,A,πA)P로 대체하여 사용할 수 있고, νB는 νB=h'(T,B,πB)P로 대체하여 사용할 수 있음에 유의한다. 이 경우 후술될 KAS와 KBT도 변경되어야 함에 유의한다.
수신기 또한 수신측 사업자 인증 서버에 등록하기 위해, 사용자에 의해 입력되어 지정된 수신기측 암호를 기반으로 수신측 제1 암호화값과 수신측 제2 암호화값을 산출한 후, 이를 수신측 사업자 인증 서버로 전송하여 등록을 수행하게 된다. 여기서, 수신측 제1 암호화값(ωB )은 ωB=h'(T,B,πB)와에 따라 산출되며, 수신측 제2 암호화값(νB)은 νB=h(T,B,πB)-1P에 따라 산출될 수 있다. 다시 말해, 상기 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)은 전술한 바와 같이 수신기측 암호(πB)을 이용하여 해쉬 함수에 따라 산출되는 정보로, 수신측 제1 암호화값(ωB)은 수신기 식별자(B), 수신측 사업자 인증 서버 식별자(T), 수신기측 암호(πB)를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며, 수신측 제2 암호화값(νB)는 수신측 제1 암호화값(ωB)과 타원곡선 상의 임의의 한 점을 이용하여 산출될 수 있는 값을 의미한다.
이러한 과정을 거쳐 수신기는 수신측 제1 암호화값과 수신측 제2 암호화값을 산출하고, 이를 수신측 사업자 인증 서버로 전송하여 등록한다. 여기서 νB=는 νB=h'(T,B,πB)P로 대체하여 사용할 수 있으며, 이 경우 후술될 KBS도 변경되어야 함에 유의한다.
아울러, 발신기 및 수신기가 사업자 인증 서버로 전송하는 발신측 제1 암호화값(ωA), 발신측 제2 암호화값(νA), 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)은 공개키 암호화 기법을 사용하여 암호를 전송하여 수행될 수 있으며, 각각의 사업자 인증 서버는 상기 발신기 및 수신기로부터 수신된 정보, 즉 발신측 제1 암호화값(ωA)), 발신측 제2 암호화값(νA), 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)을 자신의 공개키를 이용하여 복호화할 수 있다.
요청 단계(S600)는 발신기가 발신기측 사업자 인증 서버로 비밀 통신을 요청하는 단계이다. 요청 단계(S600)는 발신기에 발신기측 암호가 입력된 경우에 수행되며, 이때, 발신기의 키음이 묵음 상태를 유지하는 것이 바람직하다.
삭제
삭제
삭제
인증 단계(S700)는 발신기와 발신기측 사업자 인증 서버 사이, 수신기와 수신기측 사업자 인증 서버 사이 및 발신기측 사업자 인증 서버와 수신기측 사업자 인승 서버 사이에 상호 인증을 수행하는 단계이다. 인증 단계(S700)는 수신기에 수신기측 암호가 입력된 경우에 수행된다.
첨부된 도면 12을 참조로 인증 단계(S700)를 상세히 설명하면, 수신기 인증 단계는 수신기측 사업자 인증 서버가 수신기를 인증단계이다(S710).
수신기 인증 단계에서, 먼저, 발신측 사업자 인증 서버가 발신기로부터 수학식 XA=aP에 따라 생성된, 즉, 임의의 발신기 랜덤값(a) 및 타원 곡선 상의 임의의 한 점을 이용하여 생성된 발신측 랜덤 암호화값(XA)과 발신기 식별자(A) 및 수신기 식별자(B)를 수신한다.
이후, 발신기측 사업자 인증 서버가 수신기측 사업자 인증 서버로 S, A, B, XA를 전송한다.
이를 수신한 수신측 사업자 인증 서버는 기 등록된 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)을 검색하고, 임의의 서버 제1 랜덤값(t)을 이용하여 수신측 서버 랜덤 암호화값(XT)을 산출한 후, 산출된 수신측 서버 암호화값, 발신기 식별자, 발신측 랜덤 암호화값을 상기 수신기로 전송한다.
이후, 수신측 사업자 인증 서버는 상기 수신기로부터 수신측 랜덤 암호화값(XB), 수신측 사업자 인증 서버와 수신기간 해쉬 값(), 상기 발신기와 수신기간 해쉬값()를 수신한다.
여기서, 수신측 랜덤 암호화값(XB)은 수신기에 의해 생성되는 것으로, 임의의 수신기 랜덤값(b) 및 상기 타원 곡선 상의 임의의 한 점을 이용하여 산출된 값, 즉 수학식 XB=bP에 따라 산출되는 값을 의미한다.
수신측 사업자 인증 서버와 수신기간 해쉬 값()은 발신기 식별자(B), 수신측 사업자 인증 서버 식별자(T), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 수신측 서버 랜덤 암호화값(XT), 수신기와 수신측 사업자 인증 서버간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값, 즉 수학식 =h(B,T,XA,XB,XT,)에 따라 산출된 값을 의미한다.
한편, 수신측 사업자 인증 서버와 수신기간 세션키()는 기 정의된 수학식, 즉, =bh(T,B,πB)(XTωB)=btP에 따라 산출될 수 있다.
아울러, 상기 발신기와 수신기간 해쉬값()는 =h(B,A,XA,XB,)에 따라 산출될 수 있으며, 여기서 는 발신기와 수신기간 세션키()로, 임의의 수신기 랜덤값(B) 및 발신측 랜덤 암호화값을 이용하여 산출될 수 있다.
한편, 전술된 KBT는 전술된 νB가 h'(T,B,πB)P인 경우에, KBT=bh(T,B,πB)-1(XT ωB)=btP로 대체되어야 함에 유의한다.
이후, 수신측 사업자 인증 서버는 상기 수신기로부터 수신된 수신측 사업자 인증 서버와 수신기간 해쉬 값()을 이용하여 수신기를 인증한다. 즉, 수신측 사업자 인증 서버는 상기 해쉬 값()을 Vbt=h(B,T,XA,XB,XT,KBT)에 따라 산출되는 해쉬 값과 비교하여 동일한지 여부를 판단하고, 동일할 경우 인증에 성공한 것으로 판단하게 된다.
그리고, 수신측 사업자 인증 서버는 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬 값()를 산출하고, 산출된 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬 값()과, 상기 수신기로부터 수신된 발신기와 수신기간 해쉬값(), 수신측 랜덤 암호화값(XB)을 발신측 사업자 인증 서버로 전송하게 된다.
여기서, 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬 값()는 기 정의된 수학식 즉, =h(T,S,A,B,XA,XB,)를 이용하여 산출되는 값을 의미한다.
이후, 발신기측 사업자 인증 서버가 수신기측 사업자 인증 서버로 S, A, B, XA를 전송한다.
이를 수신한 수신측 사업자 인증 서버는 기 등록된 수신측 제1 암호화값(ωB) 및 수신측 제2 암호화값(νB)을 검색하고, 임의의 서버 제1 랜덤값(t)을 이용하여 수신측 서버 랜덤 암호화값(XT)을 산출한 후, 산출된 수신측 서버 암호화값, 발신기 식별자, 발신측 랜덤 암호화값을 상기 수신기로 전송한다.
이후, 수신측 사업자 인증 서버는 상기 수신기로부터 수신측 랜덤 암호화값(XB), 수신측 사업자 인증 서버와 수신기간 해쉬 값(), 상기 발신기와 수신기간 해쉬값()를 수신한다.
여기서, 수신측 랜덤 암호화값(XB)은 수신기에 의해 생성되는 것으로, 임의의 수신기 랜덤값(b) 및 상기 타원 곡선 상의 임의의 한 점을 이용하여 산출된 값, 즉 수학식 XB=bP에 따라 산출되는 값을 의미한다.
수신측 사업자 인증 서버와 수신기간 해쉬 값()은 발신기 식별자(B), 수신측 사업자 인증 서버 식별자(T), 발신측 랜덤 암호화값(XA), 수신측 랜덤 암호화값(XB), 수신측 서버 랜덤 암호화값(XT), 수신기와 수신측 사업자 인증 서버간 세션키()를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값, 즉 수학식 =h(B,T,XA,XB,XT,)에 따라 산출된 값을 의미한다.
한편, 수신측 사업자 인증 서버와 수신기간 세션키()는 기 정의된 수학식, 즉, =bh(T,B,πB)(XTωB)=btP에 따라 산출될 수 있다.
아울러, 상기 발신기와 수신기간 해쉬값()는 =h(B,A,XA,XB,)에 따라 산출될 수 있으며, 여기서 는 발신기와 수신기간 세션키()로, 임의의 수신기 랜덤값(B) 및 발신측 랜덤 암호화값을 이용하여 산출될 수 있다.
한편, 전술된 KBT는 전술된 νB가 h'(T,B,πB)P인 경우에, KBT=bh(T,B,πB)-1(XT ωB)=btP로 대체되어야 함에 유의한다.
이후, 수신측 사업자 인증 서버는 상기 수신기로부터 수신된 수신측 사업자 인증 서버와 수신기간 해쉬 값()을 이용하여 수신기를 인증한다. 즉, 수신측 사업자 인증 서버는 상기 해쉬 값()을 Vbt=h(B,T,XA,XB,XT,KBT)에 따라 산출되는 해쉬 값과 비교하여 동일한지 여부를 판단하고, 동일할 경우 인증에 성공한 것으로 판단하게 된다.
그리고, 수신측 사업자 인증 서버는 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬 값()를 산출하고, 산출된 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬 값()과, 상기 수신기로부터 수신된 발신기와 수신기간 해쉬값(), 수신측 랜덤 암호화값(XB)을 발신측 사업자 인증 서버로 전송하게 된다.
여기서, 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬 값()는 기 정의된 수학식 즉, =h(T,S,A,B,XA,XB,)를 이용하여 산출되는 값을 의미한다.
삭제
삭제
삭제
발신기 인증 단계는 발신기측 사업자 인증 서버가 발신기를 인증하는 단계이다(S720).
발신기 인증 단계에서, 발신측 사업자 인증 서버는 상기 수신측 사업자 인증 서버로부터 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬 값()을 이용하여 수신측 사업자 인증 서버를 인증한다. 즉, 수학식 h(T,S,A,B,XA,XB,)를 검사하여 두 값이 같은 경우 수신기측 사업자 인증 서버를 성공적으로 인증(S731)하고, 발신기로 발신측 서버 랜덤 암호화값(XS), 수신측 랜덤값(XB), 발신기와 수신기간 해쉬값()을 전송한다.
이를 수신한 발신기는 발신기와 수신기간 세션키 =a(XB)=abP를 계산하고, 상기 발신측 사업자 인증 서버로부터 전송된 발신기와 수신기간 해쉬값()를 기 정의된 수학식에 따라 검사하여, 즉, h(B,A,XA,XB,)를 검사하여 두 값이 같은 경우 발신측 사업자 인증 서버 인증에 성공한 것으로 판단하고, 수신기와 발신기간 해쉬값()를 수학식 =h(A,B,XA,XB,)에 따라 계산하고, 발신기와 발신측 사업자 인증 서버간 세션키=ah(S,A,πA)(XSωA)=asP 및 발신기와 발신측 사업자 인증 서버간 해쉬 값=h(A,S,XA,XB,XS,)를 계산하여 발신기측 사업자 인증 서버로 발신기와 발신측 사업자 인증 서버간 해쉬 값() 및 수신기와 발신기간 해쉬값()를 전송한다. 한편, 전술된 는 전술된 νA가 h'(S,B,πA)P인 경우에, KAS=ah(S,A,πA)-1(XS ωA)=asP로 대체되어야 함에 유의한다.
발신기 인증3단계, 발신기측 사업자 인증 서버가 발신기로부터 전송된 발신기와 발신측 사업자 인증 서버간 해쉬 값()를 기 정의된 수학식, 즉, VASh(A,S,XA,XB,XSA,KAS)를 검사하여 두 값이 같은 경우 발신기를 인증에 성공하고(S721), 발신기측 사업자 인증 서버와 발신기간 해쉬 값()를 수학식, 즉, 수학식 =h(S,A,XA,XB,XS,)에 따라 산출하고, 발신기측 사업자 인증 서버와 수신기측 사업자 인증 서버간 해쉬값()를 수학식, =h(S,T,A,B,XA,XB,KST)에 따라 산출한 후, 발신기로, 발신기측 사업자 인증 서버와 발신기간 해쉬 값()를 전송하고, 수신기측 사업자 인증 서버로 발신기측 사업자 인증 서버와 수신기측 사업자 인증 서버간 해쉬값() 및 수신기와 발신기간 해쉬값()을 전송한다.
서버 인증 단계는 발신기측 인증 서버와 수신기측 인증 서버가 상호 인증하고 수신기와 발신기가 암호화키를 공유하는 단계이다(S730).
서버 인증 단계에서, 서버 인증1단계는 먼저, 발신기가 상기 발신기측 사업자 인증 서버로부터 전송된 발신기측 사업자 인증 서버와 발신기간 해쉬 값을 이용하여, 즉, VSAh(S,A,XA,XB,XSA,KAS)를 검사하여 두 값이 같은 경우 발신기측 사업자 인증 서버 인증에 성공하고, K를 암호화키라 할 때 수학식 K=h(A,B,KAB)를 계산하여 암호화키를 생성한다.
서버 인증2단계, 수신기측 사업자 인증 서버가 VST h(S,T,A,B,XA,XB,KST)를 검사하여 두 값이 같은 경우 발신기측 사업자 인증 서버를 인증하고, 수학식 VTB=h(T,B,XA,XB,XT,KBT)를 계산하여 수신기로 VTB 및 VAB를 전송한다.
서버 인증3단계, 수신기가 VTB h(T,B,XA,XB,XT,KBT)를 검사하여 두 값이 같은 경우 수신기측 사업자 인증 서버를 인증(S732)하고, VAB h(A,B,XA,XB,KAB)를 검사하여 두 값이 같은 경우 수학식 K=h(A,B,KAB)를 계산하여 암호화키를 생성한다.
통신 단계(S800)는 발신기와 수신기가 암호화키를 기반으로 비밀 통신을 수행하는 단계이다.
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
이하에서 본 실시예에 따른 3자간 비밀 통신 방법의 적용예를 설명한다.
제1단계, 발신기가 발신기측 사업자 인증 서버에, 수신기가 수신기측 사업자 인증 서버에 자신의 식별자와 암호를 등록한다.
제2단계, 발신자가 수신기의 전화번호를 누르고, '비밀 통신'버튼을 누른다.
제3단계, 발신자가 발신기측 암호를 입력한다.
제4단계, 발신기측 사업자 인증 서버가 수신기측 사업자 인증 서버로 비밀 통신 요청을 중계한다.
제5단계, 수신기측 사업자 인증 서버가 수신기에 '비밀 통신'호를 연결한다.
제6단계, 수신자가 '비밀 통신'버튼을 누른다.
제7단계, 수신자가 수신기측 암호를 입력한다.
제8단계, 발신기와 발신기측 사업자 인증 서버가 발신기측 암호를 기반으로 상호 인증을 수행한다.
제9단계, 수신기와 수신기측 사업자 인증 서버가 수신기측 암호를 기반으로 상호 인증을 수행한다.
제10단계, 발신기측 사업자 인증 서버와 수신기측 사업자 인증 서버가 암호를 기반으로 상호 인증을 수행한다.
제11단계, 발신기와 수신기가 암호화키를 생성한다.
제12단계, 발신기와 수신기가 통신 내용에 대해 생성된 암호화키를 적용하여 암호화 및 복호화를 하여 비밀 통신을 수행한다.
제4단계, 발신기측 사업자 인증 서버가 수신기측 사업자 인증 서버로 비밀 통신 요청을 중계한다.
제5단계, 수신기측 사업자 인증 서버가 수신기에 '비밀 통신'호를 연결한다.
제6단계, 수신자가 '비밀 통신'버튼을 누른다.
제7단계, 수신자가 수신기측 암호를 입력한다.
제8단계, 발신기와 발신기측 사업자 인증 서버가 발신기측 암호를 기반으로 상호 인증을 수행한다.
제9단계, 수신기와 수신기측 사업자 인증 서버가 수신기측 암호를 기반으로 상호 인증을 수행한다.
제10단계, 발신기측 사업자 인증 서버와 수신기측 사업자 인증 서버가 암호를 기반으로 상호 인증을 수행한다.
제11단계, 발신기와 수신기가 암호화키를 생성한다.
제12단계, 발신기와 수신기가 통신 내용에 대해 생성된 암호화키를 적용하여 암호화 및 복호화를 하여 비밀 통신을 수행한다.
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
삭제
추가적으로, 전술된 4자간 비밀 통신 방법의 데이터 흐름은 첨부된 도면 도14 또는 도15의 값으로 치환되어 사용될 수도 있음에 유의한다. 도14에 도시된 데이터 흐름은, 4자간 비밀 통신에 반드시 필요한 값만을 처리하도록 구성되어 시스템 부하를 줄일 수 있는 효과가 있다. 또한 도15에 도시된 데이터 흐름은, 4자간 비밀 통신에서 처리되는 데이터들을 사업자 인증 서버에서 대부분 수용함으로써, 발신기와 수신기의 데이타 처리 부하를 줄일 수 있는 효과가 있다. 한편, 본 발명은 이와 같은 변형예들 외에도 다양한 데이터 흐름을 가질 수 있음에 유의한다.
(발신기의 4자간 암호화키 생성 방법)
이하에서 첨부된 도면 도16을 참조로 본 발명의 실시예에 따른 발신기의 4자 간 암호화키 생성 방법을 설명한다.
도16은 본 발명의 실시예에 따른 발신기의 4자간 암호화키 생성 방법의 흐름도이다.
도16에 도시된 바와 같이, 본 실시예에 따른 발신기의 4자간 암호화키 생성 방법은 먼저, 발신기가 수신기측 사업자 인증 서버로 수신기 인증을 요청한다(S910). 수신기측 사업자 인증 서버는 VBT h(B,T,XA,XB,XT,KBT)를 검사하여 두 값이 같은 경우 수신기를 인증한다.
이후, 발신기가 발신기측 사업자 인증 서버로 수신기측 사업자 인증 서버의 인증을 요청한다(S911). 발신기측 사업자 인증 서버는 VBT h(T,S,A,B,XA,XB,KST)를 검사하여 두 값이 같은 경우 수신기측 사업자 인증 서버를 인증한다.
이후, 발신기가 발신기측 사업자 인증 서버로 자기 인증을 수행한다(S912). 발신기측 사업자 인증 서버는 VAS h(A,S,XA,XB,XSA,KAS)를 검사하여 두 값이 같은 경우 발신기를 인증한다.
이후, 발신기가 수신기측 사업자 인증 서버로 발신기측 사업자 인증 서버의 인증을 요청하고 암호화키를 생성한다(S913). 수신기측 사업자 인증 서버는 VST h(S,T,A,B,XA,XB,KST)를 검사하여 두 값이 같은 경우 발신기측 사업자 인증 서버를 인증한다.
한편 전술된 단계는 발신기에서 실행하기 위한 프로그램의 형태로 발신기의 저장 매체에 저장된다.
(발신기측 사업자 인증 서버의 비밀 통신 인증 방법)
이하에서 첨부된 도면 도17을 참조로 본 발명의 실시예에 따른 발신기측 사업자 인증 서버의 비밀 통신 인증 방법을 설명한다.
도17은 본 발명의 실시예에 따른 발신기측 사업자 인증 서버의 비밀 통신 인증 방법의 흐름도이다.
도17에 도시된 바와 같이, 본 실시예에 따른 발신기측 사업자 인증 서버의 비밀 통신 인증 방법은 먼저, 발신기측 사업자 인증 서버가 수신기측 사업자 인증 서버로 수신기의 인증을 요청한다(S920). 수신기측 사업자 인증 서버는 VBT h(B,T,XA,XB,XT,KBT)를 검사하여 두 값이 같은 경우 수신기를 인증한다.
이후, 발신기측 사업자 인증 서버가 수신기측 사업자 인증 서버를 인증한다(S921). 발신기측 사업자 인증 서버는 VBT h(T,S,A,B,XA,XB,KST)를 검사하여 두 값이 같은 경우 수신기측 사업자 인증 서버를 인증한다.
이후, 발신기측 사업자 인증 서버가 발신기를 인증한다(S922). 발신기측 사업자 인증 서버는 VAS h(A,S,XA,XB,XSA,KAS)를 검사하여 두 값이 같은 경우 발신기를 인증한다.
이후, 발신기측 사업자 인증 서버가 수신기측 사업자 인증 서버로 자기 인증을 요청한다. 수신기측 사업자 인증 서버는 VST h(S,T,A,B,XA,XB,KST)를 검사하여 두 값이 같은 경우 발신기측 사업자 인증 서버를 인증한다.
한편 전술된 단계는 발신기측 사업자 인증 서버에서 실행하기 위한 프로그램의 형태로 발신기측 사업자 인증 서버의 저장 매체에 저장된다.
(수신기측 사업자 인증 서버의 비밀 통신 인증 방법)
이하에서 첨부된 도면 도18을 참조로 본 발명의 실시예에 따른 수신기측 사업자 인증 서버의 비밀 통신 인증 방법을 설명한다.
도18은 본 발명의 실시예에 따른 수신기측 사업자 인증 서버의 비밀 통신 인증 방법의 흐름도이다.
도18에 도시된 바와 같이 본 실시예에 따른 수신기측 사업자 인증 서버의 비밀 통신 인증 방법은, 먼저 수신기측 사업자 인증 서버가 수신기를 인증한다(S930). 수신기측 사업자 인증 서버는 VBT h(B,T,XA,XB,XT,KBT)를 검사하여 두 값이 같은 경우 수신기를 인증한다.
이후, 수신기측 사업자 인증 서버가 발신기측 사업자 인증 서버로 자기 인증을 요청한다(S931). 발신기측 사업자 인증 서버는 VBT h(T,S,A,B,XA,XB,KST)를 검사하여 두 값이 같은 경우 수신기측 사업자 인증 서버를 인증한다.
이후, 수신기측 사업자 인증 서버가 발신기측 사업자 인증 서버로 발신기의 인증을 요청한다(S932). 발신기측 사업자 인증 서버는 VAS h(A,S,XA,XB,XSA,KAS)를 검사하여 두 값이 같은 경우 발신기를 인증한다.
이후, 수신기측 사업자 인증 서버가 발신기측 사업자 인증 서버를 인증한다(S933). 수신기측 사업자 인증 서버는 VST h(S,T,A,B,XA,XB,KST)를 검사하여 두 값이 같은 경우 발신기측 사업자 인증 서버를 인증한다.
한편 전술된 단계는 수신기측 사업자 인증 서버에서 실행하기 위한 프로그램의 형태로 수신기측 사업자 인증 서버의 저장 매체에 저장된다.
(수신기의 4자간 암호화키 생성 방법)
이하에서 첨부된 도면 도19를 참조로 본 발명의 실시예에 따른 수신기의 4자간 암호화키 생성 방법을 설명한다.
도19는 본 발명의 실시예에 따른 수신기의 4자간 암호화키 생성 방법의 흐름도이다.
도19에 도시된 바와 같이, 본 실시예에 따른 수신기의 4자간 암호화키 생성 방법은 먼저, 수신기가 수신기측 사업자 인증 서버로 자기 인증을 요청한다(S941). 수신기측 사업자 인증 서버는 VBT h(B,T,XA,XB,XT,KBT)를 검사하여 두 값이 같은 경우 수신기를 인증한다.
이후, 수신기가 발신기측 사업자 인증 서버로 수신기측 사업자 인증 서버의 인증을 요청한다(S942). 발신기측 사업자 인증 서버는 VBT h(T,S,A,B,XA,XB,KST)를 검사하여 두 값이 같은 경우 수신기측 사업자 인증 서버를 인증한다.
이후, 수신기가 발신기측 사업자 인증 서버로 발신기의 인증을 요청한다(S943). 발신기측 사업자 인증 서버는 VAS h(A,S,XA,XB,XSA,KAS)를 검사하여 두 값이 같은 경우 발신기를 인증한다.
이후, 수신기가 수신기측 사업자 인증 서버로 발신기측 사업자 인증 서버의 인증을 요청하고 암호화키를 생성한다(S944). 수신기측 사업자 인증 서버는 VST h(S,T,A,B,XA,XB,KST)를 검사하여 두 값이 같은 경우 발신기측 사업자 인증 서버를 인증한다.
한편 전술된 단계는 수신기에서 실행하기 위한 프로그램의 형태로 수신기의 저장 매체에 저장된다.
이상으로 본 발명의 실시예를 첨부된 도면을 참조로 기술하였다.
그러나 본 발명은 전술된 실시예에만 특별히 한정되는 것은 아니며, 필요에 따라, 당업자에 의해, 첨부된 청구범위의 정신과 사상 내에서 다양한 수정 및 변경이 가능함에 유의해야 한다.
도1은 본 발명의 실시예에 따른 3자간 비밀 통신 시스템의 블럭도이다.
도2는 본 발명의 실시예에 따른 3자간 비밀 통신 방법의 흐름도이다.
도3은 도2에서 인증 단계의 세부 흐름도이다.
도4는 도2에서 데이터의 흐름을 도시한 것이다.
도5는 도4의 제1변형예를 도시한 것이다.
도6은 도4의 제2변형예를 도시한 것이다.
도7은 본 발명의 실시예에 따른 발신기의 3자간 암호화키 생성 방법의 흐름도이다.
도8은 본 발명의 실시예에 따른 사업자 인증 서버의 비밀 통신 인증 방법의 흐름도이다.
도9는 본 발명의 실시예에 따른 수신기의 3자간 암호화키 생성 방법의 흐름도이다.
도10은 본 발명의 실시예에 따른 4자간 비밀 통신 시스템의 블럭도이다.
도11는 본 발명의 실시예에 따른 4자간 비밀 통신 방법의 흐름도이다.
도12은 도11에서 인증 단계의 세부 흐름도이다.
도13은 도11에서 데이터의 흐름을 도시한 것이다.
도14는 도13의 제1변형예를 도시한 것이다.
도15는 도13의 제2변형예를 도시한 것이다.
도16은 본 발명의 실시예에 따른 발신기의 4자간 암호화키 생성 방법의 흐름 도이다.
도17은 본 발명의 실시예에 따른 발신기측 사업자 인증 서버의 비밀 통신 인증 방법의 흐름도이다.
도18은 본 발명의 실시예에 따른 수신기측 사업자 인증 서버의 비밀 통신 인증 방법의 흐름도이다.
도19는 본 발명의 실시예에 따른 수신기의 4자간 암호화키 생성 방법의 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
100: 3자간 비밀 통신 시스템 110: 사업자 인증 서버
120: 발신기 130: 수신기
150: 통신망 200: 4자간 비밀 통신 시스템
210: 발신기측 사업자 인증 서버 220: 수신기측 사업자 인증 서버
230: 발신기 240: 수신기
250: 통신망
Claims (60)
- 삭제
- 삭제
- 삭제
- 사업자 인증 서버가 발신기측 암호를 기반으로 생성된 발신측 암호화값을 이용하여 발신기를 등록하고, 수신기측 암호를 기반으로 생성된 수신측 암호화값을 이용하여 수신기를 등록하는 단계;상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청에 따라, 상기 사업자 인증 서버가 상기 수신측 암호화값을 이용하여 상기 수신기를 인증하는 단계;상기 수신기 인증이 완료됨에 따라, 상기 사업자 인증 서버가 상기 발신측 암호화값을 이용하여 상기 발신기를 인증하는 단계; 및상기 발신기 인증이 완료됨에 따라, 상기 사업자 인증 서버가 상기 발신기와 상기 수신기 각각 동일하게 생성된 암호화키를 이용하여 비밀 통신이 수행되도록 제어하는 단계;를 포함하는 비밀 통신 방법.
- 제 4 항에 있어서,상기 등록하는 단계는상기 사업자 인증 서버가상기 발신기로부터 수신된 발신측 제1 암호화값과 발신측 제2 암호화값을 이용하여 상기 발신기를 등록하고, 상기 수신기로부터 수신된 수신측 제1 암호화값과 수신측 제2 암호화값을 수신하여 상기 수신기를 등록하며,상기 발신측 제1 암호화값은 발신기 식별자와 발신기측 암호를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며,상기 발신측 제2 암호화값은 상기 발신측 제1 암호화값과 타원곡선 상의 임의의 한 점을 이용하여 산출된 값을 의미하며,상기 수신측 제1 암호화값은 수신기 식별자와 수신기측 암호를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며,상기 수신측 제2 암호화값은 상기 수신측 제1 암호화값과 타원 곡선 상의 임의의 한 점을 이용하여 산출된 값을 의미하는 것을 특징으로 하는 비밀 통신 방법.
- 제 5 항에 있어서,상기 사업자 인증 서버는 상기 발신기 및 상기 수신기로부터 수신된 정보가 암호화된 경우 자신의 공개키를 이용하여 복호화하는 것을 특징으로 하는 비밀 통신 방법.
- 제 4 항에 있어서,상기 사업자 인증 서버는 상기 발신기로부터 발신기측 암호가 수신되면, 상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청이 발생된 것으로 확인하는 것을 특징으로 하는 비밀 통신 방법.
- 제 7 항에 있어서,상기 사업자 인증 서버는상기 수신기로부터 상기 발신기의 비밀 통신 요청에 대한 응답으로 수신기측 암호가 수신되면, 상기 사업자 인증 서버가 상기 수신측 암호화값을 이용하여 상기 수신기를 인증하는 것을 특징으로 하는 비밀 통신 방법.
- 제 4 항에 있어서,상기 수신기를 인증하는 단계는상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청에 따라, 상기 사업자 인증 서버가 상기 발신기로부터 발신측 랜덤 암호화값, 발신기 식별자 및 수신기 식별자를 수신하는 단계;상기 사업자 인증 서버가 상기 수신측 암호화값을 이용하여 수신기간 인증자를 산출하고, 상기 발신측 암호화값을 이용하여 발신기간 인증자를 산출하는 단계;상기 사업자 인증 서버가 상기 산출된 수신기간 인증자, 상기 발신기로부터 수신된 상기 발신기 식별자 및 상기 발신측 랜덤 암호화값을 상기 수신기에게 전송하는 단계;상기 사업자 인증 서버가 상기 수신기로부터 수신측 랜덤 암호화값, 수신기간 해쉬 값, 수신기와 발신기간 해쉬 값을 수신하는 단계;상기 사업자 인증 서버가 상기 수신기로부터 수신된 상기 수신측 랜덤 암호화값을 이용하여 수신기간 세션 키를 산출하는 단계;상기 사업자 인증 서버가 상기 수신기로부터 수신된 상기 수신기간 해쉬 값을 이용하여 상기 수신기를 인증하는 단계; 및상기 수신기 인증에 성공하면, 상기 사업자 인증 서버가 상기 산출된 발신기간 인증자, 상기 수신기로부터 수신된 상기 수신기와 발신기간 해쉬 값 및 수신측 랜덤 암호화값을 상기 발신기로 전송하는 단계;를 포함하는 것을 특징으로 하는 비밀 통신 방법.
- 제 9 항에 있어서,상기 발신측 랜덤 암호화값은 상기 발신기에 의해 임의의 발신기 랜덤값 및 타원 곡선 상의 임의의 한 점을 이용하여 산출된 값을 의미하며,상기 수신측 랜덤 암호화값은 상기 수신기에 의해 임의의 수신기 랜덤값 및 타원 곡선 상의 임의의 한 점을 이용하여 산출된 값을 의미하며,상기 수신기간 해쉬 값은 상기 수신기에 의해 수신기 식별자, 사업자 인증 서버 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 수신기간 인증자, 수신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며,상기 수신기와 발신기간 해쉬 값은 상기 수신기에 의해 수신기 식별자, 발신기 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 발신기와 수신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며,상기 발신기와 수신기간 세션키는 상기 임의의 수신기 랜덤값과 상기 발신측 랜덤 암호화값을 이용하여 산출된 값을 의미하며,상기 수신기간 세션키는 수신측 암호화값, 상기 임의의 수신기 랜덤값 및 상기 수신기간 인증자를 이용하여 산출된 값을 의미하는 것을 특징으로 하는 비밀 통신 방법.
- 제 10 항에 있어서,상기 발신기를 인증하는 단계는상기 사업자 인증 서버가 상기 발신기로부터 발신기간 해쉬 값, 발신기와 수신기간 해쉬 값을 수신하는 단계;상기 사업자 인증 서버가 상기 발신기로부터 수신된 상기 발신기간 해쉬 값을 이용하여 상기 발신기를 인증하는 단계;상기 발신기 인증에 성공하면, 상기 사업자 인증 서버가 사업자 인증 서버와 발신기간 해쉬 값 및 사업자 인증 서버와 수신기간 해쉬 값을 산출하는 단계; 및상기 사업자 인증 서버가 상기 발신기로 상기 사업자 인증 서버와 발신기간 해쉬값을 전송하고, 상기 수신기로 상기 사업자 인증 서버와 수신기간 해쉬값 및 상기 발신기와 수신기간 해쉬 값을 전송하는 단계;를 포함하는 것을 특징으로 하는 비밀 통신 방법.
- 제 11 항에 있어서,상기 사업자 인증 서버와 발신기간 해쉬 값은 사업자 인증 서버 식별자, 발신기 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 상기 발신기간 인증자 및 발신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며,상기 사업자 인증 서버와 수신기간 해쉬 값은 사업자 인증 서버 식별자, 수신기 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 수신기간 인증자, 수신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며,상기 발신기간 해쉬 값은 상기 발신기에 의해 발신기 식별자, 사업자 인증 서버 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 발신기간 인증자, 발신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며,상기 발신기와 수신기간 해쉬 값은 상기 발신기에 의해 발신기 식별자, 수신기 식별자, 발신측 랜덤 암호화값, 수신측 랜덤 암호화값, 발신기와 수신기간 세션키를 충돌이 없는 일방향 해쉬 함수에 따라 산출된 값을 의미하며,상기 발신기와 수신기간 세션키는 상기 임의의 발신기 랜덤값와 상기 수신측 랜덤 암호화값을 이용하여 산출된 값을 의미하며,상기 발신기간 세션키는 발신측 암호화값, 상기 임의의 발신기 랜덤값 및 상기 발신기간 인증자를 이용하여 산출된 값을 의미하는 것을 특징으로 하는 비밀 통신 방법.
- 제 4 항에 있어서,상기 수신기 또는 발신기를 인증하는 단계 이후에,상기 수신기 또는 발신기 인증에 실패하면, 상기 사업자 인증 서버가 상기 발신기 또는 수신기로 상기 비밀 통신을 중단하기 위한 중단 메시지를 전송하는 단계;를 더 포함하는 것을 특징으로 하는 비밀 통신 방법.
- 제 12 항에 있어서,상기 비밀 통신이 수행되도록 제어하는 단계는상기 발신기에서 상기 사업자 인증 서버와 발신기간 해쉬 값을 기초로 상기 사업자 인증 서버를 인증하여 인증에 성공하면 암호화키를 생성하고,상기 수신기에서 상기 사업자 인증 서버와 수신기간 해쉬 값을 기초로 상기 사업자 인증 서버를 인증하고 상기 발신기와 수신기간 해쉬 값을 기초로 상기 발신기를 인증하여 인증에 성공하면 상기 발신기에서 생성된 암호화키와 동일한 암호화키를 생성하여 상기 생성된 암호화키를 이용하여 비밀 통신이 수행되도록 제어하는 단계;를 포함하는 것을 특징으로 하는 비밀 통신 방법.
- 제 14 항에 있어서,상기 발신기 또는 상기 수신기가 상기 사업자 인증 서버 인증에 실패한 경우 또는 상기 수신기가 상기 발신기 인증에 실패한 경우,상기 발신기 또는 상기 수신기는 상기 비밀 통신을 중단하는 것을 특징으로 하는 비밀 통신 방법.
- 제 5 항에 있어서,상기 등록하는 단계는상기 사업자 인증 서버가 상기 발신기로부터 수신한 상기 발신측 제1 암호화값과 상기 발신측 제2 암호화값 그리고 상기 수신기로부터 수신한 상기 수신측 제1 암호화값과 상기 수신측 제2 암호화값은 사업자 인증 서버 식별자를 더 이용하여 산출된 값을 의미하는 것을 특징으로 하는 비밀 통신 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 발신측 사업자 인증 서버가 발신기측 암호를 기반으로 생성된 발신측 암호화값을 이용하여 발신기를 등록하고, 수신측 사업자 인증 서버가 수신기측 암호를 기반으로 생성된 수신측 암호화값을 이용하여 수신기를 등록하는 단계;상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청에 따라, 상기 수신측 사업자 인증 서버가 상기 발신기 및 상기 발신측 사업자 인증 서버로부터 전달되는 정보를 이용하여 상기 수신기를 인증하는 단계;상기 수신기 인증이 완료됨에 따라, 상기 수신측 사업자 인증 서버로부터 전달되는 정보를 이용하여 상기 발신측 사업자 인증 서버가 상기 수신측 사업자 인증 서버를 인증하는 단계;상기 수신측 사업자 인증 서버 인증이 완료됨에 따라, 상기 발신측 사업자 인증 서버가 상기 발신기를 인증하는 단계;상기 발신기 인증이 완료됨에 따라, 상기 수신측 사업자 인증 서버가 상기 발신측 사업자 인증 서버를 인증하는 단계; 및상기 발신측 사업자 인증 서버 인증이 완료됨에 따라, 상기 발신측 사업자 인증 서버와 상기 수신측 사업자 인증 서버가 상기 발신기와 상기 수신기 각각 동일하게 생성된 암호화키를 이용하여 비밀 통신이 수행되도록 제어하는 단계;를 포함하는 것을 특징으로 하는 비밀 통신 방법.
- 제33항에 있어서,상기 수신기를 인증하는 단계는상기 발신기로부터 상기 수신기로의 비밀 통신 수행 요청에 따라, 상기 발신측 사업자 인증 서버가 상기 발신기로부터 발신측 랜덤 암호화값, 발신기 식별자 및 수신기 식별자를 수신하는 단계;상기 발신측 사업자 인증 서버가 상기 발신측 랜덤 암호화값, 발신기 식별자, 수신기 식별자와 발신측 사업자 인증 서버 식별자를 상기 수신측 사업자 인증 서버로 전송하고, 상기 발신기에 의해 기 등록된 발신측 암호화값을 이용하여 발신측 서버 랜덤 암호화값을 산출하는 단계;상기 수신측 사업자 인증 서버가 상기 수신기에 의해 기 등록된 수신측 암호화값을 이용하여 수신측 서버 랜덤 암호화값을 산출하는 단계;상기 수신측 사업자 인증 서버가 상기 산출된 수신측 서버 랜덤 암호화값과, 상기 발신측 사업자 인증 서버로부터 수신된 상기 발신기 식별자 및 발신측 랜덤 암호화값을 상기 수신기로 전송하는 단계;상기 수신측 사업자 인증 서버가 상기 수신기로부터 수신측 랜덤 암호화값, 수신측 사업자 인증 서버와 수신기간 해쉬 값, 상기 발신기와 수신기간 해쉬값을 수신하는 단계;상기 수신측 사업자 인증 서버가 상기 수신기로부터 수신된 상기 수신측 사업자 인증 서버와 수신기간 해쉬 값을 이용하여 상기 수신기를 인증하고 인증에 성공하면, 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬값을 산출하는 단계; 및상기 수신측 사업자 인증 서버가 상기 발신측 사업자 인증 서버로 상기 수신기로부터 수신된 수신측 랜덤 암호화값, 상기 발신기와 수신기간 해쉬값 및 상기 산출된 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬값을 전송하는 단계;를 포함하는 것을 특징으로 하는 비밀 통신 방법.
- 제34항에 있어서,상기 수신측 사업자 인증 서버를 인증하는 단계는상기 발신측 사업자 인증 서버가 상기 수신측 사업자 인증 서버로부터 수신된 상기 수신측 사업자 인증 서버와 발신측 사업자 인증 서버간 해쉬값을 이용하여 상기 수신측 사업자 인증 서버를 인증하는 단계; 및상기 인증에 성공하면, 상기 발신측 사업자 인증 서버가 상기 발신기로 상기 수신측 사업자 인증 서버로부터 수신된 수신측 랜덤 암호화값 및 발신기와 수신기간 해쉬값과, 상기 산출된 발신측 서버 랜덤 암호화값을 전송하는 단계;를 포함하는 것을 특징으로 하는 비밀 통신 방법.
- 제35항에 있어서,상기 발신기를 인증을 수행하는 단계는상기 발신측 사업자 인증 서버가 상기 발신기로부터 상기 수신기와 발신기간 해쉬값, 상기 발신기와 발신측 사업자 인증 서버간 해쉬값을 수신하는 단계;상기 발신측 사업자 인증 서버가 상기 발신기로부터 수신된 상기 발신기와 발신측 사업자 인증 서버간 해쉬값을 이용하여 상기 발신기를 인증하는 단계;상기 인증에 성공하면, 상기 발신측 사업자 인증 서버가 상기 발신측 사업자 인증 서버와 수신측 사업자 인증 서버간 해쉬값을 산출하는 단계; 및상기 발신측 사업자 인증 서버가 상기 산출된 발신측 사업자 인증 서버와 수신측 사업자 인증 서버간 해쉬값 및 상기 발신기로부터 수신된 수신기와 발신기간 해쉬값을 전송하는 단계;를 포함하는 것을 특징으로 하는 비밀 통신 방법.
- 제36항에 있어서,상기 발신측 사업자 인증 서버를 인증하는 단계는상기 수신측 사업자 인증 서버가 상기 발신측 사업자 인증 서버로부터 수신된 상기 발신측 사업자 인증 서버와 수신측 사업자 인증 서버간 해쉬값을 이용하여 상기 발신측 사업자 인증 서버를 인증하는 단계; 및상기 인증에 성공하면, 상기 수신측 사업자 인증 서버가 수신측 사업자 인증 서버와 수신기간 해쉬 값을 산출하는 단계;를 포함하는 것을 특징으로 하는 비밀 통신 방법.
- 제37항에 있어서,상기 제어하는 단계는상기 수신측 사업자 인증 서버가 상기 수신기에게 상기 산출된 수신측 사업자 인증 서버와 수신기간 해쉬값 및 상기 발신측 사업자 인증 서버로부터 수신된 발신기와 수신기간 해쉬값을 전송하여 상기 수신기에서 암호화키를 생성하도록 제어하고, 상기 발신측 사업자 인증 서버가 상기 발신기로 발신측 사업자 인증 서버와 발신기간 해쉬값을 전송하여 상기 발신기에서 상기 수신기에서 생성된 암호화키와 동일한 암호화키가 생성되도록 제어하여 비밀 통신이 수행되도록 제어하는 것을 특징으로 하는 비밀 통신 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080093040A KR101543571B1 (ko) | 2008-09-23 | 2008-09-23 | 비밀 통신 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080093040A KR101543571B1 (ko) | 2008-09-23 | 2008-09-23 | 비밀 통신 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100034094A KR20100034094A (ko) | 2010-04-01 |
KR101543571B1 true KR101543571B1 (ko) | 2015-08-12 |
Family
ID=42212297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080093040A KR101543571B1 (ko) | 2008-09-23 | 2008-09-23 | 비밀 통신 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101543571B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021133074A3 (ko) * | 2019-12-27 | 2021-08-19 | 주식회사 제이에스전자 | 경량 기기 전용 개체 또는 메시지 인증 방법 및 이를 수행하는 장치들 |
-
2008
- 2008-09-23 KR KR1020080093040A patent/KR101543571B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021133074A3 (ko) * | 2019-12-27 | 2021-08-19 | 주식회사 제이에스전자 | 경량 기기 전용 개체 또는 메시지 인증 방법 및 이를 수행하는 장치들 |
Also Published As
Publication number | Publication date |
---|---|
KR20100034094A (ko) | 2010-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108650227B (zh) | 基于数据报安全传输协议的握手方法及系统 | |
US6912657B2 (en) | Method and arrangement in a communication network | |
JP4634612B2 (ja) | 改良された加入者認証プロトコル | |
KR100983050B1 (ko) | 네트워크 엔티티들 사이에서 데이터 협정을 인증하기 위한시스템, 방법 및 컴퓨터 프로그램 제품 | |
JP5138858B2 (ja) | データ伝送のセキュリティを確保する方法、通信システム及び通信装置 | |
US8769284B2 (en) | Securing communication | |
KR101706117B1 (ko) | 휴대용 단말기에서 다른 휴대용 단말기를 인증하는 장치 및 방법 | |
CN101742508A (zh) | 一种wapi终端与应用服务器传输文件的系统及方法 | |
ES2316993T3 (es) | Procedimiento y sistema para proteger la informacion intercambiada durante una comunicacion entre usuarios. | |
WO2007066738A1 (ja) | 代理端末、サーバ装置、代理端末の通信経路設定方法、及び、サーバ装置の通信経路設定方法 | |
JP2003522475A (ja) | データの正確性チェックのための方法、システムおよび携帯端末 | |
JP2008060809A (ja) | 車車間通信方法、車車間通信システムおよび車載通信装置 | |
EP3570487B1 (en) | Private key generation method, device and system | |
Hossain et al. | A proposal for enhancing the security system of short message service in GSM | |
KR101485747B1 (ko) | 노드를 구성하는 방법, 관련 노드 및 구성 서버 | |
CN103096304A (zh) | Ip网络通讯终端保密语音动态加解密方法 | |
CN113365264B (zh) | 一种区块链无线网络数据传输方法、装置及系统 | |
CN110691359A (zh) | 一种电力营销专业的蓝牙通信的安全防护方法 | |
CN107104888B (zh) | 一种安全的即时通信方法 | |
JP4827717B2 (ja) | 通信システム及び発信側端末装置及び着信側端末装置 | |
KR101543571B1 (ko) | 비밀 통신 방법 | |
EP1437024B1 (en) | Method and arrangement in a communications network | |
CN106559402B (zh) | 用户终端及其加密语音电话业务的身份认证方法及装置 | |
TWI231681B (en) | Certification and data encryption method of PUSH technology | |
Khozooyi et al. | Security in mobile governmental transactions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |