KR102428374B1 - 소셜 네트워크 서비스의 제공 방법 및 그를 위한 서버 - Google Patents

소셜 네트워크 서비스의 제공 방법 및 그를 위한 서버 Download PDF

Info

Publication number
KR102428374B1
KR102428374B1 KR1020150048328A KR20150048328A KR102428374B1 KR 102428374 B1 KR102428374 B1 KR 102428374B1 KR 1020150048328 A KR1020150048328 A KR 1020150048328A KR 20150048328 A KR20150048328 A KR 20150048328A KR 102428374 B1 KR102428374 B1 KR 102428374B1
Authority
KR
South Korea
Prior art keywords
content
users
key
decryption
encryption
Prior art date
Application number
KR1020150048328A
Other languages
English (en)
Other versions
KR20150123706A (ko
Inventor
김선경
미콜라 알리에크시에이브
일렉세이 쿨라코브
일렉세이 모콘코
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to PCT/KR2015/004140 priority Critical patent/WO2015163736A1/en
Priority to EP15783790.7A priority patent/EP3134863B1/en
Priority to CN201580021900.7A priority patent/CN106233299B/zh
Priority to US14/696,883 priority patent/US9781123B2/en
Publication of KR20150123706A publication Critical patent/KR20150123706A/ko
Application granted granted Critical
Publication of KR102428374B1 publication Critical patent/KR102428374B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1827Network arrangements for conference optimisation or adaptation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1831Tracking arrangements for later retrieval, e.g. recording contents, participants activities or behavior, network status
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Information Transfer Between Computers (AREA)
  • Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)

Abstract

복수의 사용자들에 의해 접근 가능한 채팅 공간에 대한 UI 오브젝트를 제공하는 단계, 상기 채팅 공간에서 상기 복수의 사용자들의 접속을 검출하는 단계, 및 상기 복수의 사용자들이 상기 채팅 공간에 접속하면, 상기 채팅 공간에서 이전에 공유된 암호화된 콘텐트를 복호화하는 단계를 포함하는 소셜 네트워크 서비스의 제공 방법이 개시된다.

Description

