KR20180005095A - 정보 공유 방법 및 장치 - Google Patents

정보 공유 방법 및 장치 Download PDF

Info

Publication number
KR20180005095A
KR20180005095A KR1020160118006A KR20160118006A KR20180005095A KR 20180005095 A KR20180005095 A KR 20180005095A KR 1020160118006 A KR1020160118006 A KR 1020160118006A KR 20160118006 A KR20160118006 A KR 20160118006A KR 20180005095 A KR20180005095 A KR 20180005095A
Authority
KR
South Korea
Prior art keywords
key
group
verification
access
information
Prior art date
Application number
KR1020160118006A
Other languages
English (en)
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 KR20180005095A publication Critical patent/KR20180005095A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

사용자 단말마다 고유의 액세스 키를 생성하여 저장한 후 그 액세스 키를 이용하여 사용자 단말을 검증하여 검증에 성공한 사용자 단말만 공유 정보에 접근할 수 있도록 하는 정보 공유 장치 및 방법이 개시된다. 일 측면에 따른 정보 공유 장치는, 공유 정보에 대한 사용자 단말별 액세스 키를 생성하여 저장하는 액세스 키 생성부; 공유 요청 단말로부터 검증 키를 수신하는 검증 키 수신부; 상기 검증 키로부터 검증 값을 생성하고 상기 검증 값에 대응하는 액세스 키가 상기 사용자 단말별 액세스 키에 존재하는지 검증하는 검증부; 및 상기 검증부에서의 검증 결과에 기초하여 상기 공유 요청 단말의 상기 공유 정보에 대한 접근을 차단하거나 허용하는 공유 정보 처리부를 포함한다.

Description