소셜 네트워크 서비스의 제공 방법 및 그를 위한 서버{Methods of providing a social network service and server thereof}
본 개시는 소셜 네트워크 서비스에 관한 것으로, 더욱 상세하게는, 복수의 사용자들을 포함하는 보안 그룹이 가상 공간에서 콘텐츠를 암호화하고, 암호화된 콘텐츠를 복호화하는 소셜 네트워크 서비스의 제공 방법 및 그를 위한 서버에 관한 것이다.
사용자 단말 장치와 같은 디바이스의 활발한 보급에 따라 복수의 디바이스들 사이에서 콘텐트를 공유하는 다양한 방법들이 제안되고 있다. 그러나, 복수의 디바이스들 사이에서 공유되는 콘텐트에 대한 별도의 보안 조치가 없을 경우, 사적인 콘텐트의 무분별한 유포가 발생할 수 있다.
예를 들어, 적어도 두 명의 사용자들과 관련된 동영상 또는 사진과 같은 사적인 콘텐트가 생성된 이후에, 적어도 두 명의 사용자들 사이에 콘텐트의 생성 시점과 다른 상황이 발생한 경우, 일부 사용자는 사적인 콘텐트가 외부에 노출되지 않기를 바랄 것이다.
본 발명의 기술적 사상이 해결하고자 하는 과제는 복수의 디바이스들이 가상 공간에 접속하여 콘텐트를 공유하는 경우 향상된 보안성을 제공할 수 있는 소셜 네트워크 서비스의 제공 방법 및 그를 위한 서버를 제공하는 데에 있다.
본 발명의 기술적 사상은 소셜 네트워크 서비스의 제공 방법으로서, 복수의 사용자들에 의해 접근 가능한 채팅 공간에 대한 UI(User Interface) 오브젝트를 제공하는 단계, 상기 채팅 공간에서 상기 복수의 사용자들의 접속을 검출하는 단계, 및 상기 복수의 사용자들이 상기 채팅 공간에 접속하면, 상기 채팅 공간에서 이전에 공유된 암호화된 콘텐트를 복호화하는 단계를 포함한다.
일부 실시예들에 있어서, 상기 복수의 사용자들은 제1 사용자, 제2 사용자 및 제3 사용자를 포함하고, 상기 방법은 상기 제1 내지 제3 사용자들 중 적어도 두 명이 상기 채팅 공간에 접속하면, 상기 채팅 공간에서 이전에 공유된 암호화된 콘텐트를 복호화하는 단계를 더 포함할 수 있다.
일부 실시예들에 있어서, 상기 방법은 상기 복호화하는 단계 후에, 상기 복수의 사용자들 중 적어도 한 명이 상기 채팅 공간에 대한 접속을 종료하면, 상기 콘텐트를 암호화하는 단계를 더 포함할 수 있다.
일부 실시예들에 있어서, 상기 방법은 상기 채팅 공간을 생성하는 단계를 더 포함하며, 상기 생성하는 단계는, 상기 채팅 공간에서 공유되는 콘텐트에 대한 복호화 조건을 설정하는 단계를 포함할 수 있다.
일부 실시예들에 있어서, 상기 복호화 조건을 설정하는 단계는, 상기 복수의 사용자들 중에서, 상기 암호화된 콘텐트를 복호화하기 위해 상기 채팅 공간에 필수적으로 접속해야 하는 적어도 두 명의 필수 사용자들을 결정하는 단계를 포함할 수 있다.
일부 실시예들에 있어서, 상기 복호화 조건을 설정하는 단계는, 복호화된 상기 콘텐트가 상기 복수의 사용자들에게만 공유되도록 상기 복호화된 콘텐트에 대한 공유 제한(limitation)을 결정하는 단계를 포함할 수 있다.
일부 실시예들에 있어서, 상기 공유 제한을 결정하는 단계는, 상기 복호화된 콘텐트의 제공 시간, 상기 복호화된 콘텐트에 대한 시각적 워터마크(visible watermark)의 포함 여부, 상기 복호화된 콘텐트에 대한 프린트 스크린 금지 여부, 상기 복호화된 콘텐트의 재생 중 디바이스 흔들기(shaking) 요청 메시지의 전송 여부, 및 상기 복수의 사용자들의 콘텐트 시청 여부에 대한 실시간 검출을 통한 상기 복호화된 콘텐트의 제공 중단 여부 중 적어도 하나를 결정할 수 있다.
일부 실시예들에 있어서, 상기 복호화 조건을 설정하는 단계는, 상기 복수의 사용자들에 대한 복호화 요청 방식 및 상기 복수의 사용자들로부터 복호화 승인 방식 중 적어도 하나를 결정하는 단계를 포함할 수 있다.
일부 실시예들에 있어서, 상기 복호화 요청 방식은, 문자 메시지, 이메일, 알림 창, 채팅 메시지 중 적어도 하나를 이용하여 상기 복수의 사용자들에게 복호화 요청을 전송할 수 있다.
일부 실시예들에 있어서, 상기 복호화 승인 방식은, 상기 복수의 사용자들에 대한 화상 통화, 생체 인식 데이터, 패스워드 및 핀 코드 중 적어도 하나를 이용하여 상기 복수의 사용자들로부터 복호화 승인을 수신할 수 있다.
일부 실시예들에 있어서, 상기 복호화 조건을 설정하는 단계는, 서로 다른 콘텐트에 대해 서로 다른 복호화 조건들을 각각 설정할 수 있다.
일부 실시예들에 있어서, 상기 생성하는 단계는, 상기 복수의 사용자들을 결정하는 단계를 더 포함할 수 있다.
일부 실시예들에 있어서, 상기 복수의 사용자들을 결정하는 단계는, 상기 채팅 공간을 제공하는 어플리케이션이 접근 가능한 주소록을 참조하여, 상기 복수의 사용자들에게 참여 여부를 문의하는 메시지를 발송하는 단계를 포함할 수 있다.
일부 실시예들에 있어서, 상기 복수의 사용자들을 결정하는 단계는, 상기 복수의 사용자들에게 화상 통화, 생체 인식 데이터, 패스워드 및 핀 코드 중 적어도 하나를 요청함으로써, 상기 복수의 사용자들에게 본인 인증을 요청하는 단계를 더 포함할 수 있다.
일부 실시예들에 있어서, 상기 생성하는 단계는, 상기 채팅 공간에서 공유되는 콘텐트에 대한 생성 조건을 결정하는 단계를 더 포함할 수 있다.
일부 실시예들에 있어서, 상기 생성 조건을 결정하는 단계는, 상기 복수의 사용자들 중에서, 상기 콘텐트를 생성하기 위해 상기 채팅 공간에 필수적으로 접속해야 하는 적어도 두 명의 필수 사용자들을 결정하는 단계를 포함할 수 있다.
일부 실시예들에 있어서, 상기 방법은 상기 복수의 사용자들이 상기 채팅 공간에 접속하면, 상기 채팅 공간에서 공유되는 상기 콘텐트를 생성하는 단계를 더 포함할 수 있다.
일부 실시예들에 있어서, 상기 방법은 생성된 상기 콘텐트에 대한 공유 폴더를 상기 복수의 사용자들 각각의 디바이스 및 서버 중 적어도 하나에 생성하는 단계를 더 포함할 수 있다.
일부 실시예들에 있어서, 상기 방법은 생성된 상기 콘텐트를 암호화하는 단계를 더 포함할 수 있다.
일부 실시예들에 있어서, 상기 방법은 암호화된 상기 콘텐트를 상기 복수의 사용자들 각각의 디바이스 및 서버 중 적어도 하나에 저장하는 단계를 더 포함할 수 있다.
일부 실시예들에 있어서, 상기 암호화하는 단계는, 상기 콘텐트를 암호화하기 위한 암호화 키 및 복수의 부분 키들을 생성하는 단계, 생성된 상기 복수의 부분 키들을 상기 복수의 사용자들에 분배하는 단계, 및 상기 암호화 키를 이용하여 상기 콘텐트를 암호화하는 단계를 포함할 수 있다.
일부 실시예들에 있어서, 상기 암호화하는 단계는, 상기 복수의 부분 키들을 암호화하는 단계를 더 포함하고, 상기 분배하는 단계는, 암호화된 상기 복수의 부분 키들을 상기 복수의 사용자들에 분배할 수 있다.
일부 실시예들에 있어서, 상기 방법은 상기 분배된 부분 키들을 상기 복수의 사용자들의 디바이스들의 보안 구역에 각각 저장하는 단계를 더 포함할 수 있다.
일부 실시예들에 있어서, 상기 복호화하는 단계는, 상기 복수의 사용자들이 상기 채팅 공간에 접속하면, 분배된 상기 복수의 부분 키들로부터 상기 암호화 키에 대응하는 복호화 키를 복원하는 단계, 및 복원된 상기 복호화 키를 이용하여 상기 암호화된 콘텐트를 복호화하는 단계를 포함할 수 있다.
또한, 본 발명의 기술적 사상은 소셜 네트워크 서비스를 제공하는 서버로서, 복수의 사용자들 중 하나로부터, 상기 복수의 사용자들에 의해 접근 가능한 채팅 공간의 생성 요청을 수신하는 수신부, 상기 채팅 공간을 생성하고, 상기 채팅 공간에 대한 UI 오브젝트를 제공하며, 상기 복수의 사용자들이 상기 채팅 공간에 접속하면 상기 채팅 공간에서 이전에 공유된 암호화된 콘텐트를 복호화하는 제어부, 및 복호화된 상기 콘텐트를 상기 채팅 공간에 제공하는 송신부를 포함한다.
일부 실시예들에 있어서, 상기 복수의 사용자들은 제1 사용자, 제2 사용자 및 제3 사용자를 포함하고, 상기 제어부는, 상기 제1 내지 제3 사용자들 중 적어도 두 명이 상기 채팅 공간에 접속하면, 상기 채팅 공간에서 이전에 공유된 암호화된 콘텐트를 복호화할 수 있다.
일부 실시예들에 있어서, 상기 제어부는, 상기 채팅 공간에서 공유되는 콘텐트에 대한 복호화 조건 또는 상기 채팅 공간에서 공유되는 콘텐트에 대한 생성 조건을 결정하는 설정할 수 있다.
또한, 본 발명의 기술적 사상은 소셜 네트워크 서비스 제공 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체로서, 상기 소셜 네트워크 서비스 제공 방법은, 소셜 네트워크 서비스의 제공 방법으로서, 복수의 사용자들에 의해 접근 가능한 채팅 공간에 대한 UI 오브젝트를 제공하는 단계, 상기 채팅 공간에서 상기 복수의 사용자들의 접속을 검출하는 단계, 및 상기 복수의 사용자들이 상기 채팅 공간에 접속하면, 상기 채팅 공간에서 이전에 공유된 암호화된 콘텐트를 복호화하는 단계를 포함한다.
도 1은 본 개시의 일 실시예에 따른 보안 시스템을 나타내는 블록도이다.
도 2의 도 1의 보안 그룹의 일 예를 나타내는 개략도이다.
도 3은 본 개시의 일 실시예에 따른 소셜 네트워크 서비스의 제공 방법을 나타내는 순서도이다.
도 4는 도 3의 소셜 네트워크 서비스의 제공 방법에 따른 도 1의 보안 시스템의 동작의 일 예를 나타내는 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 콘텐트 암호화 방법을 나타내는 순서도이다.
도 6은 도 5의 콘텐트 암호화 방법에 따른 구현 예를 나타내는 도면이다.
도 7은 도 5의 콘텐트 암호화 방법이 제1 디바이스에 적용되는 일 예를 나타내는 도면이다.
도 8은 도 5의 콘텐트 암호화 방법에 따라 제1 디바이스에서의 암호화 요청 동작의 일 예를 나타내는 도면이다.
도 9는 도 5의 콘텐트 암호화 방법에 포함된 분배 단계의 구현 예를 나타내는 도면이다.
도 10은 도 5의 콘텐트 암호화 방법에 포함된 저장 단계의 구현 예를 나타내는 도면이다.
도 11은 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 그룹의 동작의 일 예를 나타내는 흐름도이다.
도 12는 도 11의 콘텐트 암호화 방법에 따른 도 1의 보안 그룹의 동작의 일 예를 더욱 상세하게 나타내는 흐름도이다.
도 13은 도 5의 콘텐트 암호화 방법에 포함된 암호화 단계 및 암호화된 콘텐트의 저장 단계에 따른 도 1의 보안 그룹의 동작의 일 예를 나타내는 흐름도이다.
도 14는 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 그룹의 동작의 다른 예를 나타내는 흐름도이다.
도 15는 도 5의 콘텐트 암호화 방법에 포함된 암호화 단계 및 암호화된 콘텐트의 저장 단계에 따른 도 1의 보안 그룹의 동작의 다른 예를 나타내는 흐름도이다.
도 16은 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 그룹의 동작의 다른 예를 나타내는 흐름도이다.
도 17은 도 5의 콘텐트 암호화 방법에 포함된 암호화 단계 및 암호화된 콘텐트의 저장 단계에 따른 도 1의 보안 그룹의 동작의 다른 예를 나타내는 흐름도이다.
도 18은 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 그룹의 동작의 다른 예를 나타내는 흐름도이다.
도 19는 도 5의 콘텐트 암호화 방법에 포함된 암호화 단계 및 암호화된 콘텐트의 저장 단계에 따른 도 1의 보안 그룹의 동작의 다른 예를 나타내는 흐름도이다.
도 20은 도 5의 콘텐트 암호화 방법의 일 변형 예에 따른 도 1의 보안 그룹의 동작의 일 예를 나타내는 흐름도이다.
도 21은 도 5의 콘텐트 암호화 방법의 다른 변형 예에 따른 도 1의 보안 그룹의 동작의 일 예를 나타내는 흐름도이다.
도 22는 도 5의 콘텐트 암호화 방법의 다른 변형 예에 따른 도 1의 보안 그룹의 동작의 일 예를 나타내는 흐름도이다.
도 23은 도 5의 콘텐트 암호화 방법의 다른 변형 예에 따른 도 1의 보안 그룹의 동작의 일 예를 나타내는 흐름도이다.
도 24는 본 개시의 일 실시예에 따른 콘텐트 복호화 방법을 나타내는 순서도이다.
도 25는 도 24의 콘텐트 복호화 방법에 따른 구현 예를 나타내는 도면이다.
도 26은 도 24의 콘텐트 복호화 방법에 따른 제1 디바이스에서의 복호화 요청 동작의 일 예를 나타내는 도면이다.
도 27은 도 24의 콘텐트 복호화 방법에 따른 승인 동작의 일 예를 나타내는 도면이다.
도 28은 도 22의 콘텐트 복호화 방법에 따른 추가 승인 동작의 일 예를 나타내는 도면이다.
도 29는 도 24의 콘텐트 복호화 방법에 따른 추가 승인 동작의 다른 예를 나타내는 도면이다.
도 30은 도 24의 콘텐트 복호화 방법에 따른 추가 승인 동작의 다른 예를 나타내는 도면이다.
도 31은 도 24의 콘텐트 복호화 방법에 따른 추가 승인 동작의 다른 예를 나타내는 도면이다.
도 32는 도 24의 콘텐트 복호화 방법에 따른 복호화된 콘텐트의 재생 동작의 일 예를 나타내는 도면이다.
도 33은 도 24의 콘텐트 복호화 방법에 따른 복호화된 콘텐트에 대한 보호 동작의 일 예를 나타내는 도면이다.
도 34는 도 24의 콘텐트 복호화 방법에 따른 복호화된 콘텐트에 대한 보호 동작의 다른 예를 나타내는 도면이다.
도 35는 도 24의 콘텐트 복호화 방법에 따른 복호화된 콘텐트에 대한 보호 동작의 다른 예를 나타내는 도면이다.
도 36은 도 24의 콘텐트 복호화 방법에 따른 도 1의 보안 시스템의 동작의 일 예를 나타내는 흐름도이다.
도 37은 도 3의 소셜 네트워크 서비스의 제공 방법에 따른 도 1의 보안 시스템의 동작의 다른 예를 나타내는 흐름도이다.
도 38은 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 시스템의 동작의 일 예를 나타내는 흐름도이다.
도 39는 도 5의 콘텐트 암호화 방법에 포함된 암호화 단계 및 암호화된 콘텐트의 저장 단계에 따른 도 1의 보안 시스템의 동작의 일 예를 나타내는 흐름도이다.
도 40은 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 시스템의 동작의 다른 예를 나타내는 흐름도이다.
도 41은 도 5의 콘텐트 암호화 방법에 포함된 암호화 단계 및 암호화된 콘텐트의 저장 단계에 따른 도 1의 보안 시스템의 동작의 다른 예를 나타내는 흐름도이다.
도 42는 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 시스템의 동작의 다른 예를 나타내는 흐름도이다.
도 43은 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 시스템의 동작의 다른 예를 나타내는 흐름도이다.
도 44는 도 3의 소셜 네트워크 서비스의 제공 방법에 따른 도 1의 보안 시스템의 동작의 다른 예를 나타내는 흐름도이다.
도 45는 도 24의 콘텐트 복호화 방법에 따른 도 1의 보안 그룹의 동작의 일 예를 나타내는 흐름도이다.
도 46은 도 24의 콘텐트 복호화 방법에 따른 도 1의 보안 그룹의 동작의 다른 예를 나타내는 흐름도이다.
도 47은 본 개시의 일 실시예에 따른 디바이스를 나타내는 블록도이다.
도 48은 본 개시의 일 실시예에 따른 디바이스의 구성을 설명하기 위한 블록도이다.
도 49는 본 개시의 일 실시예에 따른 디바이스의 소프트웨어 구성을 설명하기 위한 블록도이다.
도 50은 본 개시의 일 실시예에 따르는 서버를 나타내는 블록도이다.
도 51은 본 개시의 일 실시예에 따른 서버의 구성을 설명하기 위한 블록도이다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 개시의 일 실시예에 따른 보안 시스템(10)을 나타내는 블록도이다.
도 1을 참조하면, 보안 시스템(10)은 복수의 디바이스들, 예를 들어, 제1 내지 제3 디바이스들(100, 200, 300)을 포함하는 보안 그룹(SG) 및 서버(400)를 포함할 수 있다. 구체적으로, 보안 그룹(SG)은 가상 공간 상의 콘텐트를 복수의 디바이스들(100, 200, 300) 사이에서 안전하게 공유할 수 있으며, 이를 위해 서버(400)는 콘텐트를 암호화하고, 암호화된 콘텐트를 복호화할 수 있다. 따라서, 보안 시스템(10)을 콘텐트 암호화 시스템 또는 암호화된 콘텐트 복호화 시스템이라고 지칭할 수 있다.
이때, 도시된 구성요소가 모두 필수구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 보안 그룹(SG) 또는 보안 시스템(10)이 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 보안 그룹(SG) 또는 보안 시스템(10)이 구현될 수 있다. 예를 들어, 보안 그룹(SG)은 두 개의 디바이스들을 포함할 수도 있고, 네 개 이상의 디바이스들을 포함할 수도 있다.
제1 내지 제3 디바이스들(100, 200, 300)은 가상 공간(virtual space 또는 cyber space)에 동시에 접속할 수 있다. 여기서, 가상 공간은 현실 세계가 아닌 컴퓨터, 인터넷 등으로 만들어진 가상의 공간을 의미하며, 구체적으로, 인터넷과 같은 통신망을 통해 대량의 정보가 교환되고 공유되는 공간을 의미한다. 이러한 가상 공간은 컴퓨터뿐만 아니라 휴대 전화 등을 통해서도 접속될 수 있으며, 현실 세계에서와 같이 대화, 편지 주고받기, 쇼핑과 은행 업무는 물론 가상의 화폐를 이용한 상거래, 휴식과 여가를 즐기기 위한 다양한 문화 활동 및 교육 활동까지도 가능하다.
일 실시예에서, 가상 공간은 카카오톡, 라인, 틱톡, 네이트온, msn, 스카이프(Skype) 등과 같은 메신저 서비스 상의 대화 창 또는 그룹 대화 창 공간일 수 있다. 다른 실시예에서, 가상 공간은 페이스북 등과 같은 소셜 네트워크 서비스(social network service, SNS) 상의 그룹 공간일 수도 있다. 또 다른 실시예에서, 가상 공간은 카카오스토리, 카카오그룹, 밴드 등과 같은 폐쇄형 SNS 상의 공간일 수도 있다.
제1 디바이스(100)는 제1 사용자(USER1)의 디바이스이고, 제2 디바이스(200)는 제2 사용자(USER2)의 디바이스이며, 제3 디바이스(300)는 제3 사용자(USER3)의 디바이스일 수 있다. 예를 들어, 제1 내지 제3 디바이스들(100, 200, 300)이 스마트폰일 수 있으나, 이에 제한되지 않는다. 제1 내지 제3 디바이스들(100, 200, 300) 중 적어도 하나는, 태블릿 PC, PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 웨어러블 디바이스(Wearable Device) 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있다.
서버(400)는 보안 그룹(SG)을 생성 또는 초기화하는 동작을 수행할 수 있다. 본 실시예에서, 서버(400)는 복수의 사용자들(USER1 내지 USER3)에 의해 접근 가능한 채팅 공간에 대한 UI(user interface) 오브젝트를 제공하고, 채팅 공간에서 복수의 사용자들(USER1 내지 USER3)의 접속을 검출하며, 복수의 사용자들(USER1 내지 USER3)이 채팅 공간에 접속하면 채팅 공간에서 이전에 공유된 암호화된 콘텐트를 복호화할 수 있다.
본 실시예에서, 제1 내지 제3 디바이스들(100, 200, 300) 중 적어도 하나는 가상 공간에 접속하여 콘텐트를 생성 또는 저장할 수 있고, 제1 내지 제3 디바이스들(100, 200, 300) 중 적어도 하나 또는 서버(400)는 콘텐트를 암호화할 수 있으며, 암호화된 콘텐트는 복사되어 가상 공간에서 제1 내지 제3 디바이스들(100, 200, 300) 사이에서 공유될 수 있다. 따라서, 가상 공간에 접속하여 생성된 콘텐트 또는 가상 공간 상의 콘텐트의 소유자는 일인이 아니고, 가상 공간에 접속한 제1 내지 제3 디바이스들(100, 200, 300) 또는 이들의 제1 내지 제3 사용자들(USER1, USER2, USER3)이다.
일 실시예에서, 제1 내지 제3 디바이스들(100, 200, 300) 중 적어도 하나는 예를 들어, 트러스트존(TrustZone)과 같은 보안 구역에 암호화된 콘텐트를 저장할 수 있다. 다른 실시예에서, 서버(400)가 암호화된 콘텐트를 저장할 수 있고, 저장된 콘텐트는 가상 공간에 접속한 제1 내지 제3 디바이스들(100, 200, 300) 사이에서 공유될 수 있다.
여기서, 콘텐트는 예를 들어, 동영상 콘텐트(예컨대, TV 프로그램 영상, VOD(Video On Demand), 개인 영상(UCC: User-Created Contents), 뮤직비디오, 유투브 영상 등), 정지 영상 콘텐트(예컨대, 사진, 그림 등), 텍스트 콘텐트(예컨대, 전자책(시, 소설), 편지, 업무 파일, 웹 페이지 등), 음악 콘텐트(예컨대, 음악, 연주곡, 라디오 방송 등), 애플리케이션(위젯, 게임, 화상 통화 등) 등일 수 있다.
일 실시예에서, 콘텐트는 사용자 입력에 따라 수동으로 선택될 수 있다. 예를 들어, 가상 공간에 접속 중에 카메라와 같은 어플리케이션을 실행함으로써, 콘텐트를 생성할 수 있고, 생성한 콘텐트를 선택할 수 있다. 다른 예를 들어, 가상 공간에 접속 중에 사진첩과 같은 어플리케이션을 실행함으로써 콘텐트를 선택할 수 있다. 또 다른 예를 들어, 보안 그룹(SG) 내의 콘텐트 공유를 위한 특정 어플리케이션을 실행함으로써 콘텐트를 선택할 수도 있다.
다른 실시예에서, 콘텐트는 제1 내지 제3 디바이스들(100, 200, 300)의 상태 정보에 따라, 즉, 콘텍스트(context)를 기반으로 자동으로 결정될 수도 있다. 예를 들어, 제1 내지 제3 디바이스들(100, 200, 300)의 위치 정보 및 제1 내지 제3 디바이스들(100, 200, 300)의 제1 내지 제3 사용자들(USER1, USER2, USER3)의 SNS 상의 관계 정보 중 적어도 하나에 따라 콘텐트는 결정될 수 있다. 다른 예를 들어, 제1 내지 제3 디바이스들(100, 200, 300) 중 하나가 일방적으로 콘텍스트를 결정할 수도 있다.
일 실시예에서, 콘텐트는 가상 공간에 접속한 제1 내지 제3 디바이스들(100, 200, 300) 중 적어도 하나 또는 서버(400)에서 암호화될 수 있고, 암호화된 콘텐트는 제1 내지 제3 디바이스들(100, 200, 300)이 가상 공간에 모두 접속했을 때만 복호화되어 공유될 수 있다. 따라서, 제1 내지 제3 디바이스들(100, 200, 300) 모두의 동의가 없을 경우 콘텐트는 공개되거나 변경될 수 있다.
구체적으로, 제1 내지 제3 디바이스들(100, 200, 300)을 포함하는 보안 그룹(SG) 또는 서버(400)는 비밀 분산법(secret sharing 또는 secret splitting)을 기초로 하여 콘텐트를 암호화/복호화할 수 있다. 여기서, 비밀 분산법은 하나의 비밀 정보(예를 들어, 암호 키)를 다수의 비밀 조각들(shares)로 분할하고, 그룹 멤버들이 분할된 다수의 비밀 조각들을 각각 저장함으로써, 비밀 정보를 안전하게 유지 관리시키는 암호학적 기술이다.
다른 실시예에서, 콘텐트는 가상 공간에 접속한 제1 내지 제3 디바이스들(100, 200, 300) 중 적어도 하나 또는 서버(400)에서 암호화될 수 있고, 암호화된 콘텐트는 제1 내지 제3 디바이스들(100, 200, 300) 중 일부가 가상 공간에 접속했을 때 복호화되어 공유될 수 있다. 따라서, 제1 내지 제3 디바이스들(100, 200, 300) 중 일부의 동의가 있을 경우 콘텐트는 공개되거나 변경될 수 있다.
구체적으로, 제1 내지 제3 디바이스들(100, 200, 300)을 포함하는 보안 그룹(SG) 또는 서버(400)는 임계치법을 기초로 하여 콘텐트를 암호화/복호화할 수 있다. 여기서, 임계치법은 비밀 분산법의 변형으로서, N명의 참가자들 중 임계치인 t명 이상의 참가자들이 모이면 원 비밀 정보를 복원할 수 있고, t명 미만의 참가자들만으로는 원 비밀 정보를 복원할 수 없다. 예를 들어, N은 3이고, t는 2이면, 암호화된 콘텐트는 제1 내지 제3 디바이스들(100, 200, 300) 중 두 개 이상의 디바이스들이 모였을 때 복호화되어 공유될 수 있다.
도 1의 보안 그룹(SG)에 대한 소셜 네트워크 서비스의 제공 방법, 구체적으로, 소셜 네트워크 서비스의 제공 시의 콘텐트의 암호화 방법 및 암호화된 콘텐트의 복호화 방법에 대해서는, 이하에서 도 3 내지 도 46을 참조하여 상술하기로 한다.
도 2의 도 1의 보안 그룹의 일 예(SGa)를 나타내는 개략도이다.
도 2를 참조하면, 보안 그룹(SGa)은 제1 내지 제3 디바이스들(100a, 200a, 300a)을 포함하며, 예를 들어, 제1 내지 제3 디바이스들(100a, 200a, 300a)은 가상 공간에 접속 중에 생성된, 암호화된 메모(EC1), 암호화된 메일(EC2), 암호화된 사진(EC3) 또는 암호화된 문서(EC4)를 저장하고 있을 수 있다. 이때, 제1 내지 제3 디바이스들(100a, 200a, 300a)은 분할된 비밀 조각들(S1, S2, S3)을 각각 가지고 있는 것으로 볼 수 있다. 따라서, 제1 내지 제3 디바이스들(100a, 200a, 300a)의 각각은 원 비밀 정보를 복원할 수 없다.
그러나, 제1 내지 제3 디바이스들(100a, 200a, 300a)이 예를 들어, 모두 가상 공간에 접속했을 경우, 분할된 비밀 조각들(S1, S2, S3)로부터 비밀 정보를 복원할 수 있다. 이로써, 제1 내지 제3 디바이스들(100a, 200a, 300a)은 복호화된 메모(DC1), 복호화된 메일(DC2), 복호화된 사진(DC3) 또는 복호화된 문서(DC4)를 획득할 수 있다.
도 3은 본 개시의 일 실시예에 따른 소셜 네트워크 서비스의 제공 방법을 나타내는 순서도이다.
도 3을 참조하면, 본 실시예에 따른 소셜 네트워크 서비스의 제공 방법은 복수의 사용자들 또는 복수의 디바이스들을 포함하는 보안 그룹이 가상 공간에 접속하는 경우, 가상 공간에서 이전에 공유된 암호화된 콘텐트를 복호화하기 위한 방법으로서, 도 1의 보안 시스템(10)에 포함된 서버(400)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 1의 보안 시스템(10)에 관하여 이상에서 기술된 내용은 본 실시예에 따른 소셜 네트워크 서비스의 제공 방법에도 적용된다.
단계 S310에서, 채팅 공간을 생성한다. 일 실시예에서, 서버(400)는 채팅 공간에 접속하여 콘텐츠를 공유할 수 있는 복수의 사용자들, 즉, 공유 사용자들을 결정한다. 일 실시예에서, 서버(400)는 채팅 공간에서 공유되는 콘텐트에 대한 생성 조건을 결정한다. 구체적으로, 서버(400)는 복수의 사용자들 중에서 콘텐트를 생성하기 위해 채팅 공간에 필수적으로 접속해야 하는 적어도 두 명의 필수 사용자들을 결정할 수 있다.
일 실시예에서, 서버(400)는 채팅 공간에서 공유되는 콘텐트에 대한 복호화 조건을 설정한다. 구체적으로, 서버(400)는 복수의 사용자들 중에서 암호화된 콘텐트를 복호화하기 위해 채팅 공간에 필수적으로 접속해야 하는 적어도 두 명의 필수 사용자들을 결정할 수 있다. 또한, 서버(400)는 복호화된 콘텐트가 공유 사용자들에게만 공유되도록 복호화된 콘텐트에 대한 공유 제한을 결정할 수 있다. 또한, 서버(400)는 복수의 사용자들에 대한 복호화 요청 방식 또는 복수의 사용자들로부터의 복호화 승인 방식을 결정할 수 있다.
단계 S320에서, 복수의 사용자들에 의해 접근 가능한 채팅 공간에 대한 UI 오브젝트를 제공한다. 여기서, UI 오브젝트는 디바이스가 사용자와 대화하기 위한 기호, 텍스트, 이미지, 버튼 등을 의미할 수 있다. 예를 들어, UI 오브젝트는 사용자가 조작할 수 있는 오브젝트, 사용자에게 정보를 제공하는 오브젝트 등을 포함할 수 있다. 또한, UI 오브젝트는 그래픽 유저 인터페이스(graphic user interface, GUI) 오브젝트 또는 캐릭터 유저 인터페이스(character user interface, CUI) 오브젝트 등을 포함할 수 있으나, 이에 한정되는 것은 아니다.
단계 S330에서, 채팅 공간에서 복수의 사용자들의 접속을 검출한다. 일 실시예에서, 서버(400)는 공유 사용자들 전원이 채팅 공간에 접속했는지 검출할 수 있다. 다른 실시예에서, 서버(400)는 공유 사용자들 중 일부인 필수 사용자들이 채팅 공간에 접속했는지 검출할 수 있다.
단계 S340에서, 복수의 사용자들이 채팅 공간에 접속하면, 채팅 공간에서 이전에 공유된 암호화된 콘텐트를 복호화한다. 일 실시예에서, 서버(400)는 공유 사용자들 전원이 채팅 공간에 접속하면, 채팅 공간에서 이전에 공유된 암호화된 콘텐트를 복호화할 수 있다. 다른 실시예에서, 서버(400)는 공유 사용자들 중 일부인 필수 사용자들이 채팅 공간에 접속하면, 채팅 공간에서 이전에 공유된 암호화된 콘텐트를 복호화할 수 있다.
도 4는 도 3의 소셜 네트워크 서비스의 제공 방법에 따른 도 1의 보안 시스템(10)의 동작의 일 예를 나타내는 흐름도이다.
도 4를 참조하면, 본 실시예에 따른 소셜 네트워크 서비스의 제공 방법은 복수의 사용자들 또는 복수의 디바이스들을 포함하는 보안 그룹이 가상 공간에 접속하는 경우, 가상 공간에서 콘텐트를 암호화하고, 이전에 공유된 암호화된 콘텐트를 복호화하기 위한 방법으로서, 도 1의 보안 시스템(10)에 포함된 제1 내지 제3 디바이스들(100, 200, 300) 및 서버(400)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S400에서, 제1 디바이스(100)는 서버(400)에 접속한다. 구체적으로, 제1 디바이스(100)는 채팅 가능한 특정 어플리케이션 또는 소셜 네트워크 서비스 어플리케이션을 실행함으로써 서버(400)에 접속할 수 있다. 여기서, 서버(400)에 가장 먼저 접속하는 디바이스는 제1 디바이스(100)에 한정되지 않으며, 제1 디바이스 내지 제3 디바이스(100, 200, 300) 중 임의의 디바이스가 서버(400)에 먼저 접속할 수 있다.
단계 S410에서, 서버(400)는 채팅 공간을 생성한다. 일 실시예에서, 서버(400)는 채팅 공간에 접속하여 콘텐츠를 공유할 수 있는 복수의 사용자들, 즉, 공유 사용자들을 결정한다. 구체적으로, 서버(400)는 제1 디바이스(100) 또는 서버(400)에 저장된 주소록으로부터 제2 및 제3 디바이스들(200, 300)의 제2 및 제3 사용자들(USER2, USER3)을 불러올 수 있다. 예를 들어, 서버(400)는 제2 및 제3 디바이스들(200, 300)에게 채팅 공간으로의 참여 여부를 문의하는 문의 메시지를 발송할 수 있다.
일 실시예에서, 서버(400)는 제1 내지 제3 디바이스들(100, 200, 300)의 제1 내지 제3 사용자들(USER1, USER2, USER3)에 대해 본인 확인을 요청할 수 있다. 다른 실시예에서, 제1 디바이스(100)는 제2 및 제3 디바이스들(200, 300)의 제2 및 제3 사용자들(USER2, USER3)에 대해 본인 확인을 요청할 수 있다. 이러한 본인 확인 요청은 공유 콘텐트의 보안 레벨에 따라 선택적으로 수행될 수 있다. 높은 보안 레벨에 해당하는 콘텐트를 공유하고자 하는 경우에는 다양한 본인 확인 요청 단계들을 수행할 수 있다. 이로써, 사용자가 디바이스를 분실하거나 사용자 이외의 다른 사람이 해당 디바이스를 사용하는 경우, 콘텐트의 무분별한 유포를 방지할 수 있다.
예를 들어, 서버(400) 또는 제1 디바이스(100)는 사용자 본인 확인 요청 메시지를 제1 내지 제3 디바이스들(100, 200, 300)에 송부할 수 있다. 이때, 사용자 본인 확인 요청 메시지는 본인 확인이 가능한 질문 또는 비밀번호 요청을 포함할 수 있다. 제1 내지 제3 디바이스들(100, 200, 300)은 사용자 본인 확인 메시지를 서버(400)에 제공할 수 있다. 이때, 사용자 본인 확인 메시지는 본인 확인이 가능한 질문에 대한 대답 또는 요청된 비밀번호일 수 있다.
다른 예를 들어, 서버(400) 또는 제1 디바이스(100)는 사용자 본인 확인을 위해 비디오 대화 또는 영상 통화를 요청할 수 있다. 이때, 다른 사용자들은 영상 통화를 통해 상대방을 확인할 수 있다. 다른 예를 들어, 서버(400) 또는 제1 디바이스(100)는 사용자 본인 확인을 위해 지문 인식 또는 동공 인식을 요청할 수 있다.
일 실시예에서, 서버(400)는 채팅 공간에서 공유되는 콘텐트에 대한 생성 조건을 결정한다. 구체적으로, 서버(400)는 복수의 사용자들 중에서 콘텐트를 생성하기 위해 채팅 공간에 필수적으로 접속해야 하는 적어도 두 명의 필수 사용자들을 결정할 수 있다.
일 실시예에서, 서버(400)는 채팅 공간에서 공유되는 콘텐트에 대한 복호화 조건을 설정한다. 구체적으로, 서버(400)는 복수의 사용자들 중에서 암호화된 콘텐트를 복호화하기 위해 채팅 공간에 필수적으로 접속해야 하는 적어도 두 명의 필수 사용자들을 결정할 수 있다. 또한, 서버(400)는 복호화된 콘텐트가 공유 사용자들에게만 공유되도록 복호화된 콘텐트에 대한 공유 제한을 결정할 수 있다. 또한, 서버(400)는 복수의 사용자들에 대한 복호화 요청 방식 또는 복수의 사용자들로부터의 복호화 승인 방식을 결정할 수 있다.
단계 S420에서, 서버(400)는 복수의 사용자들에 의해 접근 가능한 채팅 공간에 대한 UI 오브젝트를 제공한다.
단계 S430에서, 제2 디바이스(200)는 서버(400)에 접속하고, 단계 S435에서, 제3 디바이스(300)는 서버(400)에 접속한다. 다른 실시예에서, 단계 S430 및 S435는 단계 S410 전에 수행될 수 있다. 또 다른 실시예에서, 단계 S430 및 S435는 단계 S420 전에 수행될 수도 있다. 또 다른 실시예에서, 단계 S430 및 S435 중 하나는 단계 S440 후에 수행될 수도 있다. 예를 들어, 제2 사용자(USER2)가 콘텐트 생성을 위해 채팅 공간에 필수적으로 접속해야 하는 필수 사용자가 아니고, 제3 사용자(USER3)가 콘텐트 생성을 위해 채팅 공간에 필수적으로 접속해야 하는 필수 사용자인 경우, 단계 S430은 단계 S440 이후에 수행될 수 있다.
단계 S440에서, 제1 디바이스(100)는 콘텐트를 생성한다. 예를 들어, 제1 내지 제3 디바이스들(100, 200, 300)이 채팅 공간에 접속한 경우, 제1 내지 제3 디바이스들(100, 200, 300) 중 제1 디바이스(100)는 사진이나 동영상과 같은 콘텐트를 생성할 수 있다. 다른 예를 들어, 제1 내지 제3 디바이스들(100, 200, 300)이 가상 공간에 접속한 경우, 제1 내지 제3 디바이스들(100, 200, 300)이 함께 전자 문서와 같은 콘텐트를 생성할 수 있다.
일 실시예에서, 콘텐트를 생성하기 위해 채팅 공간에 필수적으로 접속해야 하는 필수 사용자들이 서버(400)에 접속한 경우, 지정된 필수 사용자들이 전원 참여한 것을 전제로 하여 사진 또는 동영상을 촬영하거나, 문서를 작업하거나, 음성을 녹음할 수 있다. 이때, 생성된 콘텐트를 저장하기 위한 공유 폴더 또는 앨범이 제1 내지 제3 디바이스들(100, 200, 300) 중 적어도 하나의 바탕화면에 자동으로 생성될 수 있다.
단계 S445에서, 제1 디바이스(100)는 생성된 콘텐트를 암호화한다. 암호화 단계에 대한 구체적인 설명은 도 5를 참조하여 후술하기로 한다. 단계 S450에서, 제1 디바이스(100)는 암호화된 콘텐트를 서버(400)에 전송한다. 단계 S455에서, 서버(455)는 암호화된 콘텐트를 저장한다. 그러나, 본 발명은 이에 한정되지 않으며, 다른 실시예에서, 암호화된 콘텐트는 제1 디바이스(100)에도 저장될 수 있다.
한편, 제2 디바이스(200)에서 콘텐트가 생성된 경우, 제2 디바이스(200)는 생성된 콘텐트를 암호화할 수 있고, 암호화된 콘텐트를 서버(400)에 전송할 수 있다. 이때, 암호화된 콘텐트는 제2 디바이스(200)에도 저장될 수 있다.
단계 S460에서, 제1 디바이스(100)는 서버(400)에 암호화된 콘텐트의 복호화를 요청한다. 단계 S470에서, 서버(400)는 제1 내지 제3 사용자들(USER1, USER2, USER3)의 접속을 검출한다. 단계 S480에서, 서버(400)는 암호화된 콘텐트를 복호화한다. 복호화 단계에 대한 구체적인 설명은 도 24를 참조하여 후술하기로 한다.
일 실시예에서, 서버(400)는 제1 내지 제3 사용자들(USER1, USER2, USER3) 전원이 채팅 공간에 접속하면, 채팅 공간에서 이전에 공유된 암호화된 콘텐트를 복호화할 수 있다. 다른 실시예에서, 서버(400)는 제1 내지 제3 사용자들(USER1, USER2, USER3) 중 일부인 필수 사용자들이 채팅 공간에 접속하면, 채팅 공간에서 이전에 공유된 암호화된 콘텐트를 복호화할 수 있다.
단계 S490에서, 서버(400)는 제1 내지 제3 디바이스들(100, 200, 300)에 복호화된 콘텐트를 전송한다. 이때, 제1 내지 제3 디바이스들(100, 200, 300) 중 하나라도 접속을 종료하는 경우, 서버(400)는 복호화된 콘텐트를 다시 암호화할 수 있다. 이에 따라, 암호화된 콘텐트는 제1 내지 제3 디바이스들(100, 200, 300)에서 공유될 수 없다.
이와 같이, 상술된 실시예에 따르면, 콘텐트의 암호화 단계는 제1 내지 제3 디바이스들(100, 200, 300) 중 어느 하나에서 수행될 수 있고, 콘텐트의 복호화 단계는 서버(400)에서 수행될 수 있다.
도 5는 본 개시의 일 실시예에 따른 콘텐트 암호화 방법을 나타내는 순서도이다.
도 5를 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 복수의 디바이스들을 포함하는 보안 그룹이 가상 공간에서 공유 가능한 콘텐트를 암호화하기 위한 방법으로서, 서버 또는 복수의 디바이스들 중 하나에서 수행되는 아래의 단계들을 포함한다. 예를 들어, 본 실시예에 따른 콘텐트 암호화 방법은 도 1의 제1 디바이스(100)에서 시계열적으로 처리되는 단계들을 포함할 수 있다.
단계 S510에서, 콘텐트에 대한 암호화 키 및 복수의 부분 키들을 생성한다. 구체적으로, 제1 디바이스(100)는 암호화 키 및 제1 내지 제3 디바이스들(100, 200, 300)에 분배될 복수의 부분 키들을 생성할 수 있다. 여기서, 암호화 키는 콘텐트를 암호화하는데 이용될 수 있고, 복수의 부분 키들을 암호화된 콘텐트를 복호화하는데 이용될 수 있다.
일 실시예에서, 콘텐트 암호화 방법은 비대칭 암호화 방식에 따라 콘텐트를 암호화할 수 있다. 이때, 암호화 키는 공개 키(public key) 및 개인 키(private key)를 포함하는 키 쌍(key pair)을 포함할 수 있고, 공개 키는 콘텐트를 암호화하는데 이용될 수 있고, 개인 키는 콘텐트를 복호화하는데 이용될 수 있다. 예를 들어, 제1 디바이스(100)는 개인 키를 적어도 3개로 분할하여 제1 내지 제3 부분 키들을 생성할 수 있다. 다른 예를 들어, 제1 디바이스(100)는 공개 키를 적어도 3개로 분할하여 제1 내지 제3 부분 키들을 생성할 수도 있다.
다른 실시예에서, 콘텐트 암호화 방법은 대칭 암호화 방식에 따라 콘텐트를 암호화할 수 있다. 이때, 암호화 키는 콘텐트를 암호화 및 복호화하는데 이용될 수 있는바, 대칭키라고 지칭할 수 있다. 예를 들어, 제1 디바이스(100)는 암호화 키를 적어도 3개로 분할하여 제1 내지 제3 부분 키들을 생성할 수 있다.
단계 S520에서, 생성된 복수의 부분 키들을 복수의 디바이스들에 분배한다. 구체적으로, 제1 디바이스(100)는 제2 및 제3 부분 키들을 제2 및 제3 디바이스들(200, 300)에 각각 전송할 수 있다. 다른 실시예에서, 콘텐트 암호화 방법은, 제1 디바이스(100)에서 복수의 부분 키들을 암호화하는 단계를 더 포함할 수 있다. 이때, 제1 디바이스(100)는 암호화된 제2 및 제3 부분 키들을 제2 및 제3 디바이스들(200, 300)에 각각 전송할 수 있다.
단계 S530에서, 생성된 암호화 키를 이용하여 콘텐트를 암호화한다. 구체적으로, 제1 디바이스(100)는 생성된 암호화 키를 이용하여 콘텐트를 암호화할 수 있다. 예를 들어, 비대칭 암호화 방식인 경우, 제1 디바이스(100)는 공개 키를 이용하여 콘텐트를 암호화할 수 있다. 다른 예를 들어, 대칭 암호화 방식인 경우, 제1 디바이스(100)는 대칭 키인 암호화 키를 이용하여 콘텐트를 암호화할 수 있다.
도 6은 도 5의 콘텐트 암호화 방법에 따른 구현 예를 나타내는 도면이다.
도 6을 참조하면, 610 단계에서, 예를 들어, 제1 내지 제4 사용자들(USER1 내지 USER4)은 다양한 어플리케이션들(APP1, APP2, APP3, APP4) 중 하나를 통해 가상 공간에 접속할 수 있다. 620 단계에서, 제1 내지 제4 사용자들(USER1 내지 USER4)은 가상 공간에서 다양한 콘텐트, 예를 들어, 제1 내지 제4 콘텐트(C1, C2, C3, C4)를 생성할 수 있다. 예를 들어, 제1 콘텐트(C1)는 사진이고, 제2 콘텐트(C2)는 동영상이고, 제3 콘텐트(C3)는 전자 문서이고, 제4 콘텐트(C4)는 폴더일 수 있다.
630 단계에서, 제1 내지 제4 사용자들(USER1 내지 USER4)은 가상 공간에서 해당 콘텐트를 공유할 수 있는데, 이때, 다양한 보호 방식들, 예를 들어, 제1 내지 제4 보호 방식들(P1, P2, P3, P4) 중 적어도 하나를 통해 콘텐트가 보안 그룹(SG) 외부에 노출되는 것을 방지할 수 있다.
예를 들어, 제1 보호 방식(P1)은 콘텐트 재생 중에 디바이스에 대한 흔들기 요청 메시지를 제공할 수 있다. 제2 보호 방식(P2)은 콘텐트 상에 시각적 워터마크(visible watermark)를 포함시킴으로써 콘텐트를 보호할 수 있다. 제3 보호 방식(P3)은 미리 정해진 임계 시간 동안만 콘텐트를 재생 또는 공유하고, 임계 시간 경과 후에는 콘텐트를 암호화할 수 있다. 제4 보호 방식(P4)은 디바이스의 스크린에서 사용자의 눈을 검출하는 아이 트래킹(eye tracking) 방식을 이용하여 제1 내지 제4 사용자들(USER1 내지 USER4)이 두 눈으로 해당 디바이스를 보고 있을 때만 콘텐트를 재생 또는 공유함으로써 외부로 콘텐트가 노출되는 것을 방지할 수 있다.
640 단계에서, 제1 내지 제4 사용자들(USER1 내지 USER4) 중 적어도 하나가 가상 공간에 대한 접속을 종료할 수 있다. 650 단계에서, 복수의 디바이스들(100a, 100b, 100c) 및 클라우드 서버(CS) 중 적어도 하나에 콘텐트를 암호화된 상태로 저장될 수 있다.
도 7은 도 5의 콘텐트 암호화 방법이 제1 디바이스(100a)에 적용되는 일 예를 나타내는 도면이다.
도 7을 참조하면, 제1 내지 제3 사용자들(USER1, USER2, USER3)은 가상 공간에 동시에 접속할 수 있다. 제1 사용자(USER1)의 제1 디바이스(100a)의 화면 상에는 가상 공간에서의 대화 창, 즉, 채팅 공간이 열려 있다. 제2 사용자(USER2)가 "지금 뭐해?"라고 메시지를 보내고, 제3 사용자(USER3)가 "어디야?"라고 메시지를 보내고, 이어서, 제1 사용자(USER1)가 "지금 찍은 사진이야"라고 메시지를 보내면서, 예를 들어, 사진과 같은 콘텐트를 보낼 수 있다. 이때, 제1 사용자(USER1)는 해당 콘텐트를 암호화하고, 암호화된 콘텐트(EC)를 가상 공간에 보낼 수 있다.
도 8은 도 5의 콘텐트 암호화 방법에 따라 제1 디바이스(100a)에서의 암호화 요청 동작의 일 예를 나타내는 도면이다.
도 8을 참조하면, 제1 디바이스(100a)는 소정 콘텐트에 대한 사용자의 암호화 요청 제스처를 감지할 수 있다. 예를 들어, 제1 사용자(USER1)는 제1 디바이스(100a)에 디스플레이되는 가상 공간에서 "암호화 요청" 아이콘을 선택할 수 있다. 본 실시예에 따른 암호화 요청 제스처는 다양할 수 있다. 예를 들어, 암호화 요청 제스처는 탭, 더블탭, 드래그, 스와이프, 플릭, 드래그 앤드 드롭 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
여기서, "탭(tap)"은 사용자가 손가락이나 터치 도구(예컨대, 전자 펜)를 이용하여 화면을 터치한 후 움직이지 않은 채 화면에서 즉시 들어올리는 동작을 나타낸다. "더블 탭(double tap)"은 사용자가 손가락이나 터치 도구(stylus)를 이용하여 화면을 두 번 터치하는 동작을 나타낸다.
"드래그(drag)"는 사용자가 손가락이나 터치 도구를 화면에 터치한 후 터치를 유지한 상태에서 손가락이나 터치 도구를 화면 내의 다른 위치로 이동시키는 동작을 의미한다. 드래그 동작으로 인하여 오브젝트가 이동되거나 후술할 패닝 동작이 수행된다. "플릭(flick)"은 사용자가 손가락이나 터치 도구를 이용하여 임계 속도(예컨대, 100 pixel/s) 이상으로 드래그하는 동작을 나타낸다. 손가락이나 터치 도구의 이동 속도가 임계 속도(예컨대, 100 pixel/s) 이상인지에 기초하여 드래그(또는 패닝)와 플릭을 구별할 수 있다.
"드래그 앤드 드롭(drag & drop)"은 사용자가 손가락이나 터치 도구를 이용해 오브젝트를 화면 내 소정 위치에 드래그한 후 놓는 동작을 의미한다. "스와이프(swipe)"는 손가락이나 터치 도구로 화면 위의 오브젝트를 터치한 상태에서 수평 또는 수직 방향으로 일정 거리를 움직이는 동작이다. 사선 방향의 움직임은 스와이프 이벤트로 인식되지 않을 수 있다.
도 9는 도 5의 콘텐트 암호화 방법에 포함된 분배 단계의 구현 예를 나타내는 도면이다.
도 9를 참조하면, 본 실시예에서, 제1 사용자(USER1)의 제1 디바이스(100a)는 제2 및 제3 디바이스들(200a, 300a)에 제2 및 제3 부분 키들을 전송할 수 있다. 따라서, 보안 그룹(SG) 내의 임의의 디바이스를 사용하는 임의의 사용자는 전체 키를 획득할 수 없으므로, 단독으로 콘텐트에 접근할 수 없다. 다만, 보안 그룹(SG)에 포함된 복수의 디바이스들 중 임계 개수 이상의 디바이스들이 가상 공간에 접속하는 경우에만 각 디바이스들이 저장하고 있는 복수의 부분 키들을 이용하여 복호화 키를 복원할 수 있고, 복호화 키를 이용하여 암호화된 콘텐트에 접근할 수 있다.
다른 실시예에서, 제1 사용자(USER1)의 제1 디바이스(100a)는 제2 및 제3 디바이스들(200a, 300a)에 암호화된 제2 및 제3 부분 키들을 전송할 수 있다. 따라서, 보안 그룹(SG)에 속하지 않는 다른 디바이스 또는 보안 그룹(SG) 내의 다른 디바이스는 해당 부분 키를 복호화할 수 있는 키가 없으므로, 해당 부분 키를 획득할 수 없다.
다른 실시예에서, 제1 디바이스(100a)는 제2 및 제3 디바이스들(200a, 300a)에 암호화된 콘텐트를 전송할 수 있다. 따라서, 보안 그룹(SG)에 속하지 않는 다른 디바이스 또는 사용자는 해당 콘텐트를 복호화할 수 있는 키가 없으므로, 해당 콘텐트에 접근할 수 없다.
도 10은 도 5의 콘텐트 암호화 방법에 포함된 저장 단계의 구현 예를 나타내는 도면이다.
도 10을 참조하면, 제1 내지 제3 디바이스들(100a, 200a, 300a)은 각각 암호화된 콘텐트(EC)를 저장할 수 있다. 또한, 제1 내지 제3 디바이스들(100a, 200a, 300a)은 각각 제1 내지 제3 부분 키들을 저장하고 있으므로, 제1 내지 제3 디바이스들(100a, 200a, 300a)은 암호화된 콘텐트(EC)를 단독으로 복호화할 수 없다.
도 11은 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 그룹(SG)의 동작의 일 예를 나타내는 흐름도이다.
도 11을 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 개인 키를 분배하는 분산 암호화 방법으로서, 도 1의 보안 그룹(SG)에 포함된 제1 내지 제3 디바이스들(100, 200, 300)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S1110에서, 제1 디바이스(100)는 공개 키 및 개인 키로 구성된 키 쌍을 생성한다. 예를 들어, 제1 디바이스(100)는 암호화에 이용되는 공개 키(T) 및 공개 키(T)에 대응되며 복호화에 이용되는 개인 키(t)를 생성할 수 있다.
단계 S1120에서, 제1 디바이스(100)는 개인 키를 적어도 3개로 분할하여 적어도 제1 내지 제3 부분 키들을 생성한다. 예를 들어, 제1 디바이스(100)는 개인 키(t)를 적어도 3개로 분할하여 적어도 제1 내지 제3 부분 키들(t1, t2, t3)을 생성할 수 있다. 이때, 제1 디바이스(100)는 샤미르 방법(Shamir scheme)을 이용하여 개인 키(t)를 분할할 수 있다.
단계 S1130에서, 제1 디바이스(100)는 개인 키를 삭제한다. 예를 들어, 제1 디바이스(100)는 개인 키(t)를 삭제할 수 있으며, 이로써, 제1 내지 제3 디바이스들(100, 200, 300) 중 어느 하나도 개인 키(t)를 획득할 수 없고, 이에 따라, 단독으로 암호화된 콘텐트에 접근할 수 없다.
단계 S1140에서, 제1 디바이스(100)는 제2 및 제3 부분 키들을 암호화한다. 예를 들어, 제1 디바이스(100)는 전송 시의 보안을 위하여, 제2 및 제3 부분 키들(t2, t3)을 각각 암호화하여 암호화된 제2 및 제3 부분 키들을 생성할 수 있다. 이로써, 암호화된 제2 및 제3 부분 키들의 전송 단계에서 보안 그룹(SG)에 속하지 않는 다른 디바이스들은 해당 부분 키를 획득할 수 없다.
단계 S1150에서, 제1 디바이스(100)는 공개 키 및 암호화된 제2 부분 키를 제2 디바이스(200)에 전송한다. 단계 S1160에서, 제1 디바이스(100)는 공개 키 및 암호화된 제3 부분 키를 제3 디바이스(300)에 전송한다. 예를 들어, 제1 디바이스(100)는 와이파이(WiFi), 3G/LTE, 블루투스 등과 같은 무선 통신을 통해 공개 키 및 암호화된 제2 및 제3 부분 키들을 제2 및 제3 디바이스들(200, 300)에 각각 전송할 수 있다.
단계 S1170에서, 제1 디바이스(100)는 공개 키 및 제1 부분 키를 저장한다. 단계 S1180에서, 제2 디바이스(200)는 공개 키 및 제2 부분 키를 저장한다. 단계 S1190에서, 제3 디바이스(300)는 공개 키 및 제3 부분 키를 저장한다. 예를 들어, 제2 및 제3 디바이스들(200, 300)은 암호화된 제2 및 제3 부분 키들을 각각 복호화함으로써, 제2 및 제3 부분 키들을 각각 추출할 수 있다. 또한, 제2 및 제3 디바이스들(200, 300)은 공개 키(T)를 가지므로, 제1 내지 제3 디바이스들(100, 200, 300)의 제1 내지 제3 사용자들(USER1, USER2, USER3)은 누구나 공개 키(T)를 이용하여 콘텐트를 암호화할 수 있다.
도 12는 도 11의 콘텐트 암호화 방법에 따른 도 1의 보안 그룹의 동작의 일 예를 더욱 상세하게 나타내는 흐름도이다.
도 12를 참조하면, 단계 S1210a에서, 제1 디바이스(100)는 제1 확인 공개 키(K1) 및 제1 확인 개인 키(k1)를 생성한다. 여기서, 제1 확인 공개 키(K1) 및 제1 확인 개인 키(k1)로 구성된 제1 확인 키 쌍은, 제1 디바이스(100)에 설치된 제1 어플리케이션을 확인하기 위한 키 조합이다. 제2 및 제3 디바이스들(200, 300)에 각각 설치된 제2 및 제3 어플리케이션들은 제1 확인 공개 키(K1)를 통해 제1 디바이스(100)에 설치된 제1 어플리케이션을 확인 또는 식별할 수 있다.
일 실시예에서, 제1 디바이스(100)는 폰 PKI(public key infrastructure)에 제1 확인 공개 키(K1) 및 제1 확인 개인 키(k1)의 생성을 요청할 수 있다. 다른 실시예에서, 제1 디바이스(100)는 폰 PKI에 제1 확인 공개 키(K1), 제1 확인 개인 키(k1) 및 제1 확인 공개 키(K1)에 대한 제1 인증서(Certificatep1(K1))의 생성을 요청할 수 있다. 여기서, p1은 제1 디바이스(100)의 인증을 위한 키이고, 제1 인증서(Certificatep1(K1))는 제1 사용자(USER1)의 신분과 공개 키, 즉, 제1 확인 공개 키(K1)를 연결해주는 문서이다.
단계 S1210b에서, 제2 디바이스(200)는 제2 확인 공개 키(K2) 및 제2 확인 개인 키(k2)를 생성한다. 여기서, 제2 확인 공개 키(K2) 및 제2 확인 개인 키(k2)로 구성된 제2 확인 키 쌍은, 제2 디바이스(200)에 설치된 제2 어플리케이션을 확인하기 위한 키 조합이다. 제1 및 제3 디바이스들(100, 300)에 각각 설치된 제1 및 제3 어플리케이션들은 제2 확인 공개 키(K2)를 통해 제2 디바이스(200)에 설치된 제2 어플리케이션을 확인 또는 식별할 수 있다.
일 실시예에서, 제2 디바이스(200)는 폰 PKI에 제2 확인 공개 키(K2) 및 제2 확인 개인 키(k2)의 생성을 요청할 수 있다. 다른 실시예에서, 제2 디바이스(200)는 폰 PKI에 제2 확인 공개 키(K2), 제2 확인 개인 키(k2) 및 제2 확인 공개 키(K2)에 대한 제2 인증서(Certificatep2(K2))의 생성을 요청할 수 있다. 여기서, p2은 제2 디바이스(200)의 인증을 위한 키이고, 제2 인증서(Certificatep2(K2))는 제2 사용자(USER2)의 신분과 공개 키, 즉, 제2 확인 공개 키(K2)를 연결해주는 문서이다.
단계 S1210c에서, 제3 디바이스(300)는 제3 확인 공개 키(K3) 및 제3 확인 개인 키(k3)를 생성한다. 여기서, 제3 확인 공개 키(K3) 및 제3 확인 개인 키(k3)로 구성된 제3 확인 키 쌍은, 제3 디바이스(300)에 설치된 제3 어플리케이션을 확인하기 위한 키 조합이다. 제1 및 제2 디바이스들(100, 200)에 각각 설치된 제1 및 제2 어플리케이션들은 제3 확인 공개 키(K3)를 통해 제3 디바이스(300)에 설치된 제3 어플리케이션을 확인 또는 식별할 수 있다.
일 실시예에서, 제3 디바이스(300)는 폰 PKI에 제3 확인 공개 키(K3) 및 제3 확인 개인 키(k3)의 생성을 요청할 수 있다. 다른 실시예에서, 제3 디바이스(300)는 폰 PKI에 제3확인 공개 키(K3), 제3 확인 개인 키(k3) 및 제3 확인 공개 키(K3)에 대한 제3 인증서(Certificatep3(K3))의 생성을 요청할 수 있다. 여기서, p3은 제3 디바이스(300)의 인증을 위한 키이고, 제3 인증서(Certificatep3(K3))는 제3 사용자(USER3)의 신분과 공개 키, 즉, 제3 확인 공개 키(K3)를 연결해주는 문서이다. 이상에서 설명된 단계 S710a 내지 단계 S710c은 확인 키 생성 단계라고 지칭할 수 있다.
단계 S1220a에서, 제2 디바이스(200)는 제1 디바이스(100)에 제2 확인 공개 키(K2)를 전송한다. 전송된 제2 확인 공개 키(K2)는 제1 디바이스(100)에서 제2 부분 콘텐트 개인 키(t2)를 암호화하는데 이용될 수 있다. 다른 실시예에서, 제2 디바이스(200)는 제1 디바이스(100)에 제2 확인 공개 키(K2) 및 제2 인증서(Certificatep2(K2))를 전송할 수 있다.
단계 S1220b에서, 제3 디바이스(300)는 제1 디바이스(100)에 제3 확인 공개 키(K3)를 전송한다. 전송된 제3 확인 공개 키(K3)는 제1 디바이스(100)에서 제3 부분 콘텐트 개인 키(t3)를 암호화하는데 이용될 수 있다. 다른 실시예에서, 제3 디바이스(300)는 제1 디바이스(100)에 제3 확인 공개 키(K3) 및 제3 인증서(Certificatep3(K3))를 전송할 수 있다.
단계 S1230에서, 제1 디바이스(100)는 제1 내지 제3 확인 공개 키들(K1, K2, K3)을 포함하는 확인 공개 키 집합({K1, K2, K3})을 생성한다. 생성된 확인 공개 키 집합({K1, K2, K3})은 제1 내지 제3 디바이스들에 저장될 수 있다.
단계 S1240에서, 제1 디바이스(100)는 콘텐트 공개 키(T) 및 콘텐트 개인 키(t)를 생성한다. 여기서, 콘텐트 공개 키(T) 및 콘텐트 개인 키(t)로 구성된 콘텐트 키 쌍은 보안 그룹(SG)에서 공유되는 콘텐트를 암호화/복호화하는데 이용되는 키 조합이다. 구체적으로, 콘텐트 공개 키(T)는 콘텐트를 암호화하는 대칭키(s)를 암호화하는데 이용될 수 있다.
다른 실시예에서, 제1 디바이스(100)는 제1 내지 제3 확인 공개 키들(K1, K2, K3)로부터 확인 공개 키 연결(concatenate) 값(G)을 더 생성할 수 있다(즉, G=K1|K2|K3).
단계 S1250에서, 제1 디바이스(100)는 콘텐트 개인 키(t)를 적어도 3개로 분할하여, 제1 내지 제3 부분 콘텐트 개인 키들(t1, t2, t3)을 생성한다(즉, t=t1+t2+t3+...). 이때, 제1 디바이스(100)는 샤미르 방법(Shamir scheme)을 이용하여 콘텐트 개인 키(t)를 분할할 수 있다.
다른 실시예에서, 제1 디바이스(100)는 확인 공개 키 연결 값(G) 및 제1 내지 제3 부분 콘텐트 개인 키들(t1, t2, t3)에 대한 제1 내지 제3 전자 서명들을 각각 생성할 수 있다. 또 다른 실시예에서, 제1 디바이스(100)는 그룹 ID(GroupID), 확인 공개 키 연결 값(G) 및 제1 내지 제3 부분 콘텐트 개인 키(t1, t2, t3)에 대한 전자 서명을 생성할 수 있다. 구체적으로, 제1 전자 서명은 E-Signt(GroupID|G|t1)이고, 제2 전자 서명은 E-Signt(GroupID|G|t2)이며, 제3 전자 서명은 E-Signt(GroupID|G|t3)이다.
단계 S1260에서, 제1 디바이스(100)는 콘텐트 개인 키(t)를 삭제한다. 이로써, 콘텐트 개인 키(t)는 어느 누구도 알 수 없으며, 가상 공간에 접속한 제1 내지 제3 디바이스들(100, 200, 300) 중 임계 개수 이상의 디바이스들로부터 복호화 승인을 획득하지 않는 이상, 어느 누구도 단독으로 암호화된 콘텐트를 복호화할 수 없다. 다른 실시예에서, 제1 디바이스(100)는 콘텐트 개인 키(t)를 트러스트존과 같은 보안 구역에 저장할 수 있다.
단계 S1270에서, 제1 디바이스(100)는 제2 및 제3 확인 공개 키들(K2, K3)을 이용하여 제2 및 제3 부분 콘텐트 개인 키들(t2, t3)을 각각 암호화한다. 이로써, 제2 부분 콘텐트 개인 키 암호화 값(EncK2(t2)) 및 제3 부분 콘텐트 개인 키 암호화 값(EncK3(t3))이 생성된다. 이때, 제2 부분 콘텐트 개인 키 암호화 값(EncK2(t2))은 제2 확인 공개 키(K2)에 대응하는 제2 확인 개인 키(k2)를 이용하여 복호화될 수 있으므로, 제2 확인 개인 키(k2)를 가지고 있는 제2 디바이스(200)에서만 복호화될 수 있다. 또한, 제3 부분 콘텐트 개인 키 암호화 값(EncK3(t3))은 제3 확인 공개 키(K3)에 대응하는 제3 확인 개인 키(k3)를 이용하여 복호화될 수 있으므로, 제3 확인 개인 키(k3)를 가지고 있는 제3 디바이스(300)에서만 복호화될 수 있다.
단계 S1280a에서, 제1 디바이스(100)는 확인 공개 키 집합({K1, K2, K3}), 콘텐트 공개 키(T) 및 제2 부분 콘텐트 개인 키 암호화 값(EncK2(t2))을 제2 디바이스(200)에 전송한다. 다른 실시예에서, 제1 디바이스(100)는 제2 전자 서명(E-Signt(GroupID|G|t2))을 제2 디바이스(200)에 더 전송할 수 있다.
단계 S1280b에서, 제1 디바이스(100)는 확인 공개 키 집합({K1, K2, K3}), 콘텐트 공개 키(T) 및 제3 부분 콘텐트 개인 키 암호화 값(EncK3(t3))을 제3 디바이스(300)에 전송한다. 다른 실시예에서, 제1 디바이스(100)는 제3 전자 서명(E-Signt(GroupID|G|t3))을 제3 디바이스(300)에 더 전송할 수 있다. 이상에서 설명된 단계 S1010a 내지 단계 S1080b은 보안 그룹(SG)의 생성 또는 초기화 단계라고 지칭할 수 있다.
단계 S1290a에서, 제1 디바이스(100)는 확인 공개 키 집합({K1, K2, K3}), 콘텐트 공개 키(T) 및 제1 부분 콘텐트 개인 키(t1)를 저장한다. 단계 S1290b에서, 제2 디바이스(200)는 제2 부분 콘텐트 개인 키 암호화 값(EncK2(t2))을 제2 확인 개인 키(k2)로 복호화하여 제2 부분 콘텐트 개인 키(t2)를 추출하여 저장한다. 단계 S1290c에서, 제3 디바이스(300)는 제3 부분 콘텐트 개인 키 암호화 값(EncK3(t3))을 제3 확인 개인 키(k3)로 복호화하여 제3 부분 콘텐트 개인 키(t3)를 추출하여 저장한다. 일 실시예에서, 제1 내지 제3 디바이스들(100, 200, 300)은 제1 내지 제3 부분 콘텐트 개인 키들(t1, t2, t3)을 트러스트존과 같은 보안 구역에 각각 저장할 수 있다.
도 13은 도 5의 콘텐트 암호화 방법에 포함된 암호화 단계 및 암호화된 콘텐트의 저장 단계에 따른 도 1의 보안 그룹의 동작의 일 예를 나타내는 흐름도이다.
도 13을 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 도 11에 예시된 콘텐트 암호화 방법에 이어서 수행될 수 있다. 또한, 본 실시예에 따른 콘텐트 암호화 방법은 도 1의 보안 그룹(SG)에 포함된 제1 내지 제3 디바이스들(100, 200, 300)에서 시계열적으로 처리되는 단계들로 구성된다. 이하에서는, 제1 디바이스(100)에서 콘텐트를 암호화하는 동작에 대해 상술하기로 한다. 그러나, 다른 실시예에서, 제2 및 제3 디바이스들(200, 300) 중 하나도 공개 키를 이용하여 콘텐트를 암호화할 수 있다.
단계 S1310에서, 제1 디바이스(100)는 사용자 입력 또는 제1 내지 제3 디바이스들(100, 200, 300)의 상태 정보에 따라 암호화할 콘텐트를 결정한다. 구체적으로, 제1 사용자(USER1)는 사용자 입력을 통해 제1 디바이스(100) 또는 서버에 저장된 콘텐트를 암호화할 콘텐트로서 수동으로 결정할 수 있다. 또는, 제1 디바이스(100) 또는 서버에 저장된 콘텐트는 제1 내지 제3 디바이스들(100, 200, 300)의 상태 정보에 따라 암호화할 콘텐트로서 자동으로 결정될 수 있다.
예를 들어, 제1 사용자(USER1)는 가상 공간에 접속 중에 생성된 콘텐츠 중 하나를 선택하고, 선택된 콘텐트를 암호화할 콘텐트로 결정할 수 있다. 다른 예를 들어, 가상 공간에 접속 중에 생성된 사진들 중 제1 내지 제3 사용자들(USER1, USER2, USER3)이 포함된 사진이 자동으로 선택되고, 선택된 사진이 암호화할 콘텐트로 자동으로 결정될 수도 있다. 또 다른 예를 들어, 가상 공간에 접속 중에 생성된 사진들 중 제1 내지 제3 디바이스들(100, 200, 300)의 위치에서 찍힌 사진이 자동으로 선택되고, 선택된 사진이 암호화할 콘텐트로 자동으로 결정될 수 있다. 또 다른 예를 들어, 가상 공간에 접속 중에 생성된 사진들 중 제1 내지 제3 사용자들(USER1, USER2, USER3)이 가입한 SNS에서의 모임과 관련된 사진이 암호화할 콘텐트로 자동으로 결정될 수도 있다.
단계 S1320에서, 제1 디바이스(100)는 공개 키를 이용하여 콘텐트를 암호화한다. 예를 들어, 제1 디바이스(100)는 대칭 키(s)를 이용하여 콘텐트(m)를 암호화하고(즉, Encs(m)), 공개 키(T)를 이용하여 대칭 키(s)를 암호화할 수 있다(즉, EncT(s)).
단계 S1330에서, 제1 디바이스(100)는 암호화된 콘텐트를 저장한다. 예를 들어, 제1 디바이스(100)는 트러스트존과 같은 보안 구역에 암호화된 콘텐트를 저장할 수 있다.
단계 S1340에서, 제1 디바이스(100)는 제2 디바이스(200)에 암호화된 콘텐트를 전송한다. 단계 S1350에서, 제1 디바이스(100)는 제3 디바이스(300)에 암호화된 콘텐트를 전송한다. 예를 들어, 제1 디바이스(100)는 와이파이(WiFi), 3G/LTE, 블루투스 등과 같은 무선 통신을 통해 암호화된 콘텐트를 제2 및 제3 디바이스들(200, 300)에 각각 전송할 수 있다.
단계 S1360에서, 제2 디바이스(200)는 암호화된 콘텐트를 저장한다. 단계 S1370에서, 제3 디바이스(300)는 암호화된 콘텐트를 저장한다. 예를 들어, 제2 및 제3 디바이스들(200, 300)은 트러스트존과 같은 보안 구역에 암호화된 콘텐트를 저장할 수 있다.
도 14는 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 그룹의 동작의 다른 예를 나타내는 흐름도이다.
도 14를 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 공개 키를 분배하는 분산 암호화 방법으로서, 도 1의 보안 그룹(SG)에 포함된 제1 내지 제3 디바이스들(100, 200, 300)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S1410에서, 제1 디바이스(100)는 공개 키 및 개인 키로 구성된 키 쌍을 생성한다. 예를 들어, 제1 디바이스(100)는 암호화에 이용되는 공개 키(T) 및 공개 키(T)에 대응되며 복호화에 이용되는 개인 키(t)를 생성할 수 있다.
단계 S1420에서, 제1 디바이스(100)는 공개 키를 적어도 3개로 분할하여 적어도 제1 내지 제3 부분 키들을 생성한다. 예를 들어, 제1 디바이스(100)는 공개 키(T)를 적어도 3개로 분할하여 적어도 제1 내지 제3 부분 키들(T1, T2, T3)을 생성할 수 있다. 이때, 제1 디바이스(100)는 샤미르 방법을 이용하여 공개 키(T)를 분할할 수 있다.
단계 S1430에서, 제1 디바이스(100)는 공개 키를 삭제한다. 예를 들어, 제1 디바이스(100)는 공개 키(T)를 삭제할 수 있으며, 이로써, 제1 내지 제3 디바이스들(100, 200, 300) 중 어느 하나도 공개 키(T)를 획득할 수 없고, 이에 따라, 단독으로 콘텐트를 암호화할 수 없다.
단계 S1440에서, 제1 디바이스(100)는 제2 및 제3 부분 키들을 암호화한다. 예를 들어, 제1 디바이스(100)는 전송 시의 보안을 위하여, 제2 및 제3 부분 키들(T2, T3)을 각각 암호화하여 암호화된 제2 및 제3 부분 키들을 생성할 수 있다. 이로써, 암호화된 제2 및 제3 부분 키들의 전송 단계에서 보안 그룹(SG)에 속하지 않는 다른 디바이스들은 해당 부분 키를 획득할 수 없다.
단계 S1450에서, 제1 디바이스(100)는 암호화된 제2 부분 키를 제2 디바이스(200)에 전송한다. 단계 S1460에서, 제1 디바이스(100)는 암호화된 제3 부분 키를 제3 디바이스(300)에 전송한다. 예를 들어, 제1 디바이스(100)는 와이파이(WiFi), 3G/LTE, 블루투스 등과 같은 무선 통신을 통해 암호화된 제2 및 제3 부분 키들을 제2 및 제3 디바이스들(200, 300)에 각각 전송할 수 있다.
단계 S1470에서, 제1 디바이스(100)는 제1 부분 키를 저장한다. 단계 S1480에서, 제2 디바이스(200)는 제2 부분 키를 저장한다. 단계 S1490에서, 제3 디바이스(300)는 제3 부분 키를 저장한다. 예를 들어, 제2 및 제3 디바이스들(200, 300)은 암호화된 제2 및 제3 부분 키들을 각각 복호화함으로써, 제2 및 제3 부분 키들을 각각 추출할 수 있다.
도 15는 도 5의 콘텐트 암호화 방법에 포함된 암호화 단계 및 암호화된 콘텐트의 저장 단계에 따른 도 1의 보안 그룹의 동작의 다른 예를 나타내는 흐름도이다.
도 15를 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 도 12에 예시된 콘텐트 암호화 방법에 이어서 수행될 수 있다. 또한, 본 실시예에 따른 콘텐트 암호화 방법은 도 1의 보안 그룹(SG)에 포함된 제1 내지 제3 디바이스들(100, 200, 300)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S1510에서, 제1 디바이스(100)는 사용자 입력 또는 제1 내지 제3 디바이스들(100, 200, 300)의 상태 정보에 따라 암호화할 콘텐트를 결정한다. 구체적으로, 제1 사용자(USER1)는 사용자 입력을 통해 가상 공간에 접속 중에 생성된 콘텐트를 암호화할 콘텐트로서 수동으로 결정할 수 있다. 또는, 가상 공간에 접속 중에 생성된 콘텐트는 제1 내지 제3 디바이스들(100, 200, 300)의 상태 정보에 따라 암호화할 콘텐트로서 자동으로 결정될 수 있다.
단계 S1520a에서, 제1 디바이스(100)는 제2 디바이스(200)에 암호화 요청 메시지를 전송한다. 단계 S1520b에서, 제1 디바이스(100)는 제3 디바이스(300)에 암호화 요청 메시지를 전송한다.
단계 S1530a에서, 제2 디바이스(200)는 제1 디바이스(100)에 제1 암호화 승인 메시지를 전송한다. 예를 들어, 제1 암호화 승인 메시지는 제2 디바이스(200)에 저장된 제2 부분 키(T2)의 암호화 값을 포함할 수 있다. 단계 S1530b에서, 제3 디바이스(300)는 제1 디바이스(100)에 제2 암호화 승인 메시지를 전송한다. 예를 들어, 제2 암호화 승인 메시지는 제3 디바이스(300)에 저장된 제3 부분 키(T3)의 암호화 값을 포함할 수 있다.
단계 S1540에서, 제1 디바이스(100)는 제1 및 제2 암호화 승인 메시지들을 기초로 공개 키를 복원한다. 예를 들어, 제1 디바이스(100)는 제1 및 제2 암호화 승인 메시지들에 각각 포함된 제2 및 제3 부분 키들(T2, T3)의 암호화 값들 및 제1 디바이스(100)에 저장된 제1 부분 키(T1)를 기초로 공개 키(T)를 복원할 수 있다(즉, T=T1+T2+T3).
단계 S1550에서, 제1 디바이스(100)는 공개 키를 이용하여 콘텐트를 암호화한다. 예를 들어, 제1 디바이스(100)는 대칭 키(s)를 이용하여 콘텐트(m)를 암호화하고(즉, AESs(m)), 복원된 공개 키(T)를 이용하여 대칭 키(s)를 암호화할 수 있다(즉, EncT(s)).
단계 S1560에서, 제1 디바이스(100)는 암호화된 콘텐트를 저장한다. 예를 들어, 제1 디바이스(100)는 트러스트존과 같은 보안 구역에 암호화된 콘텐트를 저장할 수 있다.
단계 S1570a에서, 제1 디바이스(100)는 제2 디바이스(200)에 암호화된 콘텐트를 전송한다. 단계 S1570b에서, 제1 디바이스(100)는 제3 디바이스(300)에 암호화된 콘텐트를 전송한다. 예를 들어, 제1 디바이스(100)는 와이파이(WiFi), 3G/LTE, 블루투스 등과 같은 무선 통신을 통해 암호화된 콘텐트를 제2 및 제3 디바이스들(200, 300)에 각각 전송할 수 있다.
단계 S1580a에서, 제2 디바이스(200)는 암호화된 콘텐트를 저장한다. 단계 S1580b에서, 제3 디바이스(300)는 암호화된 콘텐트를 저장한다. 예를 들어, 제2 및 제3 디바이스들(200, 300)은 트러스트존과 같은 보안 구역에 암호화된 콘텐트를 저장할 수 있다.
도 16은 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 그룹의 동작의 다른 예를 나타내는 흐름도이다.
도 16을 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 개인 키를 분배하는 변형된 분산 암호화 방법으로서, 도 1의 보안 그룹(SG)에 포함된 제1 내지 제3 디바이스들(100, 200, 300)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S1610에서, 제1 디바이스(100)는 공개 키 및 개인 키로 구성된 키 쌍을 생성한다. 예를 들어, 제1 디바이스(100)는 암호화에 이용되는 공개 키(T) 및 공개 키(T)에 대응되며 복호화에 이용되는 개인 키(t)를 생성할 수 있다.
단계 S1620에서, 제1 디바이스(100)는 개인 키를 적어도 2개로 분할하여 적어도 제1 및 제2 부분 키들을 생성한다. 예를 들어, 제1 디바이스(100)는 개인 키(t)를 적어도 2개로 분할하여 적어도 제1 및 제2 부분 키들(t1, t2)을 생성할 수 있다. 이때, 제1 디바이스(100)는 샤미르 방법을 이용하여 개인 키(t)를 분할할 수 있다.
단계 S1630에서, 제1 디바이스(100)는 제1 및 제2 부분 키들을 암호화한다. 예를 들어, 제1 디바이스(100)는 전송 시의 보안을 위하여, 제1 및 제2 부분 키들(t1, t2)을 각각 암호화하여 암호화된 제1 및 제2 부분 키들을 생성할 수 있다. 이로써, 암호화된 제1 및 제2 부분 키들의 전송 단계에서 보안 그룹(SG)에 속하지 않는 다른 디바이스들은 해당 부분 키를 획득할 수 없다.
단계 S1640a에서, 제1 디바이스(100)는 공개 키 및 암호화된 제1 부분 키를 제2 디바이스(200)에 전송한다. 단계 S1640b에서, 제1 디바이스(100)는 공개 키 및 암호화된 제2 부분 키를 제3 디바이스(300)에 전송한다. 예를 들어, 제1 디바이스(100)는 와이파이(WiFi), 3G/LTE, 블루투스 등과 같은 무선 통신을 통해 공개 키 및 암호화된 제2 및 제3 부분 키들을 제2 및 제3 디바이스들(200, 300)에 각각 전송할 수 있다.
단계 S1650a에서, 제1 디바이스(100)는 공개 키 및 개인 키를 저장한다. 예를 들어, 제1 디바이스(100)는 공개 키(T)를 이용하여 단독으로 콘텐트를 암호화할 수 있고, 개인 키(t)를 이용하여 단독으로 콘텐트를 복호화할 수도 있다. 이때, 제1 디바이스(100)의 제1 사용자(USER1)는 콘텐트에 대한 매우 높은 권한을 가지는 사람일 수 있고, 콘텐트는 매우 사적인 데이터일 수 있다. 예를 들어, 제1 사용자(USER1)는 가상 공간을 통해 의료 서비스를 제공받는 환자일 수 있다.
단계 S1650b에서, 제2 디바이스(200)는 공개 키 및 제1 부분 키를 저장한다. 단계 S1150c에서, 제3 디바이스(300)는 공개 키 및 제2 부분 키를 저장한다. 예를 들어, 제2 및 제3 디바이스들(200, 300)은 암호화된 제1 및 제2 부분 키들을 각각 복호화함으로써, 제1 및 제2 부분 키들을 각각 추출할 수 있다.
제2 및 제3 디바이스들(200, 300)은 공개 키(T)를 가지므로, 제2 및 제3 디바이스들(200, 300)의 제2 및 제3 사용자들(USER2, USER3)은 누구나 공개 키(T)를 이용하여 콘텐트를 암호화할 수 있다. 그러나, 제2 및 제3 디바이스들(200, 300)은 각각 제1 및 제2 부분 키들(t1, t2)을 가지므로, 제2 및 제3 디바이스들(200, 300)은 단독으로 콘텐트를 복호화할 수 없고, 제2 및 제3 디바이스들(200, 300)이 가상 공간에 동시에 접속하여 복호화 승인을 각각 전송하는 경우에만 콘텐트를 복호화할 수 있다. 이때, 제2 및 제3 디바이스들(200, 300)의 제2 및 제3 사용자들(USER2, USER3)은 콘텐트의 생성에 대해서는 권한이 있으나, 콘텐트의 이용에 대해서는 낮은 권한을 가지는 사람들일 수 있다. 예를 들어, 제2 및 제3 사용자들(USER2, USER3)은 가상 공간을 통해 의료 서비스를 제공하는 의사들 또는 병원 관계자들일 수 있다.
도 17은 도 5의 콘텐트 암호화 방법에 포함된 암호화 단계 및 암호화된 콘텐트의 저장 단계에 따른 도 1의 보안 그룹의 동작의 다른 예를 나타내는 흐름도이다.
도 17을 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 도 16에 예시된 콘텐트 암호화 방법에 이어서 수행될 수 있다. 또한, 본 실시예에 따른 콘텐트 암호화 방법은 도 1의 보안 그룹(SG)에 포함된 제1 내지 제3 디바이스들(100, 200, 300)에서 시계열적으로 처리되는 단계들로 구성된다. 이하에서는, 제1 디바이스(100)에서 콘텐트를 암호화하는 동작에 대해 상술하기로 한다. 그러나, 다른 실시예에서, 제2 및 제3 디바이스들(200, 300) 중 하나도 공개 키를 이용하여 콘텐트를 암호화할 수 있다.
단계 S1710에서, 제1 디바이스(100)는 사용자 입력 또는 제1 내지 제3 디바이스들(100, 200, 300)의 상태 정보에 따라 암호화할 콘텐트를 결정한다. 구체적으로, 제1 사용자(USER1)는 사용자 입력을 통해 제1 디바이스(100) 또는 서버에 저장된 콘텐트를 암호화할 콘텐트로서 수동으로 결정할 수 있다. 또는, 제1 디바이스(100) 또는 서버에 저장된 콘텐트는 제1 내지 제3 디바이스들(100, 200, 300)의 상태 정보에 따라 암호화할 콘텐트로서 자동으로 결정될 수 있다.
단계 S1720에서, 제1 디바이스(100)는 공개 키를 이용하여 콘텐트를 암호화한다. 예를 들어, 제1 디바이스(100)는 대칭 키(s)를 이용하여 콘텐트(m)를 암호화하고(즉, Encs(m)), 공개 키(T)를 이용하여 대칭 키(s)를 암호화할 수 있다(즉, EncT(s)).
단계 S1730에서, 제1 디바이스(100)는 암호화된 콘텐트를 저장한다. 예를 들어, 제1 디바이스(100)는 트러스트존과 같은 보안 구역에 암호화된 콘텐트를 저장할 수 있다.
단계 S1740에서, 제1 디바이스(100)는 제2 디바이스(200)에 암호화된 콘텐트를 전송한다. 단계 S1750에서, 제1 디바이스(100)는 제3 디바이스(300)에 암호화된 콘텐트를 전송한다. 예를 들어, 제1 디바이스(100)는 와이파이(WiFi), 3G/LTE, 블루투스 등과 같은 무선 통신을 통해 암호화된 콘텐트를 제2 및 제3 디바이스들(200, 300)에 각각 전송할 수 있다.
단계 S1760에서, 제2 디바이스(200)는 암호화된 콘텐트를 저장한다. 단계 S1770에서, 제3 디바이스(300)는 암호화된 콘텐트를 저장한다. 예를 들어, 제2 및 제3 디바이스들(200, 300)은 트러스트존과 같은 보안 구역에 암호화된 콘텐트를 저장할 수 있다.
도 18은 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 그룹의 동작의 다른 예를 나타내는 흐름도이다.
도 18을 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 대칭 키를 분배하는 분산 암호화 방법으로서, 도 1의 보안 그룹(SG)에 포함된 제1 내지 제3 디바이스들(100, 200, 300)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S1810에서, 제1 디바이스(100)는 암호화 키, 즉, 대칭 키를 생성한다. 예를 들어, 제1 디바이스(100)는 암호화에 이용되는 암호화 키(sk)를 생성할 수 있고, 생성된 암호화 키(sk)는 복호화에도 이용될 수 있다.
단계 S1820에서, 제1 디바이스(100)는 암호화 키를 적어도 3개로 분할하여 적어도 제1 내지 제3 부분 키들을 생성한다. 예를 들어, 제1 디바이스(100)는 암호화 키(sk)를 적어도 3개로 분할하여 적어도 제1 내지 제3 부분 키들(sk1, sk2, sk3)을 생성할 수 있다. 이때, 제1 디바이스(100)는 샤미르 방법을 이용하여 암호화 키(sk)를 분할할 수 있다.
단계 S1830에서, 제1 디바이스(100)는 암호화 키를 삭제한다.
단계 S1840에서, 제1 디바이스(100)는 제2 및 제3 부분 키들을 암호화한다. 예를 들어, 제1 디바이스(100)는 전송 시의 보안을 위하여, 제2 및 제3 부분 키들을 각각 암호화하여 암호화된 제2 및 제3 부분 키들(sk2, sk3)을 생성할 수 있다. 이로써, 암호화된 제2 및 제3 부분 키들의 전송 단계에서 보안 그룹(SG)에 속하지 않는 다른 디바이스들은 해당 부분 키를 획득할 수 없다.
단계 S1850에서, 제1 디바이스(100)는 제2 디바이스(200)에 암호화된 제2 부분 키를 전송한다. 단계 S1860에서, 제1 디바이스(100)는 제3 디바이스(300)에 암호화된 제3 부분 키를 전송한다. 예를 들어, 제1 디바이스(100)는 와이파이(WiFi), 3G/LTE, 블루투스 등과 같은 무선 통신을 통해 공개 키 및 암호화된 제2 및 제3 부분 키들을 제2 및 제3 디바이스들(200, 300)에 각각 전송할 수 있다.
단계 S1870에서, 제1 디바이스(100)는 제1 부분 키(sk1)를 저장한다. 단계 S1880에서, 제2 디바이스(200)는 제2 부분 키(sk2)를 저장한다. 단계 S1890에서, 제3 디바이스(300)는 제3 부분 키(sk3)를 저장한다.
제1 내지 제3 디바이스들(100, 200, 300)은 각각 제1 내지 제3 부분 키들(sk1, sk2, sk3)을 가지므로, 제1 내지 제3 디바이스들(100, 200, 300)의 제1 내지 제3 사용자들(USER1, USER2, USER3)은 단독으로 콘텐트를 암호화할 수 없고, 제1 내지 제3 디바이스들(100, 200, 300)이 가상 공간에 동시에 접속하는 경우에만 콘텐트를 암호화할 수 있다. 또한, 제1 내지 제3 디바이스들(100, 200, 300)은 대칭 암호화/복호화 방식을 이용하므로, 제1 내지 제3 디바이스들(100, 200, 300)의 제1 내지 제3 사용자들(USER1, USER2, USER3)은 단독으로 콘텐트를 복호화할 수 없고, 제1 내지 제3 디바이스들(100, 200, 300)이 가상 공간에 동시에 접속하는 경우에만 콘텐트를 복호화할 수 있다.
도 19는 도 5의 콘텐트 암호화 방법에 포함된 암호화 단계 및 암호화된 콘텐트의 저장 단계에 따른 도 1의 보안 그룹의 동작의 다른 예를 나타내는 흐름도이다.
도 19를 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 도 18에 예시된 콘텐트 암호화 방법에 이어서 수행될 수 있다. 또한, 본 실시예에 따른 콘텐트 암호화 방법은 도 1의 보안 그룹(SG)에 포함된 제1 내지 제3 디바이스들(100, 200, 300)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S1910에서, 제1 디바이스(100)는 사용자 입력 또는 제1 내지 제3 디바이스들(100, 200, 300)의 상태 정보에 따라 암호화할 콘텐트를 결정한다. 구체적으로, 제1 사용자(USER1)는 사용자 입력을 통해 제1 디바이스(100) 또는 서버에 저장된 콘텐트를 암호화할 콘텐트로서 수동으로 결정할 수 있다. 또는, 제1 디바이스(100) 또는 서버에 저장된 콘텐트는 제1 내지 제3 디바이스들(100, 200, 300)의 상태 정보에 따라 암호화할 콘텐트로서 자동으로 결정될 수 있다.
단계 S1920a에서, 제1 디바이스(100)는 제2 디바이스(200)에 암호화 요청 메시지를 전송한다. 단계 S1920b에서, 제1 디바이스(100)는 제3 디바이스(300)에 암호화 요청 메시지를 전송한다.
단계 S1930a에서, 제2 디바이스(200)는 제1 디바이스(100)에 제1 암호화 승인 메시지를 전송한다. 예를 들어, 제1 암호화 승인 메시지는 제2 디바이스(200)에 저장된 제2 부분 키(sk2)의 암호화 값을 포함할 수 있다. 단계 S1930b에서, 제3 디바이스(300)는 제1 디바이스(100)에 제2 암호화 승인 메시지를 전송한다. 예를 들어, 제2 암호화 승인 메시지는 제3 디바이스(300)에 저장된 제3 부분 키(sk3)의 암호화 값을 포함할 수 있다.
단계 S1940에서, 제1 디바이스(100)는 제1 및 제2 암호화 승인 메시지들을 기초로 공개 키를 복원한다. 예를 들어, 제1 디바이스(100)는 제1 및 제2 암호화 승인 메시지들에 각각 포함된 제2 및 제3 부분 키들(sk2, sk3)의 암호화 값들 및 제1 디바이스(100)에 저장된 제1 부분 키(sk1)를 기초로 암호화 키(sk)를 복원할 수 있다(즉, sk=sk1+sk2+sk3).
단계 S1950에서, 제1 디바이스(100)는 암호화 키를 이용하여 콘텐트를 암호화한다. 예를 들어, 제1 디바이스(100)는 대칭 키(s)를 이용하여 콘텐트(m)를 암호화하고(즉, Encs(m)), 복원된 암호화 키(sk)를 이용하여 대칭 키(s)를 암호화할 수 있다(즉, Encsk(s)).
단계 S1960에서, 제1 디바이스(100)는 암호화된 콘텐트를 저장한다. 예를 들어, 제1 디바이스(100)는 트러스트존과 같은 보안 구역에 암호화된 콘텐트를 저장할 수 있다.
단계 S1970a에서, 제1 디바이스(100)는 제2 디바이스(200)에 암호화된 콘텐트를 전송한다. 단계 S1970b에서, 제1 디바이스(100)는 제3 디바이스(300)에 암호화된 콘텐트를 전송한다. 예를 들어, 제1 디바이스(100)는 와이파이(WiFi), 3G/LTE, 블루투스 등과 같은 무선 통신을 통해 암호화된 콘텐트를 제2 및 제3 디바이스들(200, 300)에 각각 전송할 수 있다.
단계 S1980a에서, 제2 디바이스(200)는 암호화된 콘텐트를 저장한다. 단계 S1980b에서, 제3 디바이스(300)는 암호화된 콘텐트를 저장한다. 예를 들어, 제2 및 제3 디바이스들(200, 300)은 트러스트존과 같은 보안 구역에 암호화된 콘텐트를 저장할 수 있다.
도 20은 도 5의 콘텐트 암호화 방법의 일 변형 예에 따른 도 1의 보안 그룹의 동작의 일 예를 나타내는 흐름도이다.
도 20을 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 보안 그룹에 신규 멤버를 추가하는 방법으로서, 도 11의 콘텐트 암호화 방법에 따른 보안 그룹의 동작에 이어서 수행될 수 있다. 본 실시예는 도 1의 보안 그룹(SG)에 포함된 제1 내지 제3 디바이스들(100, 200, 300)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S2010에서, 제4 디바이스(500)는 제4 확인 공개 키 및 제4 확인 개인 키를 생성한다. 이때, 제4 디바이스(500)는 보안 그룹(SG)에 가입하고자 하는 신규 멤버인 제4 사용자(USER4)의 디바이스이다. 여기서, 제4 확인 공개 키(K4) 및 제1 확인 개인 키(k4)로 구성된 제4 확인 키 쌍은, 제4 디바이스(500)에 설치된 제4 어플리케이션을 확인하기 위한 키 조합이다. 제1 내지 제3 디바이스들(100, 200, 300)에 각각 설치된 제1 내지 제3 어플리케이션들은 제4 확인 공개 키(K4)를 통해 제4 디바이스(500)에 설치된 제4 어플리케이션을 확인 또는 식별할 수 있다.
일 실시예에서, 제4 디바이스(500)는 폰 PKI에 제4 확인 공개 키(K4) 및 제4 확인 개인 키(k4)의 생성을 요청할 수 있다. 다른 실시예에서, 제4 디바이스(500)는 폰 PKI에 제4 확인 공개 키(K4), 제4 확인 개인 키(k4) 및 제4 확인 공개 키(K4)에 대한 제4 인증서(Certificatep4(K4))의 생성을 요청할 수 있다. 여기서, p4은 제4 디바이스(500)의 인증을 위한 키이고, 제4 인증서(Certificatep4(K4))는 제4 사용자(USER4)의 신분과 공개 키, 즉, 제4 확인 공개 키(K4)를 연결해주는 문서이다.
단계 S2020에서, 제4 디바이스(500)는 제1 디바이스(100)에 제4 확인 공개 키(K4)를 전송한다. 전송된 제4 확인 공개 키(K4)는 제1 디바이스(100)에서 제4 부분 콘텐트 개인 키(t4)를 암호화하는데 이용될 수 있다. 다른 실시예에서, 제4 디바이스(500)는 제1 디바이스(100)에 제4 확인 공개 키(K4) 및 제4 인증서(Certificatep4(K4))를 전송할 수 있다.
단계 S2030a에서, 제2 디바이스(200)는 제1 디바이스(100)에 제1 추가 승인 메시지를 전송한다. 예를 들어, 제1 추가 승인 메시지는 제2 디바이스(200)에 저장된 제2 부분 키(t2)의 암호화 값을 포함할 수 있다. 구체적으로, 제1 추가 승인 메시지는 제2 부분 키(t2)를 제1 확인 공개 키(K1)로 암호화한 값(EncK1(t2))일 수 있다.
단계 S2030b에서, 제3 디바이스(300)는 제1 디바이스(100)에 제2 추가 승인 메시지를 전송한다. 예를 들어, 제2 추가 승인 메시지는 제3 디바이스(300)에 저장된 제3 부분 키(t3)의 암호화 값을 포함할 수 있다. 구체적으로, 제2 추가 승인 메시지는 제3 부분 키(t3)를 제1 확인 공개 키(K1)로 암호화한 값(EncK1(t3))일 수 있다.
단계 S2040에서, 제1 디바이스(100)는 제1 및 제2 추가 승인 메시지들을 이용하여 콘텐트 개인 키를 복원한다. 구체적으로, 제1 디바이스(100)는 제1 확인 공개 키(K1)를 이용하여 제1 및 제2 추가 승인 메시지들에 포함된 제2 및 제3 부분 키들의 암호화 값(EncK1(t2), EncK1(t3))을 복호화하여 제2 및 제3 부분 키들(t2, t3)을 복원할 수 있다. 이어서, 제1 디바이스(100)는 제1 내지 제3 부분 키들(t1, t2, t3)로부터 콘텐트 개인 키(t)를 복원할 수 있다.
단계 S2050에서, 제1 디바이스(100)는 콘텐트 개인 키(t)를 적어도 4개로 재 분할하여, 제1 내지 제4 신규 부분 콘텐트 개인 키들(t1', t2', t3', t4')을 생성한다(즉, t=t1'+t2'+t3'+t4'...). 이때, 제1 디바이스(100)는 샤미르 방법을 이용하여 콘텐트 개인 키(t)를 재 분할할 수 있다.
단계 S2060에서, 제1 디바이스(100)는 콘텐트 개인 키(t)를 삭제한다. 이로써, 콘텐트 개인 키(t)는 어느 누구도 알 수 없으며, 제1 내지 제4 디바이스들(100, 200, 300, 500) 중 임계 개수 이상의 디바이스들이 가상 공간에 동시에 접속하지 않는 이상, 어느 누구도 단독으로 암호화된 콘텐트를 복호화할 수 없다. 다른 실시예에서, 제1 디바이스(100)는 콘텐트 개인 키(t)를 트러스트존과 같은 보안 구역에 저장할 수 있다.
단계 S2070에서, 제1 디바이스(100)는 제2 내지 제4 확인 공개 키들(K2, K3, K4)을 이용하여 제2 내지 제4 신규 부분 콘텐트 개인 키들(t2', t3', t4')을 각각 암호화한다. 이로써, 제2 신규 부분 콘텐트 개인 키 암호화 값(EncK2(t2')), 제3 신규 부분 콘텐트 개인 키 암호화 값(EncK3(t3')) 및 제4 신규 부분 콘텐트 개인 키 암호화 값(EncK2(t4'))이 생성된다.
이때, 제2 신규 부분 콘텐트 개인 키 암호화 값(EncK2(t2'))은 제2 확인 공개 키(K2)에 대응하는 제2 확인 개인 키(k2)를 이용하여 복호화될 수 있으므로, 제2 확인 개인 키(k2)를 가지고 있는 제2 디바이스(200)에서만 복호화될 수 있다. 또한, 제3 부분 콘텐트 개인 키 암호화 값(EncK3(t3'))은 제3 확인 공개 키(K3)에 대응하는 제3 확인 개인 키(k3)를 이용하여 복호화될 수 있으므로, 제3 확인 개인 키(k3)를 가지고 있는 제3 디바이스(300)에서만 복호화될 수 있다. 또한, 제4 부분 콘텐트 개인 키 암호화 값(EncK3(t4'))은 제4 확인 공개 키(K4)에 대응하는 제4 확인 개인 키(k4)를 이용하여 복호화될 수 있으므로, 제4 확인 개인 키(k4)를 가지고 있는 제4 디바이스(500)에서만 복호화될 수 있다.
단계 S2080a에서, 제1 디바이스(100)는 제2 신규 부분 콘텐트 개인 키 암호화 값(EncK2(t2'))을 제2 디바이스(200)에 전송한다. 단계 S2080b에서, 제1 디바이스(100)는 제3 신규 부분 콘텐트 개인 키 암호화 값(EncK3(t3'))을 제3 디바이스(300)에 전송한다. 단계 S2080c에서, 제1 디바이스(100)는 제4 신규 부분 콘텐트 개인 키 암호화 값(EncK3(t4'))을 제4 디바이스(500)에 전송한다.
단계 S2090a에서, 제1 디바이스(100)는 제1 신규 부분 콘텐트 개인 키(t1')를 저장한다. 단계 S2090b에서, 제2 디바이스(200)는 제2 신규 부분 콘텐트 개인 키 암호화 값(EncK2(t2'))을 제2 확인 개인 키(k2)로 복호화하여 제2 신규 부분 콘텐트 개인 키(t2')를 추출하여 저장한다. 단계 S2090c에서, 제3 디바이스(300)는 제3 신규 부분 콘텐트 개인 키 암호화 값(EncK3(t3'))을 제3 확인 개인 키(k3)로 복호화하여 제3 신규 부분 콘텐트 개인 키(t3')를 추출하여 저장한다. 단계 S2090d에서, 제4 디바이스(500)는 제4 신규 부분 콘텐트 개인 키 암호화 값(EncK4(t4'))을 제4 확인 개인 키(k4)로 복호화하여 제4 신규 부분 콘텐트 개인 키(t4')를 추출하여 저장한다. 일 실시예에서, 제1 내지 제4 디바이스들(100, 200, 300, 500)은 제1 내지 제4 신규 부분 콘텐트 개인 키들(t1', t2', t3', t4')을 트러스트존과 같은 보안 구역에 각각 저장할 수 있다.
상술한 바와 같이, 단계들 S2010 내지 S2090d를 통해 제4 디바이스(500)는 보안 그룹(SG)에 추가될 수 있다. 다른 실시예에서, 보안 그룹(SG)의 멤버 추가에도 불구하고, 복호화하는데 필요한 임계 개수가 동일할 경우, 제1 내지 제3 부분 콘텐트 개인 키(t1, t2, t3)의 변화 없이, 제4 부분 콘텐트 개인 키를 생성할 수 있다. 이로써, 제2 및 제3 디바이스들(200, 300)과의 트랜잭션(transactions)을 피할 수 있다.
도 21은 도 5의 콘텐트 암호화 방법의 다른 변형 예에 따른 도 1의 보안 그룹의 동작의 일 예를 나타내는 흐름도이다.
도 21을 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 보안 그룹에 포함된 멤버를 폐기(revoke)하는 방법으로서, 도 11의 콘텐트 암호화 방법에 따른 보안 그룹의 동작에 이어서 수행될 수 있다. 예를 들어, 본 실시예는 도 1의 보안 그룹(SG)에 포함된 제1 내지 제3 디바이스들(100, 200, 300) 중 제2 디바이스(200)를 폐기하는 방법일 수 있고, 도 1의 보안 그룹(SG)에 포함된 제1 내지 제3 디바이스들(100, 200, 300) 및 새로 추가된 제4 디바이스(500)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S2110a에서, 제1 디바이스(100)는 제3 디바이스(300)에 제2 디바이스(200)에 대한 폐기 요청 메시지를 전송한다. 이때, 폐기 요청 메시지는 제1 확인 공개 키(K1), 그룹 ID(GroupID) 및 제1 확인 공개 키(K1), 제3 확인 공개 키(K3), 제2 확인 공개 키(K2) 및 그룹 ID에 대한 전자 서명(E-SignK1(K1|K3|K2|GroupID))을 포함할 수 있다.
단계 S2110b에서, 제1 디바이스(100)는 제4 디바이스(500)에 제2 디바이스(200)에 대한 폐기 요청 메시지를 전송한다. 이때, 폐기 요청 메시지는 제1 확인 공개 키(K1), 그룹 ID(GroupID) 및 제1 확인 공개 키(K1), 제4 확인 공개 키(K4), 제2 확인 공개 키(K2) 및 그룹 ID에 대한 전자 서명(E-SignK1(K1|K4|K2|GroupID))을 포함할 수 있다.
이와 같이, 제1 디바이스(100)는 폐기하고자 하는 제2 디바이스(200)를 제외하고 보안 그룹(SG)의 나머지 멤버들에게 제2 디바이스(200)에 대한 폐기 요청 메시지를 전송할 수 있다.
단계 S2120a에서, 제3 디바이스(300)는 제1 디바이스(100)에 제1 폐기 승인 메시지를 전송한다. 이때, 제1 폐기 승인 메시지는 제3 부분 콘텐트 개인 키(t3)를 제1 확인 공개 키(K1)로 암호화한 값(EncK1(t3)) 및 이에 대한 전자 서명을 포함할 수 있다. 단계 S2120b에서, 제4 디바이스(500)는 제1 디바이스(100)에 제2 폐기 승인 메시지를 전송한다. 이때, 제2 폐기 승인 메시지는 제4 부분 콘텐트 개인 키(t4)를 제1 확인 공개 키(K1)로 암호화한 값(EncK1(t4)) 및 이에 대한 전자 서명을 포함할 수 있다.
단계 S2130에서, 제1 디바이스(100)는 제2 내지 제4 부분 콘텐트 개인 키들(t2, t3, t4)을 추출한다. 구체적으로, 제1 디바이스(100)는 제1 확인 개인 키(k1)를 이용하여 암호화된 제2 내지 제4 부분 콘텐트 개인 키들(EncK1(t2), EncK1(t3), EncK1(t4))을 각각 복호화하여 제2 내지 제4 부분 콘텐트 개인 키들(t2, t3, t4)을 추출할 수 있다.
단계 S2140에서, 제1 디바이스(100)는 제1 부분 콘텐트 개인 키(t1)와 제2 내지 제4 부분 콘텐트 개인 키들(t2, t3, t4)로부터 콘텐트 개인 키(t)를 복구한다.
단계 S2150에서, 제1 디바이스(100)는 인증서 폐기 목록(Certificate Revocation List, CRL)을 갱신한다. 다른 실시예에서, 제1 디바이스(100)는 인증서 폐기 목록에 대한 전자 서명(E-Signt(CRL))을 더 생성할 수 있다.
단계 S2160a에서, 제1 디바이스(100)는 제3 디바이스(300)에 갱신된 인증서 폐기 목록을 전송한다. 다른 실시예에서, 제1 디바이스(100)는 제3 디바이스(300)에 갱신된 인증서 폐기 목록 및 인증서 폐기 목록에 대한 전자 서명(E-Signt(CRL))을 전송할 수 있다. 단계 S2160b에서, 제1 디바이스(100)는 제4 디바이스(500)에 갱신된 인증서 폐기 목록을 전송한다. 다른 실시예에서, 제1 디바이스(100)는 제4 디바이스(500)에 갱신된 인증서 폐기 목록 및 인증서 폐기 목록에 대한 전자 서명(E-Signt(CRL))을 전송할 수 있다.
도 22는 도 5의 콘텐트 암호화 방법의 다른 변형 예에 따른 도 1의 보안 그룹의 동작의 일 예를 나타내는 흐름도이다.
도 22를 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 보안 그룹에 포함된 복수의 디바이스들 중 하나를 분실한 경우 클라우드 서비스를 이용하여 키를 복구(recovery)하는 방법으로서, 도 11의 콘텐트 암호화 방법에 따른 보안 그룹의 동작에 이어서 수행될 수 있다. 본 실시예는 도 1의 보안 그룹(SG)에 포함된 제1 내지 제3 디바이스들(100, 200, 300)에서 시계열적으로 처리되는 단계들로 구성된다. 본 실시예에서, 서버(400)는 클라우드 서버일 수 있다.
단계 S2210에서, 제1 디바이스(100)는 서버(400)에 변형 암호화 키(ti)를 전송한다. 단계 S2220에서, 서버(400)는 변형 암호화 키(ti)를 저장한다. 예를 들어, 변형 암호화 키(ti)는 콘텐트 개인 키(t)에 대응하는 값일 수 있으며, 구체적으로, 제1 내지 제3 확인 공개 키들(K1, K2, K3)로 암호화된 콘텐트 개인 키(EncK1(EncK2(EncK3(t))))일 수 있다.
단계 S2230에서, 제1 디바이스(100)는 리커버리 키(v)를 생성한다. 단계 S2240에서, 제1 디바이스(100)는 서버(400)에 리커버리 키(v)를 전송한다. 단계 S2250에서, 서버(400)는 리커버리 키(v)를 이용하여 변형 암호화 키를 암호화한다. 예를 들어, 암호화된 변형 암호화 키를 Encv(EncK1(EncK2(EncK3(t))))일 수 있다.
단계 S2260a에서, 서버(400)는 제1 디바이스(100)에 암호화된 변형 암호화 키(Encv(EncK1(EncK2(EncK3(t)))))를 전송한다. 단계 S2260b에서, 서버(400)는 제2 디바이스(200)에 암호화된 변형 암호화 키(Encv(EncK1(EncK2(EncK3(t)))))를 전송한다. 단계 S2260c에서, 서버(400)는 제3 디바이스(300)에 암호화된 변형 암호화 키(Encv(EncK1(EncK2(EncK3(t)))))를 전송한다.
단계 S2270a에서 제1 디바이스(100)는 제1 확인 개인 키(k1)를 이용하여 암호화된 변형 암호화 키(Encv(EncK1(EncK2(EncK3(t)))))를 복호화하여, 제1 복호화 결과(Deck1(Encv(EncK1(EncK2(EncK3(t))))))를 획득한다. 단계 S2270b에서 제2 디바이스(200)는 제2 확인 개인 키(k2)를 이용하여 암호화된 변형 암호화 키(Encv(EncK1(EncK2(EncK3(t)))))를 복호화하여, 제2 복호화 결과(Deck2(Encv(EncK1(EncK2(EncK3(t))))))를 획득한다. 단계 S2270c에서 제3 디바이스(300)는 제3 확인 개인 키(k3)를 이용하여 암호화된 변형 암호화 키(Encv(EncK1(EncK2(EncK3(t)))))를 복호화하여, 제3 복호화 결과(Deck3(Encv(EncK1(EncK2(EncK3(t))))))를 획득한다.
단계 S2280a에서, 제2 디바이스(200)는 제1 디바이스(100)에 복호화 결과(Deck2(Encv(EncK1(EncK2(EncK3(t))))))를 전송한다. 단계 S2080b에서, 제3 디바이스(300)는 제1 디바이스(100)에 복호화 결과(Deck3(Encv(EncK1(EncK2(EncK3(t))))))를 전송한다. 이와 같이, 각 디바이스는 해당 확인 개인 키를 이용하여 암호화된 변형 암호화 키(Encv(EncK1(EncK2(EncK3(t)))))를 단계적으로 복호화하며, 결과적으로, 제1 디바이스(100)는 Encv(t)를 획득할 수 있다.
단계 S2290에서, 제1 디바이스(100)는 리커버리 키(v)를 이용하여 암호화 키를 최종적으로 복원한다. 예를 들어, 제1 디바이스(100)는 리커버리 키(v)를 이용하여 Encv(t)를 복호화함으로써 콘텐트 개인 키(t)를 복원할 수 있다(즉, Decv(Encv(t))=t).
도 23은 도 5의 콘텐트 암호화 방법의 다른 변형 예에 따른 도 1의 보안 그룹의 동작의 일 예를 나타내는 흐름도이다.
도 23을 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 보안 그룹에 포함된 복수의 디바이스들을 사용하는 복수의 사용자들 중 하나의 사용자가 소유하는 신규 디바이스를 추가하는 방법으로서, 도 11의 콘텐트 암호화 방법에 따른 보안 그룹의 동작에 이어서 수행될 수 있다. 예를 들어, 본 실시예는 도 1의 보안 그룹(SG)에 포함된 제1 디바이스(100)의 제1 사용자(USER1)가 소유하는 다른 디바이스인 제1 추가 디바이스(150)를 보안 그룹(SG)에 추가하는 방법일 수 있고, 제1 디바이스(100) 및 제1 추가 디바이스(150)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S2310a에서, 제1 디바이스(100)에 PIN을 입력한다. 단계 S2310b에서, 제1 추가 디바이스(150)에 PIN을 입력한다. 이때, 제1 디바이스(100) 및 제1 추가 디바이스(150)에 입력되는 PIN은 동일할 수 있다.
단계 S2320에서, 제1 디바이스(100)는 제1 추가 디바이스(150)에 제1 확인 공개 키(K1), 제1 확인 개인 키(k1), 제1 부분 콘텐트 개인 키(t1) 및 확인 공개 키 집합({K1, K2, K3})을 전송한다. 다른 실시예에서, 제1 디바이스(100)는 제1 확인 개인 키(k1) 및 제1 부분 콘텐트 개인 키(t1)를 암호화할 수 있고, 제1 디바이스(100)는 제1 추가 디바이스(150)에 암호화된 제1 확인 개인 키 및 암호화된 제1 부분 콘텐트 개인 키를 전송할 수 있다.
도 24는 본 개시의 일 실시예에 따른 콘텐트 복호화 방법을 나타내는 순서도이다.
도 24를 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 복수의 디바이스들을 포함하는 보안 그룹이 가상 공간에서 공유 가능한 암호화된 콘텐트를 복호화하기 위한 방법으로서, 서버 또는 복수의 디바이스들 중 하나에서 수행되는 아래의 단계들을 포함한다. 예를 들어, 본 실시예에 따른 콘텐트 복호화 방법은 도 1의 보안 그룹(SG)에 포함된 제1 디바이스(100)에서 시계열적으로 처리되는 단계들을 포함할 수 있다. 또한, 본 실시예에 따른 콘텐트 복호화 방법은 도 5의 콘텐트 암호화 방법에 대응될 수 있다.
단계 S2410에서, 복수의 디바이스들 중 적어도 하나로부터 복호화 요청을 수신한다. 구체적으로, 가상 공간에 접속한 제1 내지 제3 디바이스들(100, 200, 300) 중 제1 디바이스(100)가 복호화 요청 메시지를 전송할 수 있다.
단계 S2420에서, 복수의 디바이스들 중 임계 개수 이상의 디바이스들의 복호화 승인들을 원격으로 획득한다. 구체적으로, 제1 디바이스(100)는 가상 공간에 접속한 제1 내지 제3 디바이스들(100, 200, 300) 중 임계 개수 이상의 디바이스들로부터 복호화 승인들을 원격으로 획득할 수 있다. 이때, 임계 개수는 예를 들어, 2일 수 있다.
보안 그룹(SG)이 2 이상의 정수인 N개의 디바이스들을 포함할 경우, 임계 개수는 2 이상 N 이하의 정수일 수 있다. 따라서, 예를 들어, N이 2인 경우, 임계 개수는 2일 수 있다. 한편, N이 2보다 큰 경우, 임계 개수는 2 이상이고 N 이하일 수 있다.
단계 S2430에서, 복호화 승인들에 각각 포함된 복수의 부분 키들로부터 복호화 키를 복원한다. 일 실시예에서, 콘텐트 복호화 방법은 비대칭 복호화 방식에 따라 콘텐트를 복호화할 수 있다. 이때, 복수의 부분 키들은 복수의 부분 개인 키들에 대응될 수 있고, 복호화 키는 개인 키일 수 있다. 다른 실시예에서, 콘텐트 복호화 방법은 비대칭 복호화 방식에 따라 콘텐트를 복호화할 수 있다. 이때, 복수의 부분 키들은 복수의 부분 암호화 키들에 대응될 수 있고, 이때, 복호화 키는 암호화 키일 수 있다.
단계 S2440에서, 복원된 복호화 키를 이용하여 암호화된 콘텐트를 복호화한다. 구체적으로, 제1 내지 제3 디바이스들(100, 200, 300)은 복원된 복호화 키를 이용하여 제1 내지 제3 디바이스들(100, 200, 300) 중 적어도 하나 또는 서버에 저장된 암호화된 콘텐트를 복호화할 수 있다. 예를 들어, 비대칭 복호화 방식인 경우, 제1 내지 제3 디바이스들(100, 200, 300)은 복원된 개인 키를 이용하여 콘텐트를 복호화할 수 있다. 다른 예를 들어, 대칭 복호화 방식인 경우, 제1 내지 제3 디바이스들(100, 200, 300)은 대칭 키인 암호화 키를 이용하여 콘텐트를 복호화할 수 있다.
도 25는 도 24의 콘텐트 복호화 방법에 따른 구현 예를 나타내는 도면이다.
도 25를 참조하면, 2510 단계에서, 가상 공간에서 생성된 콘텐트가 암호화된 상태(EC)로 저장될 수 있다. 2520 단계에서, 예를 들어, 제1 사용자(USER1)는 다양한 어플리케이션들(APP1, APP2, APP3, APP4) 중 하나를 통해 가상 공간에 접속한 다른 사용자들, 즉, 제2 내지 제4 사용자들(USER2, USER3, USER4)에게 복호화 요청을 할 수 있다.
2530 단계에서, 제2 내지 제4 사용자들(USER2, USER3, USER4)의 제2 내지 제4 디바이스들에 각각 저장된 제2 내지 제4 부분 키들 및 제1 디바이스(100a)에 저장된 제1 부분 키로부터 복호화 키(DK)를 획득할 수 있다.
2540 단계에서, 제1 사용자(USER1)는 복호화 키(DK)를 이용하여 암호화된 콘텐트를 복호화하여 복호화된 콘텐트(DC)를 획득할 수 있다. 이때, 복호화된 콘텐트(DC)의 재생 시간에 대해서 시간 제한이 설정될 수 있고, 이로써, 복호화된 콘텐트(DC)가 의도치 않게 외부로 노출되는 것을 방지할 수 있다.
도 26은 도 24의 콘텐트 복호화 방법에 따른 제1 디바이스(100a)에서의 복호화 요청 동작의 일 예를 나타내는 도면이다.
도 26을 참조하면, 제1 디바이스(100a)는 소정의 콘텐트에 대한 사용자의 복호화 요청 제스처를 감지할 수 있다. 예를 들어, 제1 사용자(USER1)는 제1 디바이스(100a)에 디스플레이되는 가상 공간에서 "복호화 요청" 아이콘을 선택할 수 있다. 본 실시예에 따른 복호화 요청 제스처는 다양할 수 있다. 예를 들어, 복호화 요청 제스처는 탭, 더블탭, 드래그, 스와이프, 플릭, 드래그 앤드 드롭 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
도 27은 도 24의 콘텐트 복호화 방법에 따른 승인 동작의 일 예를 나타내는 도면이다.
도 27을 참조하면, 제2 디바이스(200a)는 복호화 요청에 대한 승인 제스처를 감지할 수 있고, 감지 결과를 가상 공간을 통해 다른 사용자들인 제1 및 제3 사용자들(USER1, USER3)에게 전달할 수 있다. 예를 들어, 제2 사용자(USER2)는 제2 디바이스(200a)에서 디스플레이되는 가상 공간에서 "승인" 아이콘을 선택할 수 있다. 본 실시예에 따른 승인 제스처는 다양할 수 있다. 예를 들어, 승인 요청 제스처는 탭, 더블탭, 드래그, 스와이프, 플릭, 드래그 앤드 드롭 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
도 28은 도 22의 콘텐트 복호화 방법에 따른 추가 승인 동작의 일 예를 나타내는 도면이다.
도 28을 참조하면, 가상 공간에서 그룹 화상 통화가 시작될 수 있다. 이로써, 제2 사용자(USER2)의 목소리 또는 얼굴을 다른 사용자들(USER1, USER3)이 감지할 수 있다. 따라서, 그룹 화상 통화를 통해 복호화 승인을 더욱 명확하게 전달할 수 있으며, 보안의 안정성의 더욱 향상될 수 있다.
도 29는 도 24의 콘텐트 복호화 방법에 따른 추가 승인 동작의 다른 예를 나타내는 도면이다.
도 29를 참조하면, 제2 디바이스(200a)의 카메라(CAM)는 제2 사용자(USER2)의 홍채를 인식할 수 있고, 인식 결과를 가상 공간을 통해 다른 사용자들인 제1 및 제3 사용자들(USER1, USER3)에게 전달할 수 있다.
도 30은 도 24의 콘텐트 복호화 방법에 따른 추가 승인 동작의 다른 예를 나타내는 도면이다.
도 30을 참조하면, 제2 디바이스(200a)의 지문 인식 센서(SENSOR)는 제2 사용자(USER2)의 지문을 인식할 수 있고, 인식 결과를 가상 공간을 통해 다른 사용자들인 제1 및 제3 사용자들(USER1, USER3)에게 전달할 수 있다.
도 31은 도 24의 콘텐트 복호화 방법에 따른 추가 승인 동작의 다른 예를 나타내는 도면이다.
도 31을 참조하면, 제2 디바이스(200a)는 복호화 요청에 대한 추가 승인 제스처를 감지할 수 있고, 감지 결과를 가상 공간을 통해 다른 사용자들인 제1 및 제3 사용자들(USER1, USER3)에게 전달할 수 있다. 예를 들어, 제2 사용자(USER2)는 제2 디바이스(200a)에서 디스플레이되는 가상 공간에서 "핀 코드 전송" 아이콘을 선택할 수 있다. 도시되지는 않았으나, 다른 예를 들어, 제2 사용자(USER2)는 제2 디바이스(200a)에서 디스플레이되는 가상 공간에서 "비밀번호 전송" 아이콘을 선택할 수 있다. 본 실시예에 따른 추가 승인 제스처는 다양할 수 있다. 예를 들어, 승인 요청 제스처는 탭, 더블탭, 드래그, 스와이프, 플릭, 드래그 앤드 드롭 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
도 32는 도 24의 콘텐트 복호화 방법에 따른 복호화된 콘텐트의 재생 동작의 일 예를 나타내는 도면이다.
도 32를 참조하면, 제1 디바이스(100a)는 제2 및 제3 디바이스들(200, 300)로부터 복호화 승인들을 원격으로 획득한 후에, 복호화 승인들에 각각 포함된 복수의 부분 키들로부터 복호화 키를 복원하고, 복원된 복호화 키를 이용하여 암호화된 콘텐트(EC)를 복호화하여 복호화된 콘텐트(DC)를 획득할 수 있다.
구체적으로, 제1 내지 제3 사용자들(USER1, USER2, USER3)은 가상 공간에 동시에 접속할 수 있다. 제1 사용자(USER1)의 제1 디바이스(100a)의 화면 상에는 가상 공간에서의 대화 창이 열려 있다. 제1 사용자(USER1)가 "같이 볼래?"라고 메시지를 보내고, 암호화된 콘텐트(EC)를 보내면, 제2 사용자(USER2)가 "오케이"라고 메시지를 보내고, 제3 사용자(USER3)가 "좋아"라고 메시지를 보낼 수 있다. 이때, 서버(400)가 해당 콘텐트를 복호화하여 복호화된 콘텐트(DC)를 재생할 수 있다.
도 33은 도 24의 콘텐트 복호화 방법에 따른 복호화된 콘텐트에 대한 보호 동작의 일 예를 나타내는 도면이다.
도 33을 참조하면, 제1 디바이스(100a)는 복호화된 콘텐트(DC) 상에 시각적 워터마크(visible watermark)(VW)를 보여줄 수 있다. 제2 및 제3 디바이스들(200a, 300a)도 제1 디바이스(100a)와 마찬가지로 복호화된 콘텐트(DC) 상에 시각적 워터마크를 보여줄 수 있다. 시각적 워터마크는 정지 영상이나 비디오 신호에 삽입되거나 중첩되어 눈으로 볼 수 있는 워터마킹이다.
도 34는 도 24의 콘텐트 복호화 방법에 따른 복호화된 콘텐트에 대한 보호 동작의 다른 예를 나타내는 도면이다.
도 34를 참조하면, 제1 디바이스(100a)에서 복호화된 콘텐트(DC)가 재생되는 동안, 제1 디바이스(100a)는 흔들기 요청 메시지(shaking request message)(SRM)를 계속적으로 수신하고, 수신된 흔들기 요청 메시지(SRM)를 제1 디바이스(100a)의 화면 상에 디스플레이할 수 있다. 제2 및 제3 디바이스들(200a, 300a)도 제1 디바이스(100a)와 마찬가지로 복호화된 콘텐트(DC)가 재생되는 동안, 흔들기 요청 메시지(SRM)를 계속적으로 수신하고, 수신된 흔들기 요청 메시지(SRM)를 제2 및 제3 디바이스들(200a, 300a)의 화면 상에 디스플레이할 수 있다.
도 35는 도 24의 콘텐트 복호화 방법에 따른 복호화된 콘텐트에 대한 보호 동작의 다른 예를 나타내는 도면이다.
도 35를 참조하면, 제1 디바이스(100a)에서 복호화된 콘텐트(DC)가 재생되는 동안, 제1 디바이스(100a)는 시간 제한 메시지(time limit message)(TLM)를 수신하고, 수신된 시간 제한 메시지(TLM)를 제1 디바이스(100a)의 화면 상에 디스플레이할 수 있다. 여기서, 시간 제한 메시지(TLM)는 미리 설정된 임계 시간에 따라 생성될 수 있다. 제2 및 제3 디바이스들(200a, 300a)도 제1 디바이스(100a)와 마찬가지로 복호화된 콘텐트(DC)가 재생되는 동안, 시간 제한 메시지(TLM)를 수신하고, 수신된 시간 제한 메시지(TLM)를 제2 및 제3 디바이스들(200a, 300a)의 화면 상에 디스플레이할 수 있다.
다른 실시예에서, 복호화된 콘텐트가 가상 공간에서 재생되는 동안, 가상 공간에 접속한 복수의 디바이스들 중 적어도 하나의 사용자가 복호화된 콘텐트를 시청 또는 청취하고 있지 않을 경우 복호화된 콘텐트를 다시 암호화할 수도 있다.
도시되지는 않았으나 다른 실시예에서, 복호화된 콘텐트에 대해 프린트 스크린이 금지되도록 설정할 수 있다. 또 다른 실시예에서, 복호화된 콘텐트에 대해 사진 촬영이 금지되도록 설정할 수 있다. 이와 같이, 도 33 내지 도 35를 참조하여 상술된, 복호화된 콘텐트에 대한 보호 동작은 공유 콘텐트의 보안 레벨에 따라 선택적으로 수행될 수 있다. 높은 보안 레벨에 해당하는 콘텐트를 공유하는 경우에는 다양한 보호 동작을 수행할 수 있다. 이로써, 콘텐트가 보안 그룹(SG) 외부로 유출되는 것을 방지할 수 있다.
도 36은 도 24의 콘텐트 복호화 방법에 따른 도 1의 보안 시스템의 동작의 일 예를 나타내는 흐름도이다.
도 36을 참조하면, 본 실시예에 따른 콘텐트 복호화 방법은 도 1의 보안 시스템(10)에 포함된 제1 내지 제3 디바이스들(100, 200, 300) 및 서버(400)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S3610에서, 서버(400)는 제1 내지 제3 디바이스들(100, 200, 300)이 가상 공간에 접속되었는지 여부를 판단한다.
단계 S3620a에서, 제1 및 제2 디바이스들(100, 200)은 원격으로 연결된다. 단계 S3620b에서, 제1 및 제3 디바이스들(100, 300)은 원격으로 연결된다. 이로써, 제2 및 제3 디바이스들(200, 300)도 원격으로 연결된다. 이와 같이, 제1 내지 제3 디바이스들(100, 200, 300)은 가상 공간, 즉, 채팅 공간에 접속해있을 수 있다.
단계 S3630a에서, 서버(400)는 제1 디바이스(100)에게 복호화 승인 요청 메시지를 전송한다. 단계 S3630b에서, 서버(400)는 제2 디바이스(200)에게 복호화 승인 요청 메시지를 전송한다. 단계 S3630b에서, 서버(400)는 제3 디바이스(300)에게 복호화 승인 요청 메시지를 전송한다.
단계 S3640a에서, 제1 디바이스(100)는 서버(400)에게 제1 복호화 승인 메시지를 전송한다. 예를 들어, 제1 복호화 승인 메시지는 제1 디바이스(100)에 저장된 제1 부분 키(t1)의 암호화 값(Enck1(t1))을 포함할 수 있다. 단계 S3640b에서, 제2 디바이스(200)는 서버(400)에게 제2 복호화 승인 메시지를 전송한다. 예를 들어, 제2 복호화 승인 메시지는 제2 디바이스(200)에 저장된 제2 부분 키(t2)의 암호화 값(Enck2(t2))을 포함할 수 있다. 단계 S3640c에서, 제3 디바이스(300)는 서버(400)에게 제3 복호화 승인 메시지를 전송한다. 예를 들어, 제3 암호화 승인 메시지는 제3 디바이스(300)에 저장된 제3 부분 키(t3)의 암호화 값(Enck3(t3))을 포함할 수 있다.
단계 S3650에서, 서버(400)는 제1 내지 제3 복호화 승인 메시지들을 기초로 복호화 키를 복원한다. 예를 들어, 서버(400)는 제1 내지 제3 확인 공개 키들(K1, K2, K3)을 이용하여 제1 내지 제3 복호화 승인 메시지들에 각각 포함된 암호화된 제1 내지 제3 부분 키들(Enck1(t1), Enck2(t2), Enck3(t3))을 복호화함으로써, 제2 및 제3 부분 키들(t2, t3)을 획득할 수 있다. 이어서, 서버(400)는 제1 내지 제3 부분 키들(t1, t2, t3)을 기초로 복호화 키, 즉, 개인 키(t)를 복원할 수 있다(즉, t=t1+t2+t3).
단계 S3660에서, 서버(400)는 복원된 복호화 키를 이용하여 암호화된 콘텐트를 복호화한다. 예를 들어, 서버(400)는 복원된 개인 키(t)를 이용하여 대칭 키(s)를 복호화하고(즉, Dect(EncT(s))=s), 복호화된 대칭 키(s)를 이용하여 암호화된 콘텐트를 복호화할 수 있다(즉, AESs(m)=m).
단계 S3670에서, 서버(400)는 복원된 암호화 키 및 복원된 콘텐트 중 적어도 하나를 삭제한다. 예를 들어, 서버(400)는 복원된 암호화 키(t) 및 복원된 콘텐트(m) 중 적어도 하나를 삭제할 수 있다.
도 37은 도 3의 소셜 네트워크 서비스의 제공 방법에 따른 도 1의 보안 시스템의 동작의 다른 예를 나타내는 흐름도이다.
도 37을 참조하면, 본 실시예에 따른 소셜 네트워크 서비스의 제공 방법은 복수의 사용자들 또는 복수의 디바이스들을 포함하는 보안 그룹이 가상 공간에 접속하는 경우, 가상 공간에서 콘텐트를 암호화하고, 이전에 공유된 암호화된 콘텐트를 복호화하기 위한 방법으로서, 도 1의 보안 시스템(10)에 포함된 제1 내지 제3 디바이스들(100, 200, 300) 및 서버(400)에서 시계열적으로 처리되는 단계들로 구성된다. 본 실시예는 도 4의 변형 실시예로서, 중복된 설명은 생략하기로 한다.
단계 S3700에서, 제1 디바이스(100)는 서버(400)에 접속한다. 단계 S3710에서, 서버(400)는 채팅 공간을 생성한다. 단계 S3720에서, 서버(400)는 복수의 사용자들에 의해 접근 가능한 채팅 공간에 대한 UI 오브젝트를 제공한다. 단계 S3730에서, 제2 디바이스(200)는 서버(400)에 접속하고, 단계 S3735에서, 제3 디바이스(300)는 서버(400)에 접속한다.
단계 S3740에서, 제1 디바이스(100)는 콘텐트를 생성한다. 단계 S3745에서, 제1 디바이스(100)는 콘텐트를 서버(400)에 전송한다. 단계 S3750에서, 서버(400)는 콘텐트를 암호화한다. 서버(400)에서 콘텐트를 암호화하는 동작에 대해서는 도 38 내지 도 43을 참조하여 후술하기로 한다. 본 실시예에 따르면, 도 4의 실시예와 달리, 서버(400)에서 암호화 단계를 수행할 수 있다.
구체적으로, 도 5를 참조하여 상술된 콘텐트의 암호화 방법은 서버(400)에서 수행될 수 있다. 그러므로, 서버(400)는 콘텐트에 대한 암호화 키 및 복수의 부분 키들을 생성하고, 생성된 복수의 부분 키들을 제1 내지 제3 디바이스들(100, 200, 300)에 분배하며, 생성된 암호화 키를 이용하여 콘텐트를 암호화할 수 있다.
단계 S3760에서, 제1 디바이스(100)는 서버(400)에 암호화된 콘텐트의 복호화를 요청한다. 단계 S3770에서, 서버(400)는 제1 내지 제3 사용자들(USER1, USER2, USER3)의 접속을 검출한다. 단계 S3780에서, 서버(400)는 암호화된 콘텐트를 복호화한다. 단계 S3790에서, 서버(400)는 제1 내지 제3 디바이스들(100, 200, 300)에 복호화된 콘텐트를 전송한다.
상술된 실시예에 따르면, 콘텐트의 암호화 단계는 제1 디바이스(100)에서 수행되고, 콘텐트의 복호화 단계는 서버(400)에서 수행될 수 있다.
도 38은 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 시스템의 동작의 일 예를 나타내는 흐름도이다.
도 38을 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 개인 키를 분배하는 분산 암호화 방법으로서, 도 1의 보안 시스템(10)에 포함된 제1 내지 제3 디바이스들(100, 200, 300) 및 서버(400)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S3810에서, 서버(400)는 공개 키 및 개인 키로 구성된 키 쌍을 생성한다. 예를 들어, 서버(400)는 암호화에 이용되는 공개 키(T) 및 공개 키(T)에 대응되며 복호화에 이용되는 개인 키(t)를 생성할 수 있다.
단계 S3820에서, 서버(400)는 개인 키를 적어도 3개로 분할하여 적어도 제1 내지 제3 부분 키들을 생성한다. 예를 들어, 서버(400)는 개인 키(t)를 적어도 3개로 분할하여 적어도 제1 내지 제3 부분 키들(t1, t2, t3)을 생성할 수 있다. 이때, 서버(400)는 샤미르 방법을 이용하여 개인 키(t)를 분할할 수 있다.
단계 S3830에서, 서버(400)는 개인 키를 삭제한다. 예를 들어, 서버(400)는 개인 키(t)를 삭제할 수 있으며, 이로써, 제1 내지 제3 디바이스들(100, 200, 300) 중 어느 하나도 개인 키(t)를 획득할 수 없고, 이에 따라, 단독으로 암호화된 콘텐트에 접근할 수 없다.
단계 S3840에서, 서버(400)는 제1 내지 제3 부분 키들을 암호화한다. 예를 들어, 서버(400)는 전송 시의 보안을 위하여, 제1 내지 제3 부분 키들(t1, t2, t3)을 각각 암호화하여 암호화된 제1 내지 제3 부분 키들을 생성할 수 있다. 이로써, 암호화된 제1 내지 제3 부분 키들의 전송 단계에서 보안 그룹(SG)에 속하지 않는 다른 디바이스들은 해당 부분 키를 획득할 수 없다.
단계 S3850a에서, 서버(400)는 공개 키 및 암호화된 제1 부분 키를 제1 디바이스(100)에 전송한다. 단계 S3850b에서, 서버(400)는 공개 키 및 암호화된 제2 부분 키를 제2 디바이스(200)에 전송한다. 단계 S3850c에서, 서버(400)는 공개 키 및 암호화된 제3 부분 키를 제3 디바이스(300)에 전송한다. 예를 들어, 서버(400)는 와이파이(WiFi), 3G/LTE, 블루투스 등과 같은 무선 통신을 통해 공개 키 및 암호화된 제1 내지 제3 부분 키들을 제1 내지 제3 디바이스들(100, 200, 300)에 각각 전송할 수 있다.
단계 S3860a에서, 제1 디바이스(400)는 공개 키 및 제1 부분 키를 저장한다. 단계 S3860b에서, 제2 디바이스(200)는 공개 키 및 제2 부분 키를 저장한다. 단계 S3860c에서, 제3 디바이스(300)는 공개 키 및 제3 부분 키를 저장한다. 예를 들어, 제1 내지 제3 디바이스들(100, 200, 300)은 암호화된 제1 내지 제3 부분 키들을 각각 복호화함으로써, 제1 내지 제3 부분 키들을 각각 추출할 수 있다. 또한, 제1 내지 제3 디바이스들(100, 200, 300)은 공개 키(T)를 가지므로, 제1 내지 제3 디바이스들(100, 200, 300)의 제1 내지 제3 사용자들(USER1, USER2, USER3)은 누구나 공개 키(T)를 이용하여 콘텐트를 암호화할 수 있다.
도 39는 도 5의 콘텐트 암호화 방법에 포함된 암호화 단계 및 암호화된 콘텐트의 저장 단계에 따른 도 1의 보안 시스템의 동작의 일 예를 나타내는 흐름도이다.
도 39를 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 도 38에 예시된 콘텐트 암호화 방법에 이어서 수행될 수 있다. 또한, 본 실시예에 따른 콘텐트 암호화 방법은 도 1의 보안 시스템(10)에 포함된 제1 내지 제3 디바이스들(100, 200, 300) 및 서버(400)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S3910에서, 서버(700)는 사용자 입력 또는 제1 내지 제3 디바이스들(100, 200, 300)의 상태 정보에 따라 암호화할 콘텐트를 결정한다. 구체적으로, 제1 사용자(USER1)는 사용자 입력을 통해 제1 디바이스(100) 또는 서버(400)에 저장된 콘텐트를 암호화할 콘텐트로서 수동으로 결정할 수 있다. 또는, 제1 디바이스(100) 또는 서버(400)에 저장된 콘텐트는 제1 내지 제3 디바이스들(100, 200, 300)의 상태 정보에 따라 암호화할 콘텐트로서 자동으로 결정될 수 있다.
단계 S3920에서, 서버(400)는 공개 키를 이용하여 콘텐트를 암호화한다. 예를 들어, 서버(400)는 대칭 키(s)를 이용하여 콘텐트를 암호화하고, 공개 키(T)를 이용하여 대칭 키(s)를 암호화할 수 있다. 단계 S3930에서, 서버(400)는 암호화된 콘텐트를 저장한다.
단계 S3940a에서, 서버(400)는 제1 디바이스(100)에 암호화된 콘텐트를 전송한다. 단계 S3940b에서, 서버(400)는 제2 디바이스(200)에 암호화된 콘텐트를 전송한다. 단계 S3940c에서, 서버(400)는 제3 디바이스(300)에 암호화된 콘텐트를 전송한다.
단계 S3950a에서, 제1 디바이스(100)는 암호화된 콘텐트를 저장한다. 단계 S3950b에서, 제2 디바이스(200)는 암호화된 콘텐트를 저장한다. 단계 S3950c에서, 제3 디바이스(300)는 암호화된 콘텐트를 저장한다. 예를 들어, 제1 내지 제3 디바이스들(100, 200, 300)은 트러스트존과 같은 보안 구역에 암호화된 콘텐트를 저장할 수 있다.
도 40은 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 시스템의 동작의 다른 예를 나타내는 흐름도이다.
도 40을 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 공개 키를 분배하는 분산 암호화 방법으로서, 도 1의 보안 시스템(10)에 포함된 제1 내지 제3 디바이스들(100, 200, 300) 및 서버(400)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S4010에서, 서버(400)는 공개 키 및 개인 키로 구성된 키 쌍을 생성한다. 예를 들어, 서버(400)는 암호화에 이용되는 공개 키(T) 및 공개 키(T)에 대응되며 복호화에 이용되는 개인 키(t)를 생성할 수 있다. 단계 S4020에서, 서버(400)는 공개 키를 적어도 3개로 분할하여 적어도 제1 내지 제3 부분 키들을 생성한다. 예를 들어, 서버(400)는 공개 키(T)를 적어도 3개로 분할하여 적어도 제1 내지 제3 부분 키들(T1, T2, T3)을 생성할 수 있다.
단계 S4030에서, 서버(400)는 공개 키를 삭제한다. 단계 S4040에서, 서버(400)는 제1 내지 제3 부분 키들을 암호화한다. 예를 들어, 서버(400)는 전송 시의 보안을 위하여, 제1 내지 제3 부분 키들(T1, T2, T3)을 각각 암호화하여 암호화된 제1 내지 제3 부분 키들을 생성할 수 있다.
단계 S4050a에서, 서버(400)는 암호화된 제1 부분 키를 제1 디바이스(100)에 전송한다. 단계 S4050b에서, 서버(400)는 암호화된 제2 부분 키를 제2 디바이스(200)에 전송한다. 단계 S4050c에서, 서버(400)는 암호화된 제3 부분 키를 제3 디바이스(300)에 전송한다. 단계 S4060a에서, 제1 디바이스(100)는 제1 부분 키를 저장한다. 단계 S4060b에서, 제2 디바이스(200)는 제2 부분 키를 저장한다. 단계 S4060c에서, 제3 디바이스(300)는 제3 부분 키를 저장한다.
도 41은 도 5의 콘텐트 암호화 방법에 포함된 암호화 단계 및 암호화된 콘텐트의 저장 단계에 따른 도 1의 보안 시스템의 동작의 다른 예를 나타내는 흐름도이다.
도 41을 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 도 40에 예시된 콘텐트 암호화 방법에 이어서 수행될 수 있다. 또한, 본 실시예에 따른 콘텐트 암호화 방법은 도 1의 보안 시스템(10)에 포함된 제1 내지 제3 디바이스들(100, 200, 300) 및 서버(400)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S4110에서, 서버(400)는 사용자 입력 또는 제1 내지 제3 디바이스들(100, 200, 300)의 상태 정보에 따라 암호화할 콘텐트를 결정한다. 단계 S4120a에서, 서버(400)는 제1 디바이스(100)에 암호화 요청 메시지를 전송한다. 단계 S4120b에서, 서버(400)는 제2 디바이스(200)에 암호화 요청 메시지를 전송한다. 단계 S4120c에서, 서버(400)는 제3 디바이스(300)에 암호화 요청 메시지를 전송한다.
단계 S4130a에서, 제1 디바이스(100)는 서버(400)에 제1 암호화 승인 메시지를 전송한다. 예를 들어, 제1 암호화 승인 메시지는 제1 디바이스(100)에 저장된 제1 부분 키(T1)의 암호화 값을 포함할 수 있다. 단계 S4130b에서, 제2 디바이스(200)는 서버(400)에 제2 암호화 승인 메시지를 전송한다. 예를 들어, 제2 암호화 승인 메시지는 제2 디바이스(200)에 저장된 제2 부분 키(T2)의 암호화 값을 포함할 수 있다. 단계 S4130c에서, 제3 디바이스(300)는 서버(400)에 제3 암호화 승인 메시지를 전송한다. 예를 들어, 제3 암호화 승인 메시지는 제3 디바이스(300)에 저장된 제3 부분 키(T3)의 암호화 값을 포함할 수 있다.
단계 S4140에서, 서버(400)는 제1 내지 제3 암호화 승인 메시지들을 기초로 공개 키를 복원한다. 단계 S4150에서, 서버(400)는 공개 키를 이용하여 콘텐트를 암호화한다. 단계 S4160에서, 서버(400)는 암호화된 콘텐트를 저장한다.
단계 S4170a에서, 서버(400)는 제1 디바이스(100)에 암호화된 콘텐트를 전송한다. 단계 S4170b에서, 서버(400)는 제2 디바이스(200)에 암호화된 콘텐트를 전송한다. 단계 S4170c에서, 서버(400)는 제3 디바이스(300)에 암호화된 콘텐트를 전송한다.
단계 S4180a에서, 제1 디바이스(100)는 암호화된 콘텐트를 저장한다. 단계 S4180b에서, 제2 디바이스(200)는 암호화된 콘텐트를 저장한다. 단계 S4180c에서, 제3 디바이스(300)는 암호화된 콘텐트를 저장한다. 예를 들어, 제1 내지 제3 디바이스들(100, 200, 300)은 트러스트존과 같은 보안 구역에 암호화된 콘텐트를 저장할 수 있다.
도 42는 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 시스템의 동작의 다른 예를 나타내는 흐름도이다.
도 42를 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 개인 키를 분배하는 변형 분산 암호화 방법으로서, 도 1의 보안 시스템(10)에 포함된 제1 내지 제3 디바이스들(100, 200, 300) 및 서버(400)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S4210에서, 서버(400)는 공개 키(T) 및 개인 키(t)로 구성된 키 쌍을 생성한다. 단계 S4220에서, 서버(400)는 개인 키(t)를 적어도 2개로 분할하여 적어도 제1 및 제2 부분 키들(t1, t2)을 생성한다. 단계 S4230에서, 서버(400)는 개인 키(t) 및 제1 및 제2 부분 키들(t1, t2)을 암호화한다.
단계 S4240에서, 서버(400)는 제1 디바이스(100)에 공개 키 및 암호화된 개인 키를 전송한다. 단계 S4250에서, 서버(400)는 개인 키(t)를 삭제한다. 단계 S4260a에서, 서버(400)는 제2 디바이스(200)에 공개 키 및 암호화된 제1 부분 키를 전송한다. 단계 S4260b에서, 서버(400)는 제3 디바이스(300)에 공개 키 및 암호화된 제2 부분 키를 전송한다.
단계 S4270a에서, 제1 디바이스(100)는 공개 키 및 개인 키를 저장한다. 예를 들어, 제1 디바이스(100)는 공개 키(T)를 이용하여 단독으로 콘텐트를 암호화할 수 있고, 개인 키(t)를 이용하여 단독으로 콘텐트를 복호화할 수도 있다.
단계 S4270b에서, 제2 디바이스(200)는 공개 키 및 제1 부분 키를 저장한다. 단계 S4270c에서, 제3 디바이스(300)는 공개 키 및 제2 부분 키를 저장한다. 예를 들어, 제2 및 제3 디바이스들(200, 300)은 암호화된 제1 및 제2 부분 키들을 각각 복호화함으로써, 제1 및 제2 부분 키들을 각각 추출할 수 있다.
제2 및 제3 디바이스들(200, 300)은 공개 키(T)를 가지므로, 제2 및 제3 디바이스들(200, 300)의 제2 및 제3 사용자들(USER2, USER3)은 누구나 공개 키(T)를 이용하여 콘텐트를 암호화할 수 있다. 그러나, 제2 및 제3 디바이스들(200, 300)은 각각 제1 및 제2 부분 키들(t1, t2)을 가지므로, 제2 및 제3 디바이스들(200, 300)은 단독으로 콘텐트를 복호화할 수 없고, 제2 및 제3 디바이스들(200, 300)이 가상 공간에 동시에 접속하는 경우에만 콘텐트를 복호화할 수 있다.
본 실시예에 따른 암호화 단계 및 암호화된 콘텐트의 저장 단계는 도 39와 실질적으로 유사하므로, 이에 대한 상세한 설명은 생략하기로 한다.
도 43은 도 5의 콘텐트 암호화 방법에 포함된 암호화 키 및 복수의 부분 키들의 생성 단계 및 생성된 복수의 부분 키들의 분배 단계에 따른 도 1의 보안 시스템의 동작의 다른 예를 나타내는 흐름도이다.
도 43을 참조하면, 본 실시예에 따른 콘텐트 암호화 방법은 대칭 키를 분배하는 분산 암호화 방법으로서, 도 1의 보안 시스템(10)에 포함된 제1 내지 제3 디바이스들(100, 200, 300) 및 서버(400)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S4310에서, 서버(400)는 암호화 키, 즉, 대칭 키를 생성한다. 예를 들어, 서버(400)는 암호화에 이용되는 암호화 키(sk)를 생성할 수 있고, 생성된 암호화 키(sk)는 복호화에도 이용될 수 있다.
단계 S4320에서, 서버(400)는 암호화 키를 적어도 3개로 분할하여 적어도 제1 내지 제3 부분 키들을 생성한다. 예를 들어, 서버(400)는 암호화 키(sk)를 적어도 3개로 분할하여 적어도 제1 내지 제3 부분 키들(sk1, sk2, sk3)을 생성할 수 있다.
단계 S4330에서, 서버(400)는 암호화 키를 삭제한다. 단계 S4340에서, 서버(400)는 제1 내지 제3 부분 키들을 암호화한다. 단계 S4350a에서, 서버(400)는 제1 디바이스(100)에 암호화된 제1 부분 키를 전송한다. 단계 S4350b에서, 서버(400)는 제2 디바이스(200)에 암호화된 제2 부분 키를 전송한다. 단계 S4350c에서, 서버(400)는 제3 디바이스(300)에 암호화된 제3 부분 키를 전송한다.
단계 S4360a에서, 제1 디바이스(100)는 제1 부분 키(sk1)를 저장한다. 단계 S4360b에서, 제2 디바이스(200)는 제2 부분 키(sk2)를 저장한다. 단계 S4360c에서, 제3 디바이스(300)는 제3 부분 키(sk3)를 저장한다.
제1 내지 제3 디바이스들(100, 200, 300)은 각각 제1 내지 제3 부분 키들(sk1, sk2, sk3)을 가지므로, 제1 내지 제3 디바이스들(100, 200, 300)의 제1 내지 제3 사용자들(USER1, USER2, USER3)은 단독으로 콘텐트를 암호화할 수 없고, 제1 내지 제3 디바이스들(100, 200, 300)이 가상 공간에 동시에 접속하는 경우에만 콘텐트를 암호화할 수 있다. 또한, 제1 내지 제3 디바이스들(100, 200, 300)은 대칭 암호화/복호화 방식을 이용하므로, 제1 내지 제3 디바이스들(100, 200, 300)의 제1 내지 제3 사용자들(USER1, USER2, USER3)은 단독으로 콘텐트를 복호화할 수 없고, 제1 내지 제3 디바이스들(100, 200, 300)이 가상 공간에 동시에 접속하는 경우에만 콘텐트를 복호화할 수 있다.
본 실시예에 따른 암호화 단계 및 암호화된 콘텐트의 저장 단계는 도 41과 실질적으로 유사하므로, 이에 대한 상세한 설명은 생략하기로 한다.
도 44는 도 3의 소셜 네트워크 서비스의 제공 방법에 따른 도 1의 보안 시스템의 동작의 다른 예를 나타내는 흐름도이다.
도 44를 참조하면, 본 실시예에 따른 소셜 네트워크 서비스의 제공 방법은 복수의 사용자들 또는 복수의 디바이스들을 포함하는 보안 그룹이 가상 공간에 접속하는 경우, 가상 공간에서 콘텐트를 암호화하고, 이전에 공유된 암호화된 콘텐트를 복호화하기 위한 방법으로서, 도 1의 보안 시스템(10)에 포함된 제1 내지 제3 디바이스들(100, 200, 300) 및 서버(400)에서 시계열적으로 처리되는 단계들로 구성된다. 본 실시예는 도 4 및 도 37의 변형 실시예로서, 중복된 설명은 생략하기로 한다.
단계 S4400에서, 제1 디바이스(100)는 서버(400)에 접속한다. 단계 S4410에서, 서버(400)는 채팅 공간을 생성한다. 단계 S4420에서, 서버(400)는 복수의 사용자들에 의해 접근 가능한 채팅 공간에 대한 UI 오브젝트를 제공한다. 단계 S4430에서, 제2 디바이스(200)는 서버(400)에 접속하고, 단계 S4435에서, 제3 디바이스(300)는 서버(400)에 접속한다.
단계 S4440에서, 제1 디바이스(100)는 콘텐트를 생성한다. 단계 S4450에서, 제1 디바이스(100)는 콘텐트를 암호화한다. 도 5 내지 도 23을 참조하여 상술된 컨텐트의 암호화 방법은 본 실시예에 적용될 수 있다. 단계 S4455에서, 제1 디바이스(100)는 암호화된 콘텐트를 저장한다. 본 실시예에 따르면, 도 4 및 도 37의 실시예와 달리, 암호화된 콘텐트를 서버(400)에 저장하지 않을 수 있다.
단계 S4460에서, 제2 디바이스(200)는 제1 디바이스(100)에 암호화된 콘텐트의 복호화를 요청한다. 그러나, 본 발명은 이에 한정되지 않고, 다른 실시예에서, 제3 디바이스(300)가 제1 디바이스(100)에 암호화된 콘텐트의 복호화를 요청할 수 있다. 단계 S4470에서, 제1 디바이스(100)는 제2 및 제3 사용자들(USER2, USER3)의 접속을 검출한다.
단계 S4480에서, 제1 디바이스(100)는 암호화된 콘텐트를 복호화한다. 제1 디바이스(100)에서 암호화된 컨텐트를 복호화하는 동작에 대해서는 도 45 및 도 46을 참조하여 후술하기로 한다. 단계 S4490에서, 제1 디바이스(100)는 제2 및 제3 디바이스들(200, 300)에 복호화된 콘텐트를 전송한다.
상술된 실시예에 따르면, 콘텐트의 암호화 단계 및 콘텐트의 복호화 단계는 모두 제1 디바이스(100)에서 수행될 수 있다.
도 45는 도 24의 콘텐트 복호화 방법에 따른 도 1의 보안 그룹의 동작의 일 예를 나타내는 흐름도이다.
도 45를 참조하면, 본 실시예에 따른 콘텐트 복호화 방법은 도 1의 보안 그룹(SG)에 포함된 제1 내지 제3 디바이스들(100, 200, 300)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S4510에서, 제1 디바이스(100)는 제1 내지 제3 디바이스들(100, 200, 300)이 가상 공간에 접속되어 있는지 여부를 판단한다.
단계 S4520a에서, 제1 및 제2 디바이스들(100, 200)은 원격으로 연결된다. 단계 S4520b에서, 제1 및 제3 디바이스들(100, 300)은 원격으로 연결된다. 이로써, 제2 및 제3 디바이스들(200, 300)도 원격으로 연결될 수 있다.
단계 S4530a에서, 제1 디바이스(100)는 제2 디바이스(200)에게 복호화 승인 요청 메시지를 전송한다. 단계 S4530b에서, 제1 디바이스(100)는 제3 디바이스(300)에게 복호화 승인 요청 메시지를 전송한다.
단계 S4540a에서, 제2 디바이스(200)는 제1 디바이스(100)에게 제1 복호화 승인 메시지를 전송한다. 예를 들어, 제1 복호화 승인 메시지는 제2 디바이스(200)에 저장된 제2 부분 키(t2)의 암호화 값(EncK1(t2))을 포함할 수 있다. 단계 S4540b에서, 제3 디바이스(300)는 제1 디바이스(100)에게 제2 복호화 승인 메시지를 전송한다. 예를 들어, 제2 암호화 승인 메시지는 제3 디바이스(300)에 저장된 제3 부분 키(t2)의 암호화 값(EncK1(t3))을 포함할 수 있다.
단계 S4550에서, 제1 디바이스(100)는 제1 및 제2 복호화 승인 메시지들을 기초로 복호화 키를 복원한다. 예를 들어, 제1 디바이스(100)는 제1 확인 개인 키(k1)를 이용하여 제1 및 제2 복호화 승인 메시지들에 각각 포함된 제2 및 제3 부분 키들의 암호화 값들(EncK1(t2), EncK1(t3))을 복호화함으로써, 제2 및 제3 부분 키들(t2, t3)을 획득할 수 있다. 이어서, 제1 디바이스(100)는 제2 및 제3 부분 키들(t2, t3) 및 제1 디바이스(100)에 저장된 제1 부분 키(t1)를 기초로 개인 키(t)를 복원할 수 있다(즉, t=t1+t2+t3).
단계 S4560에서, 제1 디바이스(100)는 복원된 복호화 키를 이용하여 암호화된 콘텐트를 복호화한다. 예를 들어, 제1 디바이스(100)는 복원된 개인 키(t)를 이용하여 대칭 키(s)를 복호화하고(즉, Dect(EncT(s))=s), 복호화된 대칭 키(s)를 이용하여 암호화된 콘텐트를 복호화할 수 있다(즉, AESs(m)=m).
단계 S4570에서, 제1 디바이스(100)는 복원된 암호화 키 및 복원된 콘텐트 중 적어도 하나를 삭제한다. 예를 들어, 제1 디바이스(100)는 복원된 암호화 키(t) 및 복원된 콘텐트(m) 중 적어도 하나를 삭제할 수 있다.
도 46은 도 24의 콘텐트 복호화 방법에 따른 도 1의 보안 그룹의 동작의 다른 예를 나타내는 흐름도이다.
도 46을 참조하면, 본 실시예에 따른 콘텐트 복호화 방법은 도 1의 보안 그룹(SG)에 포함된 제1 내지 제3 디바이스들(100, 200, 300)에서 시계열적으로 처리되는 단계들로 구성된다.
단계 S4610에서, 제1 디바이스(100)는 제1 내지 제3 디바이스들(100, 200, 300)이 가상 공간에 접속되어 있는지 여부를 판단한다. 단계 S4620a에서, 제1 및 제2 디바이스들(100, 200)은 원격으로 연결된다. 단계 S4620b에서, 제1 및 제3 디바이스들(100, 300)은 원격으로 연결된다. 이로써, 제2 및 제3 디바이스들(200, 300)도 원격으로 연결될 수 있다.
단계 S4630에서, 제1 디바이스(100)는 사용자 입력 또는 제1 내지 제3 디바이스들(100, 200, 300)의 상태 정보에 따라 복호화할 콘텐트를 결정할 수 있다. 구체적으로, 제1 사용자(USER1)는 사용자 입력을 통해 제1 디바이스(100) 또는 서버에 저장된 암호화 콘텐트를 복호화할 콘텐트로서 수동으로 결정할 수 있다. 또는, 제1 디바이스(100) 또는 서버에 저장된 암호화된 콘텐트는 제1 내지 제3 디바이스들(100, 200, 300)의 상태 정보에 따라 복호화할 콘텐트로서 자동으로 결정될 수 있다.
단계 S4640a에서, 제1 디바이스(100)는 제2 디바이스(200)에게 복호화 승인 요청 메시지를 전송한다. 단계 S4640b에서, 제1 디바이스(100)는 제3 디바이스(300)에게 복호화 승인 요청 메시지를 전송한다.
단계 S4650a에서, 제2 디바이스(200)는 제1 디바이스(100)에게 제1 복호화 승인 메시지를 전송한다. 예를 들어, 제1 복호화 승인 메시지는 제2 디바이스(200)에 저장된 제2 부분 키(t2)의 암호화 값(EncK1(t2))을 포함할 수 있다. 단계 S4650b에서, 제3 디바이스(300)는 제1 디바이스(100)에게 제2 복호화 승인 메시지를 전송한다. 예를 들어, 제2 암호화 승인 메시지는 제3 디바이스(300)에 저장된 제3 부분 키(t2)의 암호화 값(EncK1(t3))을 포함할 수 있다.
단계 S4660에서, 제1 디바이스(100)는 제1 및 제2 복호화 승인 메시지들을 기초로 복호화 키를 복원한다. 예를 들어, 제1 디바이스(100)는 제1 확인 개인 키(k1)를 이용하여 제1 및 제2 복호화 승인 메시지들에 각각 포함된 제2 및 제3 부분 키들의 암호화 값들(EncK1(t2), EncK1(t3))을 복호화함으로써, 제2 및 제3 부분 키들(t2, t3)을 획득할 수 있다. 이어서, 제1 디바이스(100)는 제2 및 제3 부분 키들(t2, t3) 및 제1 디바이스(100)에 저장된 제1 부분 키(t1)를 기초로 개인 키(t)를 복원할 수 있다(즉, t=t1+t2+t3).
단계 S4670에서, 제1 디바이스(100)는 복원된 복호화 키를 이용하여 암호화된 콘텐트를 복호화한다. 예를 들어, 제1 디바이스(100)는 복원된 개인 키(t)를 이용하여 대칭 키(s)를 복호화하고(즉, Dect(EncT(s))=s), 복호화된 대칭 키(s)를 이용하여 암호화된 콘텐트를 복호화할 수 있다(즉, AESs(m)=m).
단계 S4680에서, 제1 디바이스(100)는 복원된 암호화 키 및 복원된 콘텐트 중 적어도 하나를 삭제한다. 예를 들어, 제1 디바이스(100)는 복원된 암호화 키(t) 및 복원된 콘텐트(m) 중 적어도 하나를 삭제할 수 있다.
도 47은 본 개시의 일 실시예에 따른 디바이스(100A)를 나타내는 블록도이다.
도 47을 참조하면, 디바이스(100A)는 키 생성부(11), 암호화부(12), 저장부(13), 송수신부(14), 키 복원부(15) 및 복호화부(16)를 포함할 수 있다. 디바이스(100A)는 복수의 디바이스들을 포함하는 보안 그룹이 가상 공간에서 공유 가능한 콘텐트를 암호화할 수 있고, 암호화된 콘텐트를 복호화할 수 있으며, 디바이스(100A)는 보안 그룹에 포함된 복수의 디바이스들 중 하나이다.
디바이스(100A)는 도 1의 제1 내지 제3 디바이스들(100, 200, 300)에 모두 적용될 수 있다. 또한, 디바이스(100A)는 도 1 내지 도 46을 참조하여 상술한 콘텐트 암호화 방법 및 콘텐트 복호화 방법을 수행할 수 있다. 그러므로, 이하에서는, 디바이스(100A)에서 콘텐트 암호화 동작 및 콘텐트 복호화 동작에 대한 구체적인 설명은 생략하기로 한다.
키 생성부(11)는 디바이스(100A)가 가상 공간에 접속된 경우, 가상 공간에서 생성된 콘텐트에 대한 암호화 키 및 복수의 부분 키들을 생성할 수 있다. 일 실시예에서, 비대칭 암호화 방식을 이용할 경우, 키 생성부(11)는 공개 키 및 개인 키로 구성된 키 쌍을 포함하는 암호화 키를 생성할 수 있다. 이때, 키 생성부(11)는 공개 키 또는 개인 키를 분할하여 복수의 부분 키들을 생성할 수 있다. 다른 실시예에서, 대칭 암호화 방식을 이용할 경우, 키 생성부(11)는 대칭 키를 포함하는 암호화 키를 생성할 수 있다. 이때, 키 생성부(11)는 대칭 키를 분할하여 복수의 부분 키들을 생성할 수 있다.
암호화부(12)는 생성된 암호화 키를 이용하여 콘텐트를 암호화할 수 있다. 구체적으로, 암호화부(12)는 세션 키(session key)로 콘텐트를 암호화하고, 암호화 키를 이용하여 세션 키를 암호화할 수 있다. 또한, 암호화부(12)는 생성된 복수의 부분 키들도 암호화할 수 있다. 나아가, 암호화부(12)는 복호화된 콘텐트의 재생 중에, 가상 공간에 접속한 디바이스들 중 하나가 접속을 종료할 경우 재생 중인 콘텐트를 다시 암호화할 수 있다.
일 실시예에서, 비대칭 암호화 방식을 이용할 경우, 암호화부(12)는 공개 키를 이용하여 콘텐트를 암호화할 수 있다. 구체적으로, 암호화부(12)는 세션 키로 콘텐트를 암호화하고, 공개 키를 이용하여 세션 키를 암호화할 수 있다. 다른 실시예에서, 대칭 암호화 방식을 이용할 경우, 암호화부(12)는 대칭 키를 이용하여 콘텐트를 암호화할 수 있다. 구체적으로, 암호화부(12)는 세션 키로 콘텐트를 암호화하고, 대칭 키를 이용하여 세션 키를 암호화할 수 있다.
저장부(13)는 암호화된 콘텐트 및 복호화된 콘텐트 중 적어도 하나를 저장할 수 있다. 또한, 저장부(13)는 암호화 키 및 부분 키 중 적어도 하나를 더 저장할 수 있다. 일 실시예에서, 저장부(13)는 트러스트존(Trust zone)과 같은 보안 구역으로 구현될 수 있으며, 이때, 암호화부(12)에서 콘텐트가 암호화된 이후에, 암호화 키는 삭제될 수 있다.
송수신부(14)는 키 생성부(11)에서 생성된 복수의 부분 키들을 복수의 디바이스들 중 나머지 디바이스들에 각각 전송할 수 있다. 다른 실시예에서, 송수신부(14)는 암호화부(12)에서 암호화된 복수의 부분 키들을 복수의 디바이스들 중 나머지 디바이스들에 각각 전송할 수 있다. 또한, 송수신부(14)는 저장부(13)에 저장된 암호화된 콘텐트를 복수의 디바이스들 중 적어도 하나의 나머지 디바이스에 전송할 수 있다.
키 복원부(15)는 보안 그룹에 포함된 복수의 디바이스들 중 임계 개수 이상의 디바이스들의 복호화 승인들이 원격으로 획득된 경우, 임계 개수 이상의 디바이스들에 각각 저장된 복수의 부분 키들로부터 복호화 키를 복원할 수 있다. 여기서, 복호화 키는 키 생성부(11)에서 생성된 암호화 키에 대응될 수 있다.
복호화부(16)는 복원된 복호화 키를 이용하여 암호화된 콘텐트를 복호화할 수 있다. 일 실시예에서, 복호화부(16)는 복원된 복호화 키로, 암호화된 세션 키를 복호화하고, 복호화된 세션 키로, 암호화된 콘텐트를 복호화할 수 있다. 또한, 암호화된 콘텐트를 복호화한 이후에, 복호화 키 및 복호화된 콘텐트 중 적어도 하나는 삭제될 수 있다.
본 실시예에서, 가상 공간에 접속한 디바이스들 중 적어도 하나가 가상 공간에 대한 접속을 종료하는 경우, 키 복원부(15) 및 복호화부(16) 중 적어도 하나는 동작을 중단하고, 암호화부(12)는 복호화된 콘텐트를 다시 암호화할 수 있다.
본 실시예에 따른 키 생성부(11), 암호화부(12), 키 복원부(15) 및 복호화부(16)는 복수의 프로그램들로 각각 구현되어, 디바이스 내의 메모리에 각각 저장될 수 있고, 디바이스 내의 제어부가 상기 메모리에 액세스하여 키 생성 동작, 암호화 동작, 키 복원 동작 및 복호화 동작을 실행할 수 있다. 또한, 본 실시예에 따른 저장부(13)는 디바이스 내의 메모리의 일부 영역으로 구현될 수 있다. 나아가, 본 실시예에 따른 송수신부(14)는 디바이스 내의 통신부의 일부로 구현될 수 있다. 따라서, 이하에서는, 도 48를 참조하여 디바이스의 하드웨어 구현 예에 대해 상술하기로 한다.
도 48은 본 개시의 일 실시예에 따른 디바이스(100B)의 구성을 설명하기 위한 블록도이다.
도 48을 참조하면, 본 실시예에 따른 디바이스(100B)의 구성은 도 1의 제1 내지 제3 디바이스들(100, 200, 300)에 모두 적용될 수 있다. 디바이스(100B)의 구성은, 예를 들어, 휴대폰, 태블릿 PC, PDA, MP3 플레이어, 키오스크, 전자 액자, 네비게이션 장치, 디지털 TV, 손목 시계(Wrist watch) 또는 HMD(Head-Mounted Display)와 같은 웨어러블 기기(Wearable device) 등과 같은 다양한 유형의 장치에 적용될 수 있다.
도 48에 따르면, 디바이스(100B)는 디스플레이부(110), 제어부(170), 메모리(120), GPS 칩(125), 통신부(130), 비디오 프로세서(135), 오디오 프로세서(140), 사용자 입력부(145), 마이크부(150), 촬상부(155), 스피커부(160), 움직임 감지부(165) 중 적어도 하나를 포함 할 수 있다.
디스플레이부(110)는 표시패널(111) 및 표시 패널(111)을 제어하는 컨트롤러(미도시)를 포함할 수 있다. 표시패널(111)에는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, AM-OLED(Active-Matrix Organic Light-Emitting Diode), PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 표시패널(111)은 유연하게(flexible), 투명하게(transparent) 또는 착용할 수 있게(wearable) 구현될 수 있다. 디스플레이부(110)는 사용자 입력부(145)의 터치 패널(147)과 결합되어 터치 스크린(미도시)으로 제공될 수 있다. 예를 들어, 터치 스크린(미도시)은 표시 패널(111)과 터치 패널(147)이 적층 구조로 결합된 일체형의 모듈을 포함할 수 있다.
메모리(120)는 내장 메모리(Internal Memory)(미도시) 및 외장 메모리(External Memory)(미도시) 중 적어도 하나를 포함할 수 있다.
내장 메모리는, 예를 들어, 휘발성 메모리(예를 들면, DRAM(Dynamic RAM), SRAM(Static RAM), SDRAM(Synchronous Dynamic RAM) 등), 비휘발성 메모리(예를 들면, OTPROM(One Time Programmable ROM), PROM(Programmable ROM), EPROM(Erasable and Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), Mask ROM, Flash ROM 등), 하드 디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 중 적어도 하나를 포함할 수 있다. 일 실시 예에 따르면, 제어부(170)는 비휘발성 메모리 또는 다른 구성요소 중 적어도 하나로부터 수신한 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리할 수 있다. 또한, 제어부(170)는 다른 구성요소로부터 수신하거나 생성된 데이터를 비휘발성 메모리에 보존할 수 있다.
외장 메모리는, 예를 들면, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 및 Memory Stick 중 적어도 하나를 포함할 수 있다.
메모리(120)는 디바이스(100B)의 동작에 사용되는 각종 프로그램 및 데이터를 저장할 수 있다. 예를 들어, 메모리(120)는 콘텐트 암호화를 위한 키 생성 프로그램 및 암호화 프로그램, 그리고, 콘텐트 복호화를 위한 키 복원 프로그램 및 복호화 프로그램의 적어도 일부를 임시 또는 반영구적으로 저장할 수 있다. 또 다른 예를 들어, 메모리(120)는 암호화된 콘텐트 및 복호화된 콘텐트 중 적어도 일부를 임시 또는 반영구적으로 저장할 수 있다.
제어부(170)는 메모리(120)에 저장된 콘텐트의 일부가 디스플레이부(110)에 표시되도록 디스플레이부(110)를 제어할 수 있다. 다시 말하자면, 제어부(170)는 메모리(120)에 저장된 콘텐트의 일부를 디스플레이부(110)에 표시할 수 있다. 또는, 제어부(170)는 디스플레이부(110)의 일 영역에서 사용자 제스처가 이루어지면, 사용자의 제스처에 대응되는 제어 동작을 수행할 수 있다.
제어부(170)는 RAM(171), ROM(172), CPU(173), GPU(Graphic Processing Unit)(174) 및 버스(175) 중 적어도 하나를 포함 할 수 있다. RAM(171), ROM(172), CPU(173) 및 GPU(174) 등은 버스(175)를 통해 서로 연결될 수 있다.
CPU(173)는 메모리(120)에 액세스하여, 메모리(120)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고, 메모리(120)에 저장된 각종 프로그램, 콘텐트, 데이터 등을 이용하여 다양한 동작을 수행한다.
ROM(172)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 예로, 디바이스(100B)는 턴온 명령이 입력되어 전원이 공급되면, CPU(173)가 ROM(172)에 저장된 명령어에 따라 메모리(120)에 저장된 O/S를 RAM(171)에 복사하고, O/S를 실행시켜 시스템을 부팅시킬 수 있다. 부팅이 완료되면, CPU(173)는 메모리(120)에 저장된 각종 프로그램을 RAM(171)에 복사하고, RAM(171)에 복사된 프로그램을 실행시켜 각종 동작을 수행한다. GPU(174)는 디바이스(100B)의 부팅이 완료되면, 디스플레이부(110)의 영역에 UI 화면을 디스플레이한다. 구체적으로는, GPU(174)는 콘텐트, 아이콘, 메뉴 등과 같은 다양한 객체를 포함하는 전자문서가 표시된 화면을 생성할 수 있다. GPU(174)는 화면의 레이아웃에 따라 각 객체들이 표시될 좌표값, 형태, 크기, 컬러 등과 같은 속성 값을 연산한다. 그리고, GPU(174)는 연산된 속성값에 기초하여 객체를 포함하는 다양한 레이아웃의 화면을 생성할 수 있다. GPU(174)에서 생성된 화면은 디스플레이부(110)로 제공되어, 디스플레이부(110)의 각 영역에 각각 표시될 수 있다.
GPS 칩(125)은 GPS(Global Positioning System) 위성으로부터 GPS 신호를 수신하여, 디바이스(100B)의 현재 위치를 산출할 수 있다. 제어부(170)는 네비게이션 프로그램을 이용할 때나 그 밖에 사용자의 현재 위치가 필요할 경우에, GPS 칩(125)을 이용하여 사용자 위치를 산출할 수 있다.
통신부(130)는 다양한 유형의 통신방식에 따라 다양한 유형의 외부 기기와 통신을 수행할 수 있다. 통신부(130)는 와이파이칩(131), 블루투스 칩(132), 무선 통신 칩(133), NFC 칩(134) 중 적어도 하나를 포함할 수 있다. 제어부(170)는 통신부(130)를 이용하여 각종 외부 기기와 통신을 수행할 수 있다.
와이파이 칩(131), 블루투스 칩(132)은 각각 WiFi 방식, 블루투스 방식으로 통신을 수행할 수 있다. 와이파이 칩(131)이나 블루투스 칩(132)을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 무선 통신 칩(133)은 IEEE, 지그비, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다. NFC 칩(134)은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다.
비디오 프로세서(135)는 통신부(130)를 통해 수신된 콘텐트 또는, 메모리(120)에 저장된 콘텐트에 포함된 비디오 데이터를 처리할 수 있다. 비디오 프로세서(135)에서는 비디오 데이터에 대한 디코딩, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 해상도 변환 등과 같은 다양한 이미지 처리를 수행할 수 있다.
오디오 프로세서(140)는 통신부(130)를 통해 수신된 콘텐트 또는, 메모리(120)에 저장된 콘텐트에 포함된 오디오 데이터를 처리할 수 있다. 오디오 프로세서(140)에서는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다.
제어부(170)는 멀티미디어 콘텐트에 대한 재생 프로그램이 실행되면 비디오 프로세서(135) 및 오디오 프로세서(140)를 구동시켜, 해당 콘텐트를 재생할 수 있다. 스피커부(160)는 오디오 프로세서(140)에서 생성한 오디오 데이터를 출력할 수 있다.
사용자 입력부(145)는 사용자로부터 다양한 명령어를 입력 받을 수 있다. 사용자 입력부(145)는 키(146), 터치 패널(147) 및 펜 인식 패널(148) 중 적어도 하나를 포함할 수 있다.
키(146)는 디바이스(100B)의 본체 외관의 전면부나 측면부, 배면부 등의 다양한 영역에 형성된 기계적 버튼, 휠 등과 같은 다양한 유형의 키를 포함할 수 있다.
터치 패널(147)은 사용자의 터치 입력을 감지하고, 감지된 터치 신호에 해당하는 터치 이벤트 값을 출력할 수 있다. 터치 패널(147)이 표시 패널(111)과 결합하여 터치 스크린(미도시)을 구성한 경우, 터치 스크린은 정전식이나, 감압식, 압전식 등과 같은 다양한 유형의 터치 센서로 구현될 수 있다. 정전식은 터치 스크린 표면에 코팅된 유전체를 이용하여, 사용자의 신체 일부가 터치 스크린 표면에 터치되었을 때 사용자의 인체로 야기되는 미세 전기를 감지하여 터치 좌표를 산출하는 방식이다. 감압식은 터치 스크린에 내장된 두 개의 전극 판을 포함하여, 사용자가 화면을 터치하였을 경우, 터치된 지점의 상하 판이 접촉되어 전류가 흐르게 되는 것을 감지하여 터치 좌표를 산출하는 방식이다. 터치 스크린에서 발생하는 터치 이벤트는 주로 사람의 손가락에 의하여 생성될 수 있으나, 정전 용량 변화를 가할 수 있는 전도성 재질의 물체에 의해서도 생성될 수 있다.
펜 인식 패널(148)은 사용자의 터치용 펜(예컨대, 스타일러스 펜(stylus pen), 디지타이저 펜(digitizer pen))의 운용에 따른 펜의 근접 입력 또는 터치 입력을 감지하고 감지된 펜 근접 이벤트 또는 펜 터치 이벤트를 출력할 수 있다. 펜 인식 패널(148)은, 예로, EMR 방식으로 구현될 수 있으며, 펜의 근접 또는 터치에 의한 전자기장의 세기 변화에 따라 터치 또는 근접 입력을 감지할 수 있다. 상세하게는 펜 인식 패널(148)은 그리드 구조를 가지는 전자 유도 코일 센서(미도시)와 전자 유도 코일 센서의 각 루프 코일에 순차적으로 소정의 주파수를 가지는 교류 신호를 제공하는 전자 신호 처리부(미도시)를 포함하여 구성될 수 있다. 이러한 펜 인식 패널(148)의 루프 코일 근방에 공진회로를 내장하는 펜이 존재하면, 해당 루프 코일로부터 송신되는 자계가 펜 내의 공진회로에 상호 전자 유도에 기초한 전류를 발생시킨다. 이 전류를 기초로 하여, 펜 내의 공진 회로를 구성하는 코일로부터 유도 자계가 발생하게 되고, 펜 인식 패널(148)은 이 유도 자계를 신호 수신 상태에 있는 루프 코일에서 검출하게 되어 펜의 접근 위치 또는 터치 위치가 감지될 수 있다. 펜 인식 패널(148)은 표시 패널(111)의 하부에 일정 면적, 예를 들어, 표시 패널(111)의 표시 영역을 커버할 수 있는 면적을 가지고 마련될 수 있다.
마이크부(150)는 사용자 음성이나 기타 소리를 입력 받아 오디오 데이터로 변환할 수 있다. 제어부(170)는 마이크 부(150)를 통해 입력되는 사용자 음성을 통화 동작에서 이용하거나, 오디오 데이터로 변환하여 메모리(120)에 저장할 수 있다.
촬상부(155)는 사용자의 제어에 따라 정지 영상 또는 동영상을 촬상할 수 있다. 촬상부(155)는 전면 카메라, 후면 카메라와 같이 복수 개로 구현될 수도 있다.
촬상부(155) 및 마이크부(150)가 마련된 경우, 제어부(170)는 마이크부(150)를 통해 입력되는 사용자 음성이나 촬상부(155)에 의해 인식되는 사용자 모션에 따라 제어 동작을 수행할 수도 있다. 예컨대, 디바이스(100B)는 모션 제어 모드나 음성 제어 모드로 동작할 수 있다. 모션 제어 모드로 동작하는 경우, 제어부(170)는 촬상부(155)를 활성화시켜 사용자를 촬상하고, 사용자의 모션 변화를 추적하여 그에 대응되는 제어 동작을 수행할 수 있다. 음성 제어 모드로 동작하는 경우 제어부(170)는 마이크부(150)를 통해 입력된 사용자 음성을 분석하고, 분석된 사용자 음성에 따라 제어 동작을 수행하는 음성 인식 모드로 동작할 수 있다.
움직임 감지부(165)는 디바이스(100B)의 본체 움직임을 감지할 수 있다. 디바이스(100B)는 다양한 방향으로 회전되거나 기울어질 수 있다. 이 때, 움직임 감지부(165)는 지자기 센서, 자이로 센서, 가속도 센서 등과 같은 다양한 센서들 중 적어도 하나를 이용하여 회전 방향 및 각도, 기울기 등과 같은 움직임 특성을 감지할 수 있다.
그 밖에, 도 48에 도시하지는 않았으나, 다른 실시예는, 디바이스(100B) 내에 USB 커넥터가 연결될 수 있는 USB 포트나, 헤드셋, 마우스, LAN 등과 같은 다양한 외부 단자와 연결하기 위한 다양한 외부 입력 포트, DMB(Digital Multimedia Broadcasting) 신호를 수신하여 처리하는 DMB 칩, 다양한 센서 등을 더 포함할 수 있다.
전술한 디바이스(100B)의 구성 요소들의 명칭은 달라질 수 있다. 또한, 본 개시에 따른 디바이스(100B)는 전술한 구성요소들 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다.
도 49는 본 개시의 일 실시예에 따른 디바이스(100C)의 소프트웨어 구성을 설명하기 위한 블록도이다.
도 49를 참조하면, 메모리(120)는 디바이스(100C)의 자원을 제어하는 운영체제 및 어플리케이션의 동작을 위한 응용 프로그램 등을 저장할 수 있다. 운영체제는 커널, 미들웨어, API 등을 포함할 수 있다. 운영체제로는, 예를 들어, 안드로이드(Android), iOS, 윈도우즈(Windows), 심비안(Symbian), 타이젠(Tizen) 또는 바다(Bada) 운영 체제 등이 있을 수 있다.
커널(121)은 자원을 관리할 수 있는 디바이스 드라이버(121-1) 또는 시스템 리소스 매니저(121-2) 중 적어도 하나를 포함할 수 있다. 디바이스 드라이버(121-1)는 디바이스(100C)의 하드웨어들을 소프트웨어적으로 접근하여 제어하도록 할 수 있다. 이를 위하여, 디바이스 드라이버(121-1)는, 인터페이스와 각 하드웨어 업체가 제공하는 개별 드라이버 모듈로 구분될 수 있다. 디바이스 드라이버(121-1)는, 예로, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, WiFi 드라이버, 오디오 드라이버 또는 IPC (inter-process communication) 드라이버 중 적어도 하나를 포함할 수 있다. 시스템 리소스 매니저(121-2)는 프로세스 관리부, 메모리 관리부 또는 파일 시스템 관리부 중 적어도 하나를 포함할 수 있다. 시스템 리소스 메니저(121-2)는 시스템 리소스의 제어, 할당 또는 회수 등의 기능을 수행할 수 있다.
미들웨어(122)는 다양한 어플리케이션들에서 공통적으로 요구되는 기능을 제공하기 위해 미리 구현해 놓은 복수의 모듈들을 포함할 수 있다. 미들웨어(122)는 어플리케이션(124)이 디바이스 내부의 자원을 효율적으로 사용할 수 있도록 API(123)를 통해 기능을 제공할 수 있다. 미들웨어(122)는, 예컨대, 어플리케이션 매니저(122-1), 윈도우 매니저(122-2), 멀티미디어 매니저(122-3), 리소스 매니저(122-4), 파워 매니저(122-5), 데이터베이스 매니저(122-6), 패키지 매니저(122-7), 연결 매니저(122-8), 통지 매니저(122-9), 위치 매니저(122-10), 그래픽 매니저(122-11) 또는 보안 매니저(122-12) 등의 복수의 모듈들 중 적어도 하나 이상을 포함할 수 있다.
어플리케이션 매니저(122-1)는 어플리케이션(124) 중 적어도 하나의 어플리케이션의 생명 주기(life cycle)를 관리할 수 있다. 윈도우 매니저(122-2)는 화면에서 사용하는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저(122-3)는 다양한 미디어 파일들의 재생에 포맷을 파악하고, 해당 포맷에 맞는 코덱(codec)을 이용하여 미디어 파일의 인코딩(encoding) 또는 디코딩(decoding)을 수행할 수 있다. 리소스 매니저(122-4)는 어플리케이션(124) 중 적어도 어느 하나의 어플리케이션의 소스 코드, 메모리 또는 저장 공간 등의 자원을 관리할 수 있다. 파워 매니저(122-5)는 바이오스(BIOS) 등과 함께 동작하여 배터리(battery) 또는 전원을 관리하고, 동작에 전력 정보 등을 제공할 수 있다. 데이터베이스 매니저(122-6)는 어플리케이션(124) 중 적어도 하나의 어플리케이션에서 사용할 데이터베이스를 생성, 검색 또는 변경할 수 있도록 관리할 수 있다. 패키지 매니저(122-7)은 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 업데이트를 관리할 수 있다. 연결 매니저(122-8)는, 예로, WiFi 또는 블루투스 등의 무선 연결을 관리할 수 있다. 통지 매니저(122-9)는 도착 메시지, 약속, 근접성 알림 등의 사건(event)을 사용자에게 방해되지 않는 방식으로 표시 또는 통지할 수 있다. 위치 매니저(122-10)는 디바이스(100C)의 위치 정보를 관리할 수 있다. 그래픽 매니저(122-11)는 사용자에게 제공될 그래픽 효과 및 이와 관련된 사용자 인터페이스를 관리할 수 있다. 보안 매니저(122-12)는 시스템 보안 또는 사용자 인증 등에 요구되는 제반 보안 기능을 제공할 수 있다. 디바이스(100C)가 전화 기능을 구비한 경우에는, 미들웨어(122)는 사용자의 음성 또는 영상 통화 기능을 관리하기 위한 통화 매니저(미도시)를 더 포함할 수 있다.
미들웨어(122)는 런타임 라이브러리(122-13) 또는 다른 라이브러리 모듈들(미도시)를 더 포함할 수 있다. 런타임 라이브러리(122-13)는 어플리케이션이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈이다. 예컨대, 런타임 라이브러리(122-13)는 입출력, 메모리 관리 또는 산술 함수에 대한 기능 등을 수행할 수 있다. 미들웨어(122)는 전술한 내부 구성요소 모듈들의 다양한 기능 조합을 통해 새로운 미들웨어 모듈을 생성하여 사용할 수 있다. 미들웨어(122)는 차별화된 기능을 제공하기 위해 운영체제의 종류별로 특화된 모듈을 제공할 수 있다. 미들웨어(122)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. 본 개시의 실시 예에 기재된 구성요소를 일부 생략하거나 다른 구성요소를 더 구비하거나, 또는 유사한 기능을 수행하는 다른 명칭을 갖는 구성요소로 대체할 수 있다.
API(123)는 API 프로그래밍 함수들의 집합으로써 운영체제에 따라 다른 구성으로 제공될 수 있다. 안드로이드 또는 iOS의 경우, 예를 들면, 플랫폼 별로 하나의 API 셋을 제공할 수 있으며, 타이젠(Tizen)의 경우, 예를 들면, 두 개 이상의 API 셋을 제공할 수 있다.
어플리케이션(124)은, 디폴트로 설치되어 있는 프리로드 어플리케이션(preloaded Application) 또는 사용자가 사용 과정에서 설치하여 사용할 수 있는 제 3자 어플리케이션(third party application)을 포함할 수 있다. 어플리케이션(124)은, 예를 들어, 홈 화면으로 돌아가기 위한 홈 어플리케이션(124-1), 상대방과 전화 통화를 할 수 있는 다이얼러(dialer) 어플리케이션(124-2), 전화번호로 식별되는 상대방으로부터 메시지를 수신하는 문자 메시지 어플리케이션(124-3), IM(Instant Message) 어플리케이션(124-4), 브라우저(Browser) 어플리케이션(124-5), 카메라 어플리케이션(124-6), 알람 어플리케이션(124-7), 상대방의 전화번호 또는 주소를 관리하는 폰 북(Phone-Book) 어플리케이션(124-8), 사용자의 통화 로그, 문자 메시지의 수/발신 로그 또는 부재 중 전화 로그 등을 관리하는 콜 로그 어플리케이션(124-9), 이메일(E-mail)로 식별되는 상대방으로부터 메시지를 수신하는 이메일 어플리케이션(124-10), 달력 어플리케이션(124-11), 미디어 플레이어(Media Player) 어플리케이션(124-12), 앨범 어플리케이션(124-13) 또는 시계 어플리케이션(124-14) 중 적어도 하나를 포함할 수 있다. 본 개시에 따른 소프트웨어의 전술한 구성요소들의 명칭은 운영체제의 종류에 달라질 수 있다. 또한, 본 개시에 따른 소프트웨어는 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다.
도 50은 본 개시의 일 실시예에 따르는 서버(400A)를 나타내는 블록도이다.
도 50을 참조하면, 서버(400A)는 키 생성부(41), 암호화부(42), 저장부(43), 송수신부(44), 키 복원부(45) 및 복호화부(46)를 포함할 수 있다. 서버(400A)는 복수의 디바이스들을 포함하는 보안 그룹이 가상 공간에서 공유 가능한 콘텐트를 암호화할 수 있고, 암호화된 콘텐트를 복호화할 수 있다.
서버(400A)는 도 1의 서버(400)에 적용될 수 있다. 또한, 서버(400A)는 도 1 내지 도 46을 참조하여 상술한 콘텐트 암호화 방법 및 콘텐트 복호화 방법을 수행할 수 있다. 그러므로, 이하에서는, 서버(400A)에서 콘텐트 암호화 동작 및 콘텐트 복호화 동작에 대한 구체적인 설명은 생략하기로 한다.
키 생성부(41)는 보안 그룹에 포함된 복수의 디바이스들이 가상 공간에 접속된 경우, 가상 공간에서 생성된 콘텐트에 대한 암호화 키 및 복수의 부분 키들을 생성할 수 있다. 일 실시예에서, 비대칭 암호화 방식을 이용할 경우, 키 생성부(41)는 공개 키 및 개인 키로 구성된 키 쌍을 포함하는 암호화 키를 생성할 수 있다. 이때, 키 생성부(41)는 공개 키 또는 개인 키를 분할하여 복수의 부분 키들을 생성할 수 있다. 다른 실시예에서, 대칭 암호화 방식을 이용할 경우, 키 생성부(41)는 대칭 키를 포함하는 암호화 키를 생성할 수 있다. 이때, 키 생성부(41)는 대칭 키를 분할하여 복수의 부분 키들을 생성할 수 있다.
암호화부(42)는 생성된 암호화 키를 이용하여 콘텐트를 암호화할 수 있다. 구체적으로, 암호화부(42)는 세션 키로 콘텐트를 암호화하고, 암호화 키를 이용하여 세션 키를 암호화할 수 있다. 또한, 암호화부(42)는 생성된 복수의 부분 키들도 암호화할 수 있다. 나아가, 암호화부(42)는 복호화된 콘텐트의 재생 중에, 가상 공간에 접속한 디바이스들 중 하나가 접속을 종료할 경우 재생 중인 콘텐트를 다시 암호화할 수 있다.
일 실시예에서, 비대칭 암호화 방식을 이용할 경우, 암호화부(42)는 공개 키를 이용하여 콘텐트를 암호화할 수 있다. 구체적으로, 암호화부(42)는 세션 키로 콘텐트를 암호화하고, 공개 키를 이용하여 세션 키를 암호화할 수 있다. 다른 실시예에서, 대칭 암호화 방식을 이용할 경우, 암호화부(42)는 대칭 키를 이용하여 콘텐트를 암호화할 수 있다. 구체적으로, 암호화부(42)는 세션 키로 콘텐트를 암호화하고, 대칭 키를 이용하여 세션 키를 암호화할 수 있다.
저장부(43)는 암호화된 콘텐트 및 복호화된 콘텐트 중 적어도 하나를 저장할 수 있다. 또한, 저장부(43)는 암호화 키 및 부분 키 중 적어도 하나를 더 저장할 수 있다. 일 실시예에서, 저장부(43)는 트러스트존(Trust zone)과 같은 보안 구역으로 구현될 수 있으며, 이때, 암호화부(42)에서 콘텐트가 암호화된 이후에, 암호화 키는 삭제될 수 있다.
송수신부(44)는 키 생성부(41)에서 생성된 복수의 부분 키들을 복수의 디바이스들 중 나머지 디바이스들에 각각 전송할 수 있다. 다른 실시예에서, 송수신부(44)는 암호화부(42)에서 암호화된 복수의 부분 키들을 복수의 디바이스들 중 나머지 디바이스들에 각각 전송할 수 있다. 또한, 송수신부(44)는 저장부(43)에 저장된 암호화된 콘텐트를 복수의 디바이스들 중 적어도 하나의 나머지 디바이스에 전송할 수 있다.
키 복원부(45)는 보안 그룹에 포함된 복수의 디바이스들 중 임계 개수 이상의 디바이스들의 복호화 승인들이 원격으로 획득된 경우, 임계 개수 이상의 디바이스들에 각각 저장된 복수의 부분 키들로부터 복호화 키를 복원할 수 있다. 여기서, 복호화 키는 키 생성부(41)에서 생성된 암호화 키에 대응될 수 있다.
복호화부(46)는 복원된 복호화 키를 이용하여 암호화된 콘텐트를 복호화할 수 있다. 일 실시예에서, 복호화부(46)는 복원된 복호화 키로, 암호화된 세션 키를 복호화하고, 복호화된 세션 키로, 암호화된 콘텐트를 복호화할 수 있다. 또한, 암호화된 콘텐트를 복호화한 이후에, 복호화 키 및 복호화된 콘텐트 중 적어도 하나는 삭제될 수 있다.
본 실시예에서, 가상 공간에 접속한 디바이스들 중 적어도 하나가 가상 공간에 대한 접속을 종료하는 경우, 키 복원부(45) 및 복호화부(46) 중 적어도 하나는 동작을 중단하고, 암호화부(42)는 복호화된 콘텐트를 다시 암호화할 수 있다.
본 실시예에 따른 키 생성부(41), 암호화부(42), 키 복원부(45) 및 복호화부(46)는 복수의 프로그램들로 각각 구현되어, 서버 내의 메모리에 각각 저장될 수 있고, 서버 내의 제어부가 상기 메모리에 액세스하여 키 생성 동작, 암호화 동작, 키 복원 동작 및 복호화 동작을 실행할 수 있다. 또한, 본 실시예에 따른 저장부(43)는 서버 내의 메모리의 일부 영역으로 구현될 수 있다. 나아가, 본 실시예에 따른 송수신부(44)는 서버 내의 통신부의 일부로 구현될 수 있다. 따라서, 이하에서는, 도 51을 참조하여 서버의 하드웨어 구현 예에 대해 상술하기로 한다.
도 51은 본 개시의 일 실시예에 따른 서버(400B)의 구성을 설명하기 위한 블록도이다.
도 51을 참조하면, 본 실시예에 따른 서버(400B)는 제어부(410), 메모리(420) 및 송/수신부(430)를 포함할 수 있다. 그러나 도시된 구성요소 모두가 필수구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 서버(400B)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 클라우드 서버(400B)는 구현될 수 있다. 이하 상기 구성요소들에 대해 차례로 살펴본다.
제어부(410)는, 서버(400B)의 전반적인 동작을 제어할 수 있다. 예를 들어, 저장부(410)에 저장된 프로그램들(또는 모듈들)을 실행함으로써, 디바이스로부터 수신된 적어도 하나의 콘텐트를 암호화/복호화할 수 있다. 구체적으로, 제어부(410)는, 보안 그룹에 포함된 제1 내지 제3 디바이스들이 가상 공간에 접속한 경우, 암호화 키 및 복수의 부분 키들을 생성하고, 가상 공간에서 생성된 콘텐트를 암호화하도록 제어할 수 있다. 또한, 제어부(410)는 제1 내지 제3 디바이스들 모두가 암호화된 콘텐트의 복호화를 승인하는 경우, 또는, 제1 내지 제3 디바이스들 중 미리 설정된 임계치 이상의 디바이스들이 암호화된 콘텐트의 복호화를 승인하는 경우, 암호화된 부분 키들로부터 복호화 키를 복원하고, 복원된 복호화 키를 이용하여 암호화된 콘텐트를 복호화하도록 제어할 수 있다.
메모리(420)는 제어부(410)의 처리 및 제어를 위한 프로그램을 저장할 수도 있고, 입/출력되는 데이터들(예컨대, 디바이스로부터 수신된 콘텐트, 디바이스에 관한 정보, 콘텐트에 대한 분석 정보 등)을 저장할 수도 있다. 메모리(420)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, 키 생성 모듈(421), 암호화 모듈(422), 키 복원 모듈(423), 복호화 모듈(424), 확인 공개 키 DB(425), 콘텐트 공개 키 DB(426) 및 콘텐트 DB(427) 등으로 분류할 수 있다.
송/수신부(430)는, 서버(400B)와 복수의 디바이스 간의 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. 구체적으로, 통신부(410)는, 암호화된 콘텐트, 복호화된 콘텐트, 암호화된 부분 키들 중 적어도 하나를 복수의 디바이스들에 전송할 수 있다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.
100: 제1 디바이스
200: 제2 디바이스
300: 제3 디바이스
400: 서버
500: 제4 디바이스

Claims (28)

  1. 소셜 네트워크 서비스를 제공하는 서버에 의해 상기 소셜 네트워크 서비스의 채팅 공간에서 콘텐트를 공유하는 방법으로서,
    상기 채팅 공간을 생성하는 단계;
    공유 그룹을 구성하는 복수의 사용자들에 의해 접근 가능한 상기 채팅 공간에 대한 UI(User Interface) 오브젝트를 제공하는 단계;
    상기 복수의 사용자들 중 어느 하나로부터 수신된 콘텐트를 암호화하는 단계;
    상기 복수의 사용자들 중 어느 하나로부터의 암호화된 콘텐트에 대한 복호화 요청에 응답하여, 상기 채팅 공간에서 상기 복수의 사용자들의 접속을 검출하는 단계; 및
    상기 복수의 사용자들 중 복호화를 승인하는 사용자들이 임계치 이상으로 상기 채팅 공간에 접속하면, 상기 채팅 공간에서 상기 암호화된 콘텐트를 복호화하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 복수의 사용자들은 제1 사용자, 제2 사용자 및 제3 사용자를 포함하고,
    상기 복호화하는 단계는,
    상기 제1 내지 제3 사용자들 중 적어도 두 명이 상기 채팅 공간에 접속하면, 상기 채팅 공간에서 상기 암호화된 콘텐트를 복호화하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 복호화하는 단계 후에, 상기 복수의 사용자들 중 적어도 한 명이 상기 채팅 공간에 대한 접속을 종료하면, 상기 복호화된 콘텐트를 암호화하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 생성하는 단계는, 상기 채팅 공간에서 공유되는 콘텐트에 대한 복호화 조건을 설정하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 복호화 조건을 설정하는 단계는, 상기 복수의 사용자들 중에서, 상기 암호화된 콘텐트를 복호화하기 위해 상기 채팅 공간에 필수적으로 접속해야 하는 적어도 두 명의 필수 사용자들을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 제4항에 있어서,
    상기 복호화 조건을 설정하는 단계는, 복호화된 상기 콘텐트가 상기 복수의 사용자들에게만 공유되도록 상기 복호화된 콘텐트에 대한 공유 제한(limitation)을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제6항에 있어서,
    상기 공유 제한을 결정하는 단계는, 상기 복호화된 콘텐트의 제공 시간, 상기 복호화된 콘텐트에 대한 시각적 워터마크(visible watermark)의 포함 여부, 상기 복호화된 콘텐트에 대한 프린트 스크린 금지 여부, 상기 복호화된 콘텐트의 재생 중 디바이스 흔들기(shaking) 요청 메시지의 전송 여부, 및 상기 복수의 사용자들의 콘텐트 시청 여부에 대한 실시간 검출을 통한 상기 복호화된 콘텐트의 제공 중단 여부 중 적어도 하나를 결정하는 것을 특징으로 하는 방법.
  8. 제4항에 있어서,
    상기 복호화 조건을 설정하는 단계는, 상기 복수의 사용자들에 대한 복호화 요청 방식 및 상기 복수의 사용자들로부터 복호화 승인 방식 중 적어도 하나를 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제8항에 있어서,
    상기 복호화 요청 방식은, 문자 메시지, 이메일, 알림 창, 채팅 메시지 중 적어도 하나를 이용하여 상기 복수의 사용자들에게 복호화 요청을 전송하는 것을 특징으로 하는 방법.
  10. 제8항에 있어서,
    상기 복호화 승인 방식은, 상기 복수의 사용자들에 대한 화상 통화, 생체 인식 데이터, 패스워드 및 핀 코드 중 적어도 하나를 이용하여 상기 복수의 사용자들로부터 복호화 승인을 수신하는 방식인 것을 특징으로 하는 방법.
  11. 제4항에 있어서,
    상기 복호화 조건을 설정하는 단계는, 서로 다른 콘텐트에 대해 서로 다른 복호화 조건들을 각각 설정하는 것을 특징으로 하는 방법.
  12. 제4항에 있어서,
    상기 생성하는 단계는, 상기 복수의 사용자들을 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 복수의 사용자들을 결정하는 단계는, 상기 채팅 공간을 제공하는 어플리케이션이 접근 가능한 주소록을 참조하여, 상기 복수의 사용자들에게 참여 여부를 문의하는 메시지를 발송하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제13항에 있어서,
    상기 복수의 사용자들을 결정하는 단계는, 상기 복수의 사용자들에게 화상 통화, 생체 인식 데이터, 패스워드 및 핀 코드 중 적어도 하나를 요청함으로써, 상기 복수의 사용자들에게 본인 인증을 요청하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  15. 제4항에 있어서,
    상기 생성하는 단계는, 상기 채팅 공간에서 공유되는 콘텐트에 대한 생성 조건을 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제15항에 있어서,
    상기 생성 조건을 결정하는 단계는, 상기 복수의 사용자들 중에서, 상기 콘텐트를 생성하기 위해 상기 채팅 공간에 필수적으로 접속해야 하는 적어도 두 명의 필수 사용자들을 결정하는 단계를 포함하는 것을 특징으로 하는 방법.
  17. 제1항에 있어서,
    상기 복수의 사용자들 중 어느 하나로부터, 생성된 콘텐트를 수신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제17항에 있어서,
    수신된 상기 콘텐트에 대한 공유 폴더를 상기 복수의 사용자들 각각의 디바이스 및 상기 서버 중 적어도 하나에 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  19. 삭제
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    제17항에 있어서,
    암호화된 상기 콘텐트를 상기 복수의 사용자들 각각의 디바이스 및 상기 서버 중 적어도 하나에 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  21. 제17항에 있어서,
    상기 암호화하는 단계는,
    상기 콘텐트를 암호화하기 위한 암호화 키 및 복수의 부분 키들을 생성하는 단계;
    생성된 상기 복수의 부분 키들을 상기 복수의 사용자들에 분배하는 단계; 및
    상기 암호화 키를 이용하여 상기 콘텐트를 암호화하는 단계를 포함하는 것을 특징으로 하는 방법.
  22. 제21항에 있어서,
    상기 암호화하는 단계는, 상기 복수의 부분 키들을 암호화하는 단계를 더 포함하고,
    상기 분배하는 단계는, 암호화된 상기 복수의 부분 키들을 상기 복수의 사용자들에 분배하는 것을 특징으로 하는 방법.
  23. ◈청구항 23은(는) 설정등록료 납부시 포기되었습니다.◈
    제22항에 있어서,
    상기 분배된 부분 키들을 상기 복수의 사용자들의 디바이스들의 보안 구역에 각각 저장하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  24. 제21항에 있어서,
    상기 복호화하는 단계는,
    상기 복수의 사용자들 중 상기 복호화를 승인하는 사용자들이 상기 임계치 이상으로 상기 채팅 공간에 접속하면, 분배된 상기 복수의 부분 키들로부터 상기 암호화 키에 대응하는 복호화 키를 복원하는 단계; 및
    복원된 상기 복호화 키를 이용하여 상기 암호화된 콘텐트를 복호화하는 단계를 포함하는 것을 특징으로 하는 방법.
  25. 소셜 네트워크 서비스를 제공하는 서버로서,
    공유 그룹을 구성하는 복수의 사용자들에 의해 접근 가능한 채팅 공간의 생성 요청을 수신하는 수신부;
    상기 채팅 공간을 생성하고, 상기 채팅 공간에 대한 UI 오브젝트를 제공하며, 상기 복수의 사용자들 중 어느 하나로부터 수신된 콘텐트를 암호화하고, 상기 복수의 사용자들 중 어느 하나로부터의 암호화된 콘텐트에 대한 복호화 요청에 응답하여, 상기 채팅 공간에서 상기 복수의 사용자들의 접속을 검출하고, 상기 복수의 사용자들 중 복호화를 승인하는 사용자들이 임계치 이상으로 상기 채팅 공간에 접속하면, 상기 채팅 공간에서 상기 암호화된 콘텐트를 복호화하는 제어부; 및
    복호화된 상기 콘텐트를 상기 채팅 공간에 제공하는 송신부를 포함하는 서버.
  26. 제25항에 있어서,
    상기 복수의 사용자들은 제1 사용자, 제2 사용자 및 제3 사용자를 포함하고,
    상기 제어부는, 상기 제1 내지 제3 사용자들 중 적어도 두 명이 상기 채팅 공간에 접속하면, 상기 채팅 공간에서 상기 암호화된 콘텐트를 복호화하는 것을 특징으로 하는 서버.
  27. 제25항에 있어서,
    상기 제어부는, 상기 채팅 공간에서 공유되는 콘텐트에 대한 복호화 조건 또는 상기 채팅 공간에서 공유되는 콘텐트에 대한 생성 조건을 설정하는 것을 특징으로 하는 서버.
  28. 소셜 네트워크 서비스의 채팅 공간에서 콘텐트를 공유하는 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체로서, 상기 방법은,
    상기 채팅 공간을 생성하는 단계;
    공유 그룹을 구성하는 복수의 사용자들에 의해 접근 가능한 상기 채팅 공간에 대한 UI 오브젝트를 제공하는 단계;
    상기 복수의 사용자들 중 어느 하나로부터 수신된 콘텐트를 암호화하는 단계;
    상기 복수의 사용자들 중 어느 하나로부터의 암호화된 콘텐트에 대한 복호화 요청에 응답하여, 상기 채팅 공간에서 상기 복수의 사용자들의 접속을 검출하는 단계; 및
    상기 복수의 사용자들 중 복호화를 승인하는 사용자들이 임계치 이상으로 상기 채팅 공간에 접속하면, 상기 채팅 공간에서 상기 암호화된 콘텐트를 복호화하는 단계를 포함하는 것을 특징으로 하는 기록 매체.
KR1020150048328A 2014-04-25 2015-04-06 소셜 네트워크 서비스의 제공 방법 및 그를 위한 서버 KR102428374B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/KR2015/004140 WO2015163736A1 (en) 2014-04-25 2015-04-27 Methods of providing social network service and server performing the same
EP15783790.7A EP3134863B1 (en) 2014-04-25 2015-04-27 Methods of providing social network service and server performing the same
CN201580021900.7A CN106233299B (zh) 2014-04-25 2015-04-27 提供社交网络服务的方法和执行该方法的服务器
US14/696,883 US9781123B2 (en) 2014-04-25 2015-04-27 Methods of providing social network service and server performing the same

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461984257P 2014-04-25 2014-04-25
US61/984,257 2014-04-25
KR1020140052973 2014-04-30
KR20140052973 2014-04-30

Publications (2)

Publication Number Publication Date
KR20150123706A KR20150123706A (ko) 2015-11-04
KR102428374B1 true KR102428374B1 (ko) 2022-08-03

Family

ID=54600145

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150048328A KR102428374B1 (ko) 2014-04-25 2015-04-06 소셜 네트워크 서비스의 제공 방법 및 그를 위한 서버

Country Status (3)

Country Link
EP (1) EP3134863B1 (ko)
KR (1) KR102428374B1 (ko)
CN (1) CN106233299B (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101867326B1 (ko) * 2017-09-04 2018-06-14 주식회사 와임 분할 기능을 이용한 소셜 미디어 제공 방법 및 시스템
TWI694708B (zh) * 2019-05-21 2020-05-21 樹德科技大學 架構於混沌理論之網路資料加密系統
TWI687839B (zh) * 2019-07-15 2020-03-11 天逸財金科技服務股份有限公司 公開文件限定閱覽方法及其系統
KR102538230B1 (ko) * 2021-05-14 2023-05-31 주식회사 카카오엔터프라이즈 콘텐츠 보안 방법 및 장치
EP4191944A1 (en) * 2021-12-06 2023-06-07 Wyplay Methods and devices for content distribution with distributed rights management

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000115153A (ja) * 1998-09-30 2000-04-21 Fujitsu Ltd セキュリティ方法及びセキュリティ装置
JP3644579B2 (ja) * 1998-10-29 2005-04-27 富士通株式会社 セキュリティ強化方法及び装置
US7222231B2 (en) * 2001-04-19 2007-05-22 Hewlett-Packard Development Company, L.P. Data security for distributed file systems
AU2003291040A1 (en) * 2002-11-18 2004-06-15 America Online, Inc. Sharing content based on prior sharing experience
KR20050053292A (ko) * 2003-12-02 2005-06-08 주식회사 월드모닝 메신저 프로그램의 암호화를 이용한 보안채팅시스템제공방법
KR20070027278A (ko) * 2005-09-06 2007-03-09 주식회사 케이티 메신저 기반의 디지털 컨텐츠 거래 시스템과 그 방법
US20070162554A1 (en) * 2006-01-12 2007-07-12 International Business Machines Corporation Generating a public key and a private key in an instant messaging server
CN101064598B (zh) * 2006-04-28 2011-04-20 腾讯科技(深圳)有限公司 一种客户端即时通信数据的加密和解密方法
US7509384B1 (en) * 2008-05-29 2009-03-24 International Business Machines Corporation Integrated method of ensuring instant messaging security on confidential subject matter
US20110307695A1 (en) * 2010-06-14 2011-12-15 Salesforce.Com, Inc. Methods and systems for providing a secure online feed in a multi-tenant database environment
KR101861822B1 (ko) * 2012-04-02 2018-05-29 삼성전자주식회사 폰 북을 이용한 sns 제공 방법 및 이를 위한 이동 단말기

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
전문길 외 2명, "소셜 네트워크 서비스를 위한 키 분배와 사용자 평판을 이용한 접근 제어 메커니즘"*

Also Published As

Publication number Publication date
CN106233299B (zh) 2019-07-26
EP3134863A4 (en) 2017-12-20
EP3134863B1 (en) 2020-10-07
CN106233299A (zh) 2016-12-14
KR20150123706A (ko) 2015-11-04
EP3134863A1 (en) 2017-03-01

Similar Documents

Publication Publication Date Title
US9781123B2 (en) Methods of providing social network service and server performing the same
EP2937802B1 (en) Mobile device and method of sharing content
KR102154737B1 (ko) 콘텐트의 암호화 및 복호화 방법
AU2019250143B2 (en) User interface for managing access to credentials for use in an operation
US10671264B2 (en) Image display and interaction using a mobile device
US11669465B1 (en) Secure storage of data through a multifaceted security scheme
KR102428374B1 (ko) 소셜 네트워크 서비스의 제공 방법 및 그를 위한 서버
US10073985B2 (en) Apparatus and method for trusted execution environment file protection
US11467853B2 (en) User interface for accessing an account
US10586063B2 (en) Method and apparatus for storing file by using a plurality of cloud storages
US11636192B2 (en) Secure login with authentication based on a visual representation of data
US9182889B1 (en) Preventing unintentional user activation of user interface elements
WO2016045469A1 (zh) 信息加密方法和移动终端
KR20160101542A (ko) 복수의 사용자의 활동에 기초하여 콘텐트를 추천하는 방법 및 이를 위한 장치
CN105849743A (zh) 用户终端设备、通信系统及其控制方法
TW201539247A (zh) 密碼輸入與確認方法及其系統
TW201535142A (zh) 使用機器可讀取代碼來對於裝置進行認證和配對
WO2017028277A1 (zh) 指纹识别方法及移动终端
WO2016145624A1 (zh) 一种信息处理方法和移动终端
KR102480414B1 (ko) 복수개의 클라우드 스토리지를 이용한 파일 저장 방법 및 이를 위한 장치
US20220391057A1 (en) Methods and user interfaces for account recovery
WO2021004352A1 (zh) 界面交互方法及终端

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right