정보 공유 방법 및 장치{APPARATUS AND METHOD FOR SHARING INFORMATION}
본 발명은 안전하게 정보를 공유하기 위한 장치 및 방법에 관한 것으로, 보다 구체적으로 접근이 허용된 사용자 단말만 공유 정보에 접근하는 것을 허용하는 정보 공유 장치 및 방법에 관한 것이다.
기업들의 기술력이 높아지면서 첨단 산업기술의 유출 사건이 지속적으로 증가하고 있다. 기술 유출은 지능화된 해킹기법 또는 기존에 구축된 보안체계의 허점을 지능적으로 악용하는 내부자에 의해 주로 발생한다. 이에 따라, 전자문서 등의 정보 유출을 방지하기 위한 기술이 필요하다. 또한, 최근에는 그룹 음성 통화 또는 그룹 영상 통화 등의 원격 다자간 통신 서비스가 제공되고 있고 이러한 그룹 통화에서 참여자들은 실시간으로 중요 정보들을 공유한다. 이러한 그룹 통화는 기업 내에서 오프라인 회의를 대신하여 원격지의 참여자들이 원격 회의를 할 수 있도록 지원한다.
이러한 그룹 통신 환경에서 종래의 그룹 정보 암호화 방법은 그룹 멤버가 제공한 정보들을 이용하여 그룹 암호화 키 쌍을 생성하여 중요 정보를 암호화하고 복호화한다. 그리고 만약 그룹 내에 멤버가 추가되거나 삭제되는 경우, 새로운 그룹 암호화 키 쌍을 재생성하여 재분배한 후, 기존 그룹 암호화 키 쌍으로 암호화되어 있는 정보를 복호화하여 다시 새로운 그룹 암호화 키로 암호화한다. 이처럼 종래의 그룹 정보 암호화 방법은, 그룹 내에 멤버가 추가되거나 삭제될 때마다 매번 그룹 암호화 키 쌍을 재생성하여 정보를 재암호화하는 복잡한 과정을 거치는 문제가 있다.
본 발명은 사용자 단말마다 고유의 액세스 키를 생성하여 저장한 후 그 액세스 키를 이용하여 사용자 단말을 검증하여 검증에 성공한 사용자 단말만 공유 정보에 접근할 수 있도록 하는 정보 공유 장치 및 방법을 제공하는데 목적이 있다.
일 측면에 따른 정보 공유 장치는, 공유 정보에 대한 사용자 단말별 액세스 키를 생성하여 저장하는 액세스 키 생성부; 공유 요청 단말로부터 검증 키를 수신하는 검증 키 수신부; 상기 검증 키로부터 검증 값을 생성하고 상기 검증 값에 대응하는 액세스 키가 상기 사용자 단말별 액세스 키에 존재하는지 검증하는 검증부; 및 상기 검증부에서의 검증 결과에 기초하여 상기 공유 요청 단말의 상기 공유 정보에 대한 접근을 차단하거나 허용하는 공유 정보 처리부를 포함한다.
상기 액세스 키 생성부는, 사용자 단말별 속성 정보와 사용자별 사용자 공개키를 이용하여 상기 사용자 단말별 액세스 키를 생성할 수 있다.
상기 검증 키는, 사용자 개인키 및 상기 공유 요청 단말의 속성 정보를 이용하여 생성할 수 있다.
상기 검증부는, 공개키 생성자 및 상기 검증 키를 겹선형 함수에 적용한 결과를 제 1 해쉬 함수에 적용하여 상기 검증 값을 생성할 수 있다.
상기 액세스 키 생성부는, 사용자 단말의 적어도 두 개 이상의 속성 정보를 제 2 해쉬 함수에 적용한 값과 사용자 공개키를 겹선형 함수에 적용하고, 겹선형 함수의 적용 결과를 상기 제 1 해쉬 함수에 적용하여 액세스 키를 생성할 수 있다.
상기 액세스 키 생성부는, 상기 사용자 단말별 액세스 키마다, 사용자 공개키와 상기 정보 공유 장치의 개인키를 이용하여 생성한 인덱스 값을 매칭하여 저장할 수 있다.
상기 검증부는, 상기 공유 요청 단말에 대응하는 사용자 공개키와 상기 정보 공유 장치의 개인키를 이용하여 생성한 인덱스 값을 이용하여 상기 사용자 단말별 액세스 키에서 액세스 키를 검색할 수 있다.
상기 액세스 키 생성부는, 그룹별로 공유 정보에 대한 사용자 단말별 액세스 키를 생성하여 저장하고, 상기 정보 공유 장치는, 그룹별로 그룹 공개키로 상기 공유 정보를 암호화하고, 상기 검증부에서 검증 성공시, 상기 암호화된 공유 정보를 그룹 개인키로 복호화하는 암복호화부를 더 포함할 수 있다.
상기 그룹 공개키는 그룹 식별자 및 유효 일자를 이용하여 생성되고, 상기 그룹 개인키는 마스터 키 및 상기 그룹 공개키를 이용하여 생성될 수 있다.
다른 측면에 따른 정보 공유 장치에서 정보를 공유하는 방법은, 공유 정보에 대한 사용자 단말별 액세스 키를 생성하여 저장하는 단계; 공유 요청 단말로부터 검증 키를 수신하는 단계; 상기 검증 키로부터 검증 값을 생성하고 상기 검증 값에 대응하는 액세스 키가 상기 사용자 단말별 액세스 키에 존재하는지 검증하는 단계; 및 검증 결과에 기초하여 상기 공유 요청 단말의 상기 공유 정보에 대한 접근을 차단하거나 허용하는 단계를 포함한다.
상기 액세스 키를 생성하여 저장하는 단계는, 사용자 단말별 속성 정보와 사용자별 사용자 공개키를 이용하여 상기 사용자 단말별 액세스 키를 생성할 수 있다.
상기 검증 키는, 사용자 개인키 및 상기 공유 요청 단말의 속성 정보를 이용하여 생성될 수 있다.
상기 검증하는 단계는, 공개키 생성자 및 상기 검증 키를 겹선형 함수에 적용한 결과를 제 1 해쉬 함수에 적용하여 상기 검증 값을 생성하는 단계를 포함할 수 있다.
상기 액세스 키를 생성하여 저장하는 단계는, 사용자 단말의 적어도 두 개 이상의 속성 정보를 제 2 해쉬 함수에 적용한 값과 사용자 공개키를 겹선형 함수에 적용하고, 겹선형 함수의 적용 결과를 상기 제 1 해쉬 함수에 적용하여 액세스 키를 생성할 수 있다.
상기 액세스 키를 생성하여 저장하는 단계는, 상기 사용자 단말별 액세스 키마다, 사용자 공개키와 상기 정보 공유 장치의 개인키를 이용하여 생성한 인덱스 값을 매칭하여 저장할 수 있다.
상기 검증하는 단계는, 상기 공유 요청 단말에 대응하는 사용자 공개키와 상기 정보 공유 장치의 개인키를 이용하여 생성한 인덱스 값을 이용하여 상기 사용자 단말별 액세스 키에서 액세스 키를 검색하는 단계를 포함할 수 있다.
상기 액세스 키를 생성하여 저장하는 단계는, 그룹별로 공유 정보에 대한 사용자 단말별 액세스 키를 생성하여 저장하고, 상기 방법은, 그룹별로 그룹 공개키로 상기 공유 정보를 암호화하는 단계; 및 상기 검증하는 단계에서 검증 성공시, 상기 암호화된 공유 정보를 그룹 개인키로 복호화하는 단계를 더 포함할 수 있다.
상기 그룹 공개키는 그룹 식별자 및 유효 일자를 이용하여 생성되고, 상기 그룹 개인키는 마스터 키 및 상기 그룹 공개키를 이용하여 생성될 수 있다.
본 발명은, 사용자 단말마다 액세스 키를 생성하여 저장한 후 그 액세스 키를 이용하여 사용자 단말을 검증하여 검증에 성공할 때만 공유 정보에 접근할 수 있도록 하여 그룹 통신 환경에서 그룹 멤버가 변경되더라도 그룹 암호화 키 쌍을 재생성하지 않아도 되어 기존의 그룹 암호화 키 쌍의 관리 문제 및 정보의 복호화와 암호화 단계에서 발생할 수 있는 보안 취약점을 해결한다.
본 발명은 액세스 키 생성시 사용자 공개키와 사용자 단말의 속성 정보를 이용함으로써 공유 정보에 접근이 가능한 사용자 정보를 노출하지 않기 때문에 공유 정보에 접근하는 사용자에 의해 정보의 보안 등급이나 정보의 활용처를 추측하는 공격에 대해서도 안전하게 기업 정보를 보호할 수 있다.
도 1은 일 실시예에 따른 정보 공유 시스템을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 액세스 키 매핑 테이블을 나타낸 도면이다.
도 3은 도 1의 시스템에서의 정보 공유 방법을 설명하는 흐름도이다.
도 4는 다른 실시예에 따른 정보 공유 시스템을 나타낸 도면이다.
도 5는 도 4의 정보 공유 시스템에서의 정보 공유 방법을 설명하는 흐름도이다.
도 6은 다른 실시예에 따른 정보 공유 시스템을 나타낸 도면이다.
도 7은 도 6의 정보 공유 시스템에서의 정보 공유 방법을 설명하는 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 정보 공유 서버(120)의 구성을 나타낸 도면이다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명하기로 한다.
도 1은 일 실시예에 따른 정보 공유 시스템을 나타낸 도면이다. 도 1을 참조하면, 일 실시예에 따른 정보 공유 시스템은, 복수의 사용자 단말(110), 정보 공유 서버(120), 사용자 정보 관리 서버(130) 및 이들을 연결하는 통신망(140)을 포함한다. 여기서 통신망(140)은 사용자 단말(110)들 및 서버(120, 130)들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미하는 것으로, 이러한 통신망(140)의 일 예는, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 3G, 4G, LTE, VoLTE 등이 포함되나 이에 한정되지는 않는다.
복수의 사용자 단말(110)은 통신 기능을 구비하여 정보 공유 서버(120)로 공유 정보를 전송하고 정보 공유 서버(120)로부터 공유 정보를 수신할 수 있는 단말로서, 스마트폰, 퍼스널 컴퓨터, 노트북, 태블릿 PC 등의 통신 단말이다.
복수의 사용자 단말(110)은 각 사용자의 사용자 공개키와 사용자 개인키를 생성하여 저장하고 사용자 공개키를 정보 공유 서버(120)에 전송하여 등록할 수 있다. 또는 복수의 사용자 단말(110)은 별도의 키 생성 서버로부터 각 사용자의 사용자 개인키를 수신하여 저장하고, 키 생성 서버에서 생성된 각 사용자의 사용자 공개키는 키 생성 서버로부터 정보 공유 서버(120)로 배포될 수 있다.
복수의 사용자 단말(110)은, 사용자 정보 관리 서버(130)에 접속하여 사용자의 식별정보(예컨대, ID)와 사용자 단말(110)의 적어도 두 개 이상의 속성 정보를 등록할 수 있다. 여기서 속성 정보는, 예를 들어, 전화번호, IMSI(International Mobile Subscriber Identifier), ICCID(Integrated Circuit Card Identification), IMEI(International Mobile Station Equipment Identity)를 포함할 수 있으나 여기에 제한되지 않는다.
복수의 사용자 단말(110)은 정보 공유 서버(120)에 저장된 공유 정보에 접근하기 위해 검증 키를 생성하여 정보 공유 서버(120)로 전송하고, 검증 키의 검증이 성공할 경우 정보 공유 서버(120)로부터 공유 정보를 수신할 수 있다. 여기서 검증 키는 사용자 개인키와 사용자 단말(110)의 적어도 두 개 이상의 속성 정보를 이용하여 생성된다. 예를 들면 다음과 같다.
V_i=H1(Attr_1 ∥ Attr_2)x _i, 여기서 V_i는 사용자 i의 검증 키이고, H1은 해쉬 함수이며, Attr_1 및 Attr_2는 사용자 i의 사용자 단말(110)의 속성 정보이고, x_i는 사용자 i의 사용자 개인키이다.
사용자 정보 관리 서버(130)는, 복수의 사용자 단말(110)의 사용자의 식별정보와 각 사용자 단말(110)의 적어도 두 개 이상의 속성 정보를 저장한다. 사용자 정보 관리 서버(130)는, 각 사용자 단말(110)로부터 상기 식별정보와 상기 속성 정보를 수신하여 저장할 수 있고, 또는 각 사용자가 정보 공유 서버(120)에 회원 가입시 등록한 식별정보(예컨대, ID)와 사용자 단말(110)의 속성 정보를 정보 공유 서버(120)로부터 수신할 수도 있다. 또는 사용자 정보 관리 서버(130)는, 이동통신망의 홈 위치 등록기 또는 홈 가입자 서버 등으로부터 식별정보와 속성 정보를 수신하여 저장할 수 있다.
정보 공유 서버(120)는, 복수의 사용자 단말(110)로부터 각 사용자의 사용자 공개키를 수신하여 저장할 수 있고, 또는 별도의 키 생성 서버로부터 각 사용자의 사용자 공개키를 수신하여 저장할 수 있다. 또한, 정보 공유 서버(120)는 자체적으로 자신의 서버 공개키와 서버 개인키를 생성하여 저장할 수 있고, 또는 별도의 키 생성 서버로부터 자신의 서버 공개키와 서버 개인키를 수신하여 저장할 수 있다.
정보 공유 서버(120)는, 복수의 사용자 단말(110)로부터 공유 정보를 수신하여 저장하고 복수의 사용자 단말(110)의 요청에 따라 사용자를 검증하여 검증에 성공한 경우 공유 정보를 복수의 사용자 단말(110)로 전송한다.
정보 공유 서버(120)는, 각 사용자 단말(110)에 대한 액세스 키 매핑 테이블을 생성하여 저장한다. 정보 공유 서버(120)는, 각 사용자 단말(110)의 적어도 두 개 이상의 속성 정보를 사용자 정보 관리 서버(130)로 요청하여 수신하고, 수신된 각 사용자 단말(110)의 적어도 두 개 이상의 속성 정보와 사용자의 사용자 공개키를 이용하여 각 사용자 단말(110)에 대한 액세스 키를 생성하여 액세스 키 매핑 테이블에 기록할 수 있다. 이때 상기 적어도 두 개 이상의 속성 정보는 정보 공유 서버(120)가 각 사용자 단말(110)로부터 직접 수신할 수도 있다.
정보 공유 서버(120)는 액세스 키를 생성하며 각 액세스 키에 대한 인덱스 값을 생성하여 액세스 키 매핑 테이블에 액세스 키와 매핑하여 저장할 수 있다. 정보 공유 서버(120)는 각 사용자의 사용자 공개키와 정보 공유 서버(120)의 서버 개인키를 이용하여 인덱스 값을 생성할 수 있다. 서버 개인키는 정보 공유 서버(120)만이 알고 있으므로 인덱스 값을 제 3 자는 유추할 수 없다. 인덱스 값은 액세스 키 매핑 테이블에서 액세스 키를 검색하는데 소요되는 시간을 줄일 수 있다.
도 2는 본 발명의 일 실시예에 따른 액세스 키 매핑 테이블을 나타낸 도면으로, 도 2를 참조하면, 인덱스 값 y_it에서 t는 정보 공유 서버(120)의 서버 개인키이고, y_i는 사용자 공개키이다. 그리고 액세스 키 H2(e(H1(Attr_1 || Attr_2), y_i))에서, H1과 H2는 해쉬 함수이고, e는 겹선형 함수이며, Attr_1 및 Attr_2는 사용자 단말(110)의 속성 정보이고, y_i는 사용자 공개키이다. 이와 같이 액세스 키 매핑 테이블에는 각 사용자 단말(110)에 대한 액세스 키 그리고 이에 대응하는 인덱스 값이 매칭되어 저장되어 있다.
정보 공유 서버(120)는 어느 한 사용자 단말(110)로부터 공유 정보에 접근하기 위한 검증 키를 수신하면 이 검증 키를 이용하여 검증 값을 생성한 후 그 검증 값과 동일한 값의 액세스 키가 액세스 키 매핑 테이블에 기록되어 있으면 검증에 성공한 것으로 결정하고 공유 정보를 전송한다.
구체적으로, 정보 공유 서버(120)는, 공개키 생성자(g)와 사용자 단말(110)로부터 수신된 검증 키(V_i)를 겹선형 함수(e)에 적용하고 그 결과를 해쉬 함수 H2에 적용한 검증 값인 H2(e(V_i, g))와, 액세스 키 매핑 테이블에 기록된 해당 사용자 단말(110)의 액세스 키인 H2(e(H1(Attr_1 || Attr_2), y_i)가 동일한 값인지 확인한다. 검증을 수식으로 표현하면 다음과 같다.
V_i = H1(Attr_1 || Attr_2)x _i
H2(e(V_i, g)) = H2(e(H1(Attr_1 || Attr_2)x _i, g))
= H2(e(H1(Attr_1 || Attr_2), gx _i))
= H2(e(H1(Attr_1 || Attr_2), y_i)
이때, 정보 공유 서버(120)는, 사용자 단말(110)의 사용자의 사용자 공개키(y_i)와 정보 공유 서버(120)의 서버 개인키(t)를 이용하여 인덱스 값(y_it)을 산출한 후, 그 인덱스 값으로 액세스 키 매핑 테이블에서 비교할 액세스 키를 검색한다. 인덱스 값은 옵션 값으로서, 인덱스 값이 없는 경우 사용자 단말(110)의 검증시에 사용자 단말(110)로부터 수신된 검증 키로부터 만들어낸 검증 값과 모든 액세스 키를 비교해야 하는데, 상대적으로 산출하기가 쉬운 인덱스 값으로 비교할 액세스 키를 특정함으로써 검증 시간을 줄일 수 있다.
도 3은 도 1의 시스템에서의 정보 공유 방법을 설명하는 흐름도이다.
도 3을 참조하면, 단계 S301에서, 정보 공유 서버(120)는 복수의 사용자 단말(110) 각각에 대한 액세스 키를 생성하여 저장한다. 정보 공유 서버(120)는, 각 사용자 단말(110)의 적어도 두 개 이상의 속성 정보와 각 사용자의 사용자 공개키를 이용하여 각 사용자 단말(110)에 대한 액세스 키를 생성한다. 액세스 키 H2(e(H1(Attr_1 || Attr_2), y_i)를 예로 들면, H1/H2는 해쉬 함수, e는 겹선형 함수, y_i는 사용자 공개키, Attr_1 및 Attr_2는 사용자 단말(110)의 두 개의 속성 정보이다. 사용자 단말(110)의 속성 정보는 사용자 단말(110)로부터 직접 수신될 수도 있고 또는 별도의 사용자 정보 관리 서버(130)로부터 수신될 수도 있다. 사용자 공개키는 사용자 단말(110)로부터 직접 수신될 수도 있고 또는 별도의 키 생성 서버로부터 수신될 수도 있다.
단계 S303에서, 정보 공유 서버(120)는 복수의 사용자 단말(110) 간에 공유할 공유 정보를 저장한다. 공유 정보는 복수의 사용자 단말(110) 중 임의의 사용자 단말로부터 수신되어 저장될 수도 있고, 또는 관리자에 의해 입력 수단을 통해 입력될 수도 있고, 또는 다른 장치로부터 수신되어 저장될 수도 있다.
단계 S305에서, 정보 공유 서버(120)는, 복수의 사용자 단말(110) 중 어느 한 사용자 단말(110)로부터 공유 정보에 접근하기 위한 검증 키를 수신한다. 사용자 단말(110)은, 사용자 개인키와 사용자 단말(110)의 적어도 두 개 이상의 속성 정보를 이용하여 생성된다. 검증 키(V_i)의 예는 다음과 같다. V_i = H1(Attr_1 ∥ Attr_2)x _i. 여기서 H1은 해쉬 함수이며, Attr_1 및 Attr_2는 사용자 단말(110)의 속성 정보이고, x_i는 사용자 i의 사용자 개인키이다.
단계 S307에서, 정보 공유 서버(120)는 사용자 단말(110)로부터 수신된 검증 키를 이용하여 검증 값을 생성한 후 검증 값과 정보 공유 서버(120)에 저장되어 있는 액세스 키들을 비교하여 동일한 값의 액세스 키가 있는지 확인하여 검증을 한다. 구체적으로, 정보 공유 서버(120)는, 공개키 생성자(g)와 사용자 단말(110)로부터 수신된 검증 키(V_i)를 겹선형 함수(e)에 적용하고 그 결과를 해쉬 함수 H2에 적용한 검증 값인 H2(e(V_i, g))와 동일한 값의 액세스 키가 저장되어 있는지 확인한다.
단계 S309에서, 정보 공유 서버(120)는, 검증에 성공한 경우 사용자 단말(110)의 공유 정보에 대한 접근을 허용한다. 예를 들어, 정보 공유 서버(120)는 사용자 단말(110)로 공유 정보를 전송할 수 있다.
단계 S311에서, 정보 공유 서버(120)는, 검증에 실패한 경우 사용자 단말(110)의 공유 정보에 대한 접근을 차단한다. 예를 들어, 정보 공유 서버(120)는 사용자 단말(110)로 공유 정보를 전송하지 않는다.
이상의 도 3을 참조한 실시예에서 정보 공유 서버(120)는 단계 S301에서 액세스 키를 생성하여 저장할 때, 각 사용자의 사용자 공개키(y_i)와 정보 공유 서버(120)의 서버 개인키(t)를 이용하여 인덱스 값을 산출한 후 인덱스 값과 액세스 키를 매칭하여 저장할 수 있다. 이때, 정보 공유 서버(120)는, 공유 정보에 접근하는 사용자 단말(110)의 사용자의 사용자 공개키(y_i)와 정보 공유 서버(120)의 서버 개인키(t)를 이용하여 인덱스 값(y_it)을 산출한 후, 그 인덱스 값으로 액세스 키를 검색한다. 인덱스 값이 없는 경우 사용자 단말(110)의 검증시에 사용자 단말(110)로부터 수신된 검증 키와 모든 액세스 키를 비교해야 하는데, 상대적으로 산출하기가 쉬운 인덱스 값으로 비교할 액세스 키를 특정함으로써 검증 시간을 줄일 수 있다.
도 4는 다른 실시예에 따른 정보 공유 시스템을 나타낸 도면이다. 도 4를 참조한 실시예의 정보 공유 시스템에서 도 1을 참조하여 설명한 실시예의 정보 공유 시스템과 동일한 참조번호를 갖는 구성요소는 도 1을 참조하여 설명한 기능 및 동작을 포함한다.
도 4를 참조한 실시예의 정보 공유 시스템에서 정보 공유 서버(120)는 복수의 사용자 단말(110)을 그룹핑하고 각 그룹별로 공유 정보를 저장 및 관리하며, 각 그룹의 공유 정보는 각 그룹에 속하는 사용자 단말(110)들에 대해서만 접근을 허용할 수 있다. 이를 위해 정보 공유 서버(120)는 그룹별로 액세스 키 매핑 테이블을 생성할 수 있다.
정보 공유 서버(120)는 각 그룹마다 그룹 공개키 및 그룹 개인키를 생성하기 위해 그룹 키 생성 서버(410)로 각 그룹의 그룹 식별자 및 그룹 식별자 유효 일자를 전송하고, 그룹 키 생성 서버(410)로부터 각 그룹의 그룹 공개키 및 그룹 개인키를 수신할 수 있다. 이때 정보 공유 서버(120)는 그룹 키 생성 서버(410)로 정보 공유 서버(120)의 서버 공개키를 배포하고, 그룹 키 생성 서버(410)로부터 상기 서버 공개키로 암호화된 그룹 개인키를 수신하여 정보 공유 서버(120)의 서버 개인키로 복호화할 수 있다. 그룹 공개키는 별도로 암호화하지 않고 그룹 키 생성 서버(410)로부터 수신될 수 있다.
정보 공유 서버(120)는, 각 그룹의 그룹 공개키 및 그룹 개인키가 수신되면, 각 그룹의 공유 정보를 그룹 공개키로 암호화하여 저장하고, 공유 정보에 접근을 요청한 사용자 단말(110)에 대한 검증 성공시에 공유 정보를 그룹 개인키로 복호화하여 접근을 허용한다. 따라서 사용자는 자신이 속한 그룹의 공유 정보만 접근할 수 있다.
그룹 키 생성 서버(410)는, 정보 공유 서버(120)의 요청에 따라 각 그룹의 그룹 공개키 및 그룹 개인키를 생성하여 정보 공유 서버(120)로 전송한다. 그룹 키 생성 서버(410)는 정보 공유 서버(120)로부터 수신된 그룹 식별자(GID) 및 그룹 식별자 유효 일자(Vdate)을 해쉬 함수에 적용하여 그룹 공개키(QGID=H(GID ∥ Vdate)를 생성한다. 그리고 그룹 키 생성 서버(410)는 임의의 수 s를 선택하여 마스터 키로 정하고 그 마스터 키(s)와 상기 그룹 공개키(QGID)를 이용하여 그룹 개인키(dGID=sQGID)를 생성한다. 그룹마다 그룹 식별자가 다르므로 그룹마다 그룹 공개키 및 그룹 개인키는 다르고, 동일 그룹이라도 유효 일자에 따라 그룹 공개키 및 그룹 개인키를 달리하여 보안을 높인다.
도 5는 도 4의 정보 공유 시스템에서의 정보 공유 방법을 설명하는 흐름도이다.
도 5를 참조하면, 단계 S501에서, 정보 공유 서버(120)는 복수의 사용자 단말(110)을 그룹핑하고 각 그룹의 그룹 식별자를 생성한다(S501). 이때 정보 공유 서버(120)는 각 그룹마다 공유 정보를 저장할 수 있고 각 그룹별로 그룹에 속하는 사용자 단말(110)들에 대한 액세스 키 매핑 테이블을 생성할 수 있다. 액세스 키 매핑 테이블의 생성은 앞서 설명하였으므로 여기서는 상세한 설명을 생략한다.
단계 S503에서, 정보 공유 서버(120)는 각 그룹의 그룹 식별자와 그룹 식별자의 유효 일자를 그룹 키 생성 서버(410)로 전송한다.
단계 S505에서, 그룹 키 생성 서버(410)는, 정보 공유 서버(120)로부터 수신된 그룹 식별자(GID) 및 그룹 식별자 유효 일자(Vdate)를 해쉬 함수에 적용하여 그룹 공개키(QGID=H(GID ∥ Vdate)를 생성한다.
단계 S507 및 단계 S509에서, 그룹 키 생성 서버(410)는, 임의의 수 s를 선택하여 마스터 키로 정하고 그 마스터 키(s)와 상기 그룹 공개키(QGID)를 이용하여 그룹 개인키(dGID=sQGID)를 생성한다. 그룹마다 그룹 식별자가 다르므로 그룹마다 그룹 공개키 및 그룹 개인키는 다르고, 동일 그룹이라도 유효 일자에 따라 그룹 공개키 및 그룹 개인키를 달리하여 보안을 높인다.
단계 S511에서, 그룹 키 생성 서버(410)는 각 그룹의 그룹 공개키 및 그룹 개인키를 정보 공유 서버(120)로 전송한다.
단계 S513에서, 정보 공유 서버(120)는, 각 그룹의 그룹 공개키 및 그룹 개인키가 수신되면, 각 그룹의 공유 정보를 그룹 공개키로 암호화하여 저장한다.
단계 S515에서, 각 그룹에서 그룹에 속하는 사용자 단말(110)이 그룹 내 공유 정보에 대한 접근 요청을 전송하면, 정보 공유 서버(120)는 사용자 단말(110)로부터 수신된 검증 키와 액세스 키 매핑 테이블을 이용하여 검증을 수행한다.
단계 S517에서, 정보 공유 서버(120)는 검증에 성공한 경우 사용자 단말(110)이 접근 요청한 공유 정보를 그룹 개인키로 복호화하여 사용자 단말(110)로 전송할 수 있다.
이상의 도 4 및 도 5를 참조하여 설명한 정보 공유 시스템에 따르면, 각 그룹마다 공유 정보를 그룹의 그룹 공개키로 암호화하여 보관함으로써 그룹별로 보안 정책을 달리 가져갈 수 있다.
도 6은 다른 실시예에 따른 정보 공유 시스템을 나타낸 도면이다. 도 6에 있어서 도 4와 동일한 참조번호의 구성요소는 도 4를 참조하여 설명한 동작 및 기능을 포함한다.
도 6을 참조한 정보 공유 시스템은, 그룹 통화 서버(610)를 더 포함한다. 그룹 통화 서버(610)는 복수의 사용자 단말(110) 간의 그룹 통화 서비스를 제공한다. 여기서 그룹 통화 서비스는 음성 통화, 영상 통화, 채팅 등을 포함하는 것으로 이해할 수 있다.
그룹 통화 서버(610)는 복수의 사용자 단말(110) 간의 그룹 통화가 시작되면 그룹 통화에 참여한 사용자 단말(110)의 식별정보(예컨대, ID, 전화번호 등)를 정보 공유 서버(120)로 전송할 수 있다. 또한, 그룹 통화 서버(610)는 그룹 통화를 시작한 그룹에 대한 그룹 식별자를 생성하고 그룹 식별자 및 그룹 식별자의 유효 일자를 그룹 키 생성 서버(410)로 전송하여 그룹 공개키 및 그룹 개인키의 생성을 요청한다. 또한, 그룹 통화 서버(610)는 그룹 통화에서 사용자 단말(110)들이 정보를 공유하면 공유 정보를 정보 공유 서버(120)로 전송한다.
그룹 키 생성 서버(410)는 그룹 통화를 하는 그룹에 대한 그룹 공개키 및 그룹 개인키를 생성하여 정보 공유 서버(120)로 전송한다. 그룹 공개키 및 그룹 개인키의 생성은 도 4를 참조하여 자세히 설명하였으므로 여기서는 상세한 설명을 생략한다.
정보 공유 서버(120)는, 그룹 통화 서버(610)로부터 그룹 통화에 참여한 사용자 단말(110)의 식별정보를 수신하면 그 식별정보를 이용하여 사용자 정보 관리 서버(130)로부터 사용자 단말(110)들의 적어도 두 개 이상의 속성 정보를 수신하고 각 사용자의 사용자 공개키 및 상기 적어도 두 개 이상의 속성 정보를 이용하여 그룹 통화를 하는 사용자 단말(110)들의 액세스 키 매핑 테이블을 생성할 수 있다.
정보 공유 서버(120)는, 그룹 통화 서버(610)로부터 수신되는 그룹 통화에서 공유되는 공유 정보를 그룹 키 생성 서버(410)로부터 수신되는 해당 그룹의 그룹 공개키로 암호화하여 저장하고, 그룹 통화에 참여하였던 사용자 단말(110)로부터 공유 정보에 대한 접근 요청이 수신되면, 사용자 단말(110)로부터 수신되는 검증 키를 이용하여 검증 값을 생성한 후 검증 값 및 액세스 키 매핑 테이블을 이용하여 검증한 후 검증에 성공하면 해당 그룹의 그룹 개인키로 공유 정보를 복호화하여 접근 허용한다.
정보 공유 서버(120)는, 그룹 통화에서 퇴장하는 사용자 단말(110)이 있는 경우, 그룹 통화 서버(610)로부터 퇴장하는 사용자 단말(110)의 식별정보를 수신할 수 있고, 해당하는 사용자 단말(110)의 액세스 키를 액세스 키 매핑 테이블에서 삭제하여 더 이상 그룹 내 공유 정보에 접근하지 못하게 할 수 있다. 또한 정보 공유 서버(120)는 그룹 통화에 새로운 사용자 단말(110)이 참여하는 경우 새로 참여한 사용자 단말(110)의 식별정보를 그룹 통화 서버(610)로부터 수신하여 액세스 키 매핑 테이블에 새로 참여한 사용자 단말(110)에 대한 액세스 키를 생성하여 추가할 수 있다.
도 7은 도 6의 정보 공유 시스템에서의 정보 공유 방법을 설명하는 흐름도이다.
도 7을 참조하면, 단계 S701에서, 그룹 통화 서버(610)는 복수의 사용자 단말(110) 간의 그룹 통화 서비스를 제공한다. 여기서 그룹 통화 서비스는 음성 통화, 영상 통화, 채팅 등을 포함하는 것으로 이해할 수 있다.
단계 S703에서, 그룹 통화 서버(610)는 복수의 사용자 단말(110) 간의 그룹 통화가 시작되면 그룹 통화에 참여한 사용자 단말(110)의 식별정보(예컨대, ID, 전화번호 등)를 정보 공유 서버(120)로 전송할 수 있다.
단계 705에서, 정보 공유 서버(120)는, 그룹 통화 서버(610)로부터 그룹 통화에 참여한 사용자 단말(110)의 식별정보를 수신하면 그 식별정보를 이용하여 사용자 정보 관리 서버(130)로부터 사용자 단말(110)들의 적어도 두 개 이상의 속성 정보를 수신하고 각 사용자의 사용자 공개키 및 상기 적어도 두 개 이상의 속성 정보를 이용하여 그룹 통화를 하는 사용자 단말(110)들의 액세스 키 매핑 테이블을 생성할 수 있다.
한편, 단계 S707에서, 그룹 통화 서버(610)는, 그룹 통화를 시작한 그룹에 대한 그룹 식별자를 생성하고 그룹 식별자 및 그룹 식별자의 유효 일자를 그룹 키 생성 서버(410)로 전송하여 그룹 공개키 및 그룹 개인키의 생성을 요청한다.
단계 S709에서, 그룹 키 생성 서버(410)는 그룹 통화 서버(610)의 요청에 따라 그룹 통화를 하는 그룹에 대한 그룹 공개키 및 그룹 개인키를 생성한다. 단계 S711에서, 그룹 키 생성 서버(410)는 상기 단계 S709에서 생성한 그룹 공개키 및 그룹 개인키를 정보 공유 서버(120)로 전송한다.
단계 S713에서, 그룹 통화 서버(610)는, 그룹 통화에서 사용자 단말(110)이 공유하는 공유 정보를 정보 공유 서버(120)로 전송한다. 단계 S715에서, 정보 공유 서버(120)는, 수신된 공유 정보를 단계 S711에서 그룹 키 생성 서버(410)로부터 수신한 해당 그룹의 그룹 공개키로 암호화하여 저장한다.
단계 S717 및 단계 S719에서, 그룹 통화에 참여하였던 사용자 단말(110)로부터 공유 정보에 대한 접근 요청이 수신되면, 사용자 단말(110)로부터 수신되는 검증 키를 이용하여 검증 값을 생성한 후 검증 값과 단계 S705에서 생성한 액세스 키 매핑 테이블을 이용하여 검증한 후 검증에 성공하면 해당 그룹의 그룹 개인키로 공유 정보를 복호화하여 접근 허용한다.
도 8은 본 발명의 일 실시예에 따른 정보 공유 서버(120)의 구성을 나타낸 도면이다.
정보 공유 서버(120)는 메모리, 메모리 제어기, 하나 이상의 프로세서(CPU), 주변 인터페이스, 입출력(I/O) 서브시스템, 디스플레이 장치, 입력 장치 및 통신 회로를 포함할 수 있다. 메모리는 고속 랜덤 액세스 메모리를 포함할 수 있고, 또한 하나 이상의 자기 디스크 저장 장치, 플래시 메모리 장치와 같은 불휘발성 메모리, 또는 다른 불휘발성 반도체 메모리 장치를 포함할 수 있다. 프로세서 및 주변 인터페이스와 같은 다른 구성요소에 의한 메모리로의 액세스는 메모리 제어기에 의하여 제어될 수 있다. 메모리는 각종 정보와 프로그램 명령어를 저장할 수 있고, 프로그램은 프로세서에 의해 실행된다.
주변 인터페이스는 정보 공유 서버(120)의 입출력 주변 장치를 프로세서 및 메모리와 연결한다. 하나 이상의 프로세서는 다양한 소프트웨어 프로그램 및/또는 메모리에 저장되어 있는 명령어 세트를 실행하여 정보 공유 서버(120)를 위한 여러 기능을 수행하고 데이터를 처리한다. I/O 서브시스템은 디스플레이 장치, 입력 장치와 같은 입출력 주변장치와 주변 인터페이스 사이에 인터페이스를 제공한다. 디스플레이 장치는 LCD(liquid crystal display) 기술 또는 LPD(light emitting polymer display) 기술을 사용할 수 있다.
프로세서는 정보 공유 서버(120)에 연관된 동작을 수행하고 명령어들을 수행하도록 구성된 프로세서로서, 예를 들어, 메모리로부터 검색된 명령어들을 이용하여, 정보 공유 서버(120)의 컴포넌트 간의 입력 및 출력 데이터의 수신과 조작을 제어할 수 있다. 통신 회로는 외부 포트를 통한 통신 또는 RF 신호에 의한 통신을 수행한다. 통신 회로는 전기 신호를 RF 신호로 또는 그 반대로 변환하며 이 RF 신호를 통하여 통신 네트워크, 다른 이동형 게이트웨이 장치 및 통신 장치와 통신할 수 있다.
도 8을 참조하면, 정보 공유 서버(120)는, 공유 정보 수신부(810), 액세스 키 생성부(820), 검증 키 수신부(830), 검증부(840), 공유 정보 처리부(850) 및 암복호화부(860)를 포함한다. 이러한 구성요소는 메모리에 프로그램으로 저장되어 프로세서에 의해 실행될 수 있고, 또는 소프트웨어와 하드웨어의 조합으로 구현될 수도 있다.
공유 정보 수신부(810)는 복수의 사용자 단말(110) 간에 공유될 공유 정보를 사용자 단말(110)로부터 수신하거나, 또는 별도의 다른 장치, 예를 들어 그룹 통화 서버(610)로부터 수신하거나, 또는 관리자에 의해 입력되어 수신될 수 있다.
액세스 키 생성부(820)는, 복수의 사용자 단말(110) 각각에 대한 액세스 키를 생성하여 메모리에 저장한다.
액세스 키 생성부(820)는, 복수의 사용자 단말(110)로부터 각 사용자의 사용자 공개키를 수신하여 메모리에 저장할 수 있고, 또는 별도의 키 생성 서버로부터 각 사용자의 사용자 공개키를 수신하여 저장할 수 있다.
액세스 키 생성부(820)는, 각 사용자 단말(110)의 적어도 두 개 이상의 속성 정보를 각 사용자 단말(110)로부터 수신하거나 사용자 정보 관리 서버(130)로부터 수신하고, 수신된 각 사용자 단말(110)의 적어도 두 개 이상의 속성 정보와 사용자의 사용자 공개키를 이용하여 각 사용자 단말(110)에 대한 액세스 키를 생성한다. 액세스 키 H2(e(H1(Attr_1 || Attr_2), y_i)를 예로 들면, H1/H2는 해쉬 함수, e는 겹선형 함수, y_i는 사용자 공개키, Attr_1 및 Attr_2는 사용자 단말(110)의 두 개의 속성 정보이다.
액세스 키 생성부(820)는, 정보 공유 서버(120)의 서버 공개키 및 서버 개인키를 생성하여 메모리에 저장할 수 있고, 또는 별도의 키 생성 서버로부터 상기 서버 공개키 및 서버 개인키를 수신하여 저장할 수 있다.
액세스 키 생성부(820)는, 사용자의 사용자 공개키와 상기 서버 개인키를 이용하여 각 사용자 단말(110)에 대한 인덱스 값을 생성한 후 그 인덱스 값과 액세스 키를 매칭하여 저장할 수 있다. 도 2는 인덱스 값과 액세스 키를 저장하고 있는 액세스 키 매핑 테이블을 나타낸다.
액세스 키 생성부(820)는, 복수의 사용자 단말(110)을 그룹핑하여 그룹별로 그룹 내 사용자 단말(110)들에 대한 액세스 키를 생성할 수 있다. 바람직하게, 액세스 키 생성부(820)는 그룹별로 액세스 키 매핑 테이블을 생성할 수 있다.
검증 키 수신부(830)는, 공유 정보에 접근하려는 사용자 단말(110)로부터 검증 키를 수신한다. 사용자 단말(110)은, 사용자 개인키와 사용자 단말(110)의 적어도 두 개 이상의 속성 정보를 이용하여 생성된다. 검증키(V_i)의 예는 다음과 같다. V_i = H1(Attr_1 ∥ Attr_2)x _i. 여기서 H1은 해쉬 함수이며, Attr_1 및 Attr_2는 사용자 단말(110)의 속성 정보이고, x_i는 사용자 i의 사용자 개인키이다.
검증부(840)는, 상기 검증 키 수신부(830)에서 수신된 검증 키 및 상기 액세스 키 생성부(820)에서 생성된 사용자 단말별 액세스 키를 이용하여 공유 정보에 접근하려는 사용자 단말(110)을 검증한다. 구체적으로, 검증부(840)는, 공개키 생성자(g)와 사용자 단말(110)로부터 수신된 검증 키(V_i)를 겹선형 함수(e)에 적용하고 그 결과를 해쉬 함수 H2에 적용한 검증 값인 H2(e(V_i, g))와 동일한 값의 액세스 키가 저장되어 있는지 확인한다. 동일한 값의 액세스 키가 있으면 검증 성공으로 판단하고 없으면 검증 실패로 판단한다.
또는, 검증부(840)는, 공유 정보에 접근하려는 사용자 단말(110)의 사용자의 사용자 공개키와 정보 공유 서버(120)의 서버 개인키를 이용하여 인덱스 값을 생성한 후, 그 인덱스 값을 이용하여 액세스 키 매핑 테이블에서 액세스 키를 검색하여 검증을 수행할 수 있다.
공유 정보 처리부(850)는, 상기 검증부(840)의 검증 결과에 기초하여 검증에 성공한 경우 사용자 단말(110)의 공유 정보에 대한 접근을 허용하고, 예를 들어 사용자 단말(110)로 공유 정보를 전송하고, 검증에 실패한 경우 공유 정보에 대한 접근을 차단한다.
암복호화부(860)는, 복수의 사용자 단말(110)이 그룹핑되어 있는 경우, 그룹별로 생성된 그룹 공개키를 이용하여 각 그룹에서 공유되는 공유 정보를 암호화하고 그룹 공개키를 이용하여 암호화된 공유 정보를 복호화한다. 그룹 공개키 및 그룹 개인키는 암호화부(860)에서 생성될 수도 있고, 또는 별도의 그룹 키 생성 서버(410)에서 생성되어 수신될 수도 있다.
그룹마다 그룹 식별자 및 그룹 식별자의 유효 일자가 할당된다. 그룹 식별자 및 그룹 식별자의 유효 일자는 정보 공유 서버(120)에서 할당할 수도 있고, 또는 그룹 통화 서버(610)와 같이 그룹이 형성된 장치에서 할당될 수도 있다. 그룹 식별자(GID) 및 그룹 식별자 유효 일자(Vdate)가 해쉬 함수에 적용하여 그룹 공개키(QGID=H(GID ∥ Vdate)가 생성된다. 그리고 임의의 수 s를 선택하여 마스터 키로 정하고 그 마스터 키(s)와 상기 그룹 공개키(QGID)를 이용하여 그룹 개인키(dGID=sQGID)가 생성된다.
본 명세서는 많은 특징을 포함하는 반면, 그러한 특징은 본 발명의 범위 또는 특허청구범위를 제한하는 것으로 해석되어서는 안 된다. 또한, 본 명세서에서 개별적인 실시예에서 설명된 특징들은 단일 실시예에서 결합되어 구현될 수 있다. 반대로, 본 명세서에서 단일 실시예에서 설명된 다양한 특징들은 개별적으로 다양한 실시예에서 구현되거나, 적절히 결합되어 구현될 수 있다.
도면에서 동작들이 특정한 순서로 설명되었으나, 그러한 동작들이 도시된 바와 같은 특정한 순서로 수행되는 것으로, 또는 일련의 연속된 순서, 또는 원하는 결과를 얻기 위해 모든 설명된 동작이 수행되는 것으로 이해되어서는 안 된다. 특정 환경에서 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 아울러, 상술한 실시예에서 다양한 시스템 구성요소의 구분은 모든 실시예에서 그러한 구분을 요구하지 않는 것으로 이해되어야 한다. 상술한 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품 또는 멀티플 소프트웨어 제품에 패키지로 구현될 수 있다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
110 : 사용자 단말
120 : 정보 공유 서버
130 : 사용자 정보 관리 서버
410 : 그룹 키 생성 서버
610 : 그룹 통화 서버

Claims (18)

  1. 공유 정보에 대한 사용자 단말별 액세스 키를 생성하여 저장하는 액세스 키 생성부;
    공유 요청 단말로부터 검증 키를 수신하는 검증 키 수신부;
    상기 검증 키로부터 검증 값을 생성하고 상기 검증 값에 대응하는 액세스 키가 상기 사용자 단말별 액세스 키에 존재하는지 검증하는 검증부; 및
    상기 검증부에서의 검증 결과에 기초하여 상기 공유 요청 단말의 상기 공유 정보에 대한 접근을 차단하거나 허용하는 공유 정보 처리부를 포함하는 정보 공유 장치.
  2. 제 1 항에 있어서,
    상기 액세스 키 생성부는,
    사용자 단말별 속성 정보와 사용자별 사용자 공개키를 이용하여 상기 사용자 단말별 액세스 키를 생성하는 것을 특징으로 하는 정보 공유 장치.
  3. 제 2 항에 있어서,
    상기 검증 키는,
    사용자 개인키 및 상기 공유 요청 단말의 속성 정보를 이용하여 생성된 것을 특징으로 하는 정보 공유 장치.
  4. 제 3 항에 있어서,
    상기 검증부는,
    공개키 생성자 및 상기 검증 키를 겹선형 함수에 적용한 결과를 제 1 해쉬 함수에 적용하여 상기 검증 값을 생성하는 것을 특징으로 하는 정보 공유 장치.
  5. 제 4 항에 있어서,
    상기 액세스 키 생성부는,
    사용자 단말의 적어도 두 개 이상의 속성 정보를 제 2 해쉬 함수에 적용한 값과 사용자 공개키를 겹선형 함수에 적용하고, 겹선형 함수의 적용 결과를 상기 제 1 해쉬 함수에 적용하여 액세스 키를 생성하는 것을 특징으로 하는 정보 공유 장치.
  6. 제 1 항에 있어서,
    상기 액세스 키 생성부는,
    상기 사용자 단말별 액세스 키마다, 사용자 공개키와 상기 정보 공유 장치의 개인키를 이용하여 생성한 인덱스 값을 매칭하여 저장하는 것을 특징으로 하는 정보 공유 장치.
  7. 제 6 항에 있어서,
    상기 검증부는,
    상기 공유 요청 단말에 대응하는 사용자 공개키와 상기 정보 공유 장치의 개인키를 이용하여 생성한 인덱스 값을 이용하여 상기 사용자 단말별 액세스 키에서 액세스 키를 검색하는 것을 특징으로 하는 정보 공유 장치.
  8. 제 1 항에 있어서,
    상기 액세스 키 생성부는,
    그룹별로 공유 정보에 대한 사용자 단말별 액세스 키를 생성하여 저장하고,
    상기 정보 공유 장치는,
    그룹별로 그룹 공개키로 상기 공유 정보를 암호화하고, 상기 검증부에서 검증 성공시, 상기 암호화된 공유 정보를 그룹 개인키로 복호화하는 암복호화부를 더 포함하는 것을 특징으로 하는 정보 공유 장치.
  9. 제 8 항에 있어서,
    상기 그룹 공개키는 그룹 식별자 및 유효 일자를 이용하여 생성되고,
    상기 그룹 개인키는 마스터 키 및 상기 그룹 공개키를 이용하여 생성되는 것을 특징으로 하는 정보 공유 장치.
  10. 정보 공유 장치에서 정보를 공유하는 방법에 있어서,
    공유 정보에 대한 사용자 단말별 액세스 키를 생성하여 저장하는 단계;
    공유 요청 단말로부터 검증 키를 수신하는 단계;
    상기 검증 키로부터 검증 값을 생성하고 상기 검증 값에 대응하는 액세스 키가 상기 사용자 단말별 액세스 키에 존재하는지 검증하는 단계; 및
    검증 결과에 기초하여 상기 공유 요청 단말의 상기 공유 정보에 대한 접근을 차단하거나 허용하는 단계를 포함하는 방법.
  11. 제 10 항에 있어서,
    상기 액세스 키를 생성하여 저장하는 단계는,
    사용자 단말별 속성 정보와 사용자별 사용자 공개키를 이용하여 상기 사용자 단말별 액세스 키를 생성하는 것을 특징으로 하는 방법.
  12. 제 11 항에 있어서,
    상기 검증 키는,
    사용자 개인키 및 상기 공유 요청 단말의 속성 정보를 이용하여 생성된 것을 특징으로 하는 방법.
  13. 제 12 항에 있어서,
    상기 검증하는 단계는,
    공개키 생성자 및 상기 검증 키를 겹선형 함수에 적용한 결과를 제 1 해쉬 함수에 적용하여 상기 검증 값을 생성하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제 13 항에 있어서,
    상기 액세스 키를 생성하여 저장하는 단계는,
    사용자 단말의 적어도 두 개 이상의 속성 정보를 제 2 해쉬 함수에 적용한 값과 사용자 공개키를 겹선형 함수에 적용하고, 겹선형 함수의 적용 결과를 상기 제 1 해쉬 함수에 적용하여 액세스 키를 생성하는 것을 특징으로 하는 방법.
  15. 제 10 항에 있어서,
    상기 액세스 키를 생성하여 저장하는 단계는,
    상기 사용자 단말별 액세스 키마다, 사용자 공개키와 상기 정보 공유 장치의 개인키를 이용하여 생성한 인덱스 값을 매칭하여 저장하는 것을 특징으로 하는 방법.
  16. 제 15 항에 있어서,
    상기 검증하는 단계는,
    상기 공유 요청 단말에 대응하는 사용자 공개키와 상기 정보 공유 장치의 개인키를 이용하여 생성한 인덱스 값을 이용하여 상기 사용자 단말별 액세스 키에서 액세스 키를 검색하는 단계를 포함하는 것을 특징으로 하는 방법.
  17. 제 10 항에 있어서,
    상기 액세스 키를 생성하여 저장하는 단계는,
    그룹별로 공유 정보에 대한 사용자 단말별 액세스 키를 생성하여 저장하고,
    상기 방법은,
    그룹별로 그룹 공개키로 상기 공유 정보를 암호화하는 단계; 및
    상기 검증하는 단계에서 검증 성공시, 상기 암호화된 공유 정보를 그룹 개인키로 복호화하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  18. 제 17 항에 있어서,
    상기 그룹 공개키는 그룹 식별자 및 유효 일자를 이용하여 생성되고,
    상기 그룹 개인키는 마스터 키 및 상기 그룹 공개키를 이용하여 생성되는 것을 특징으로 하는 방법.
KR1020160118006A 2016-07-05 2016-09-13 정보 공유 방법 및 장치 KR20180005095A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160084945 2016-07-05
KR1020160084945 2016-07-05

Publications (1)

Publication Number Publication Date
KR20180005095A true KR20180005095A (ko) 2018-01-15

Family

ID=61001385

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160118006A KR20180005095A (ko) 2016-07-05 2016-09-13 정보 공유 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20180005095A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220131437A (ko) * 2021-03-18 2022-09-28 한국철도기술연구원 그룹 보안 정책 및 암호화 키 관리 기능을 갖는 보안인증시스템 및 그 관리 방법
CN117195300A (zh) * 2023-09-20 2023-12-08 全拓科技(杭州)股份有限公司 一种大数据安全防护方法、装置及系统
US11870888B2 (en) 2018-11-02 2024-01-09 Samsung Electronics Co., Ltd Immobilizer token management system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11870888B2 (en) 2018-11-02 2024-01-09 Samsung Electronics Co., Ltd Immobilizer token management system
KR20220131437A (ko) * 2021-03-18 2022-09-28 한국철도기술연구원 그룹 보안 정책 및 암호화 키 관리 기능을 갖는 보안인증시스템 및 그 관리 방법
CN117195300A (zh) * 2023-09-20 2023-12-08 全拓科技(杭州)股份有限公司 一种大数据安全防护方法、装置及系统
CN117195300B (zh) * 2023-09-20 2024-03-29 全拓科技(杭州)股份有限公司 一种大数据安全防护方法、装置及系统

Similar Documents

Publication Publication Date Title
US10785019B2 (en) Data transmission method and apparatus
CN108629027B (zh) 基于区块链的用户数据库重建方法、装置、设备及介质
US9614684B2 (en) External indexing and search for a secure cloud collaboration system
EP2912800B1 (en) Methods and apparatus for data access control
US10447669B2 (en) System and method for key exchange based on authentication information
CN112699399B (zh) 加密数据库系统、实现加密数据库系统的方法以及装置
CN103259651B (zh) 一种对终端数据加解密的方法及系统
US20170244687A1 (en) Techniques for confidential delivery of random data over a network
CN111404950B (zh) 一种基于区块链网络的信息共享方法、装置和相关设备
JP6404481B2 (ja) クラウドコンピューティングにおける異種混合データ記憶管理方法および装置
CN103699854B (zh) 数据存储方法、数据访问方法及存储设备
CN104756458A (zh) 用于保护通信网络中的连接的方法和设备
CN103986723B (zh) 一种保密通信控制、保密通信方法及装置
CN109525388B (zh) 一种密钥分离的组合加密方法及系统
WO2019214351A1 (zh) 消息处理方法及装置
Rizvi et al. A trusted third-party (TTP) based encryption scheme for ensuring data confidentiality in cloud environment
KR20180005095A (ko) 정보 공유 방법 및 장치
Agarkhed et al. An efficient auditing scheme for data storage security in cloud
CN109379345A (zh) 敏感信息传输方法及系统
CN109063496A (zh) 一种数据处理的方法及装置
CN102594779A (zh) 一种用户数据处理方法及其设备
WO2022153051A1 (en) System and method for key establishment
CN116208330A (zh) 一种基于量子加密的工业互联网云边协同数据安全传输方法及系统
CN112751664A (zh) 一种物联网组网方法、装置和计算机可读存储介质
CN111464543A (zh) 一种基于云平台的教学信息安全防护系统