KR102544084B1 - Secure instant messaging method and attaratus thereof - Google Patents

Secure instant messaging method and attaratus thereof Download PDF

Info

Publication number
KR102544084B1
KR102544084B1 KR1020210176460A KR20210176460A KR102544084B1 KR 102544084 B1 KR102544084 B1 KR 102544084B1 KR 1020210176460 A KR1020210176460 A KR 1020210176460A KR 20210176460 A KR20210176460 A KR 20210176460A KR 102544084 B1 KR102544084 B1 KR 102544084B1
Authority
KR
South Korea
Prior art keywords
user
key
space
emergency
account
Prior art date
Application number
KR1020210176460A
Other languages
Korean (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 KR1020210176460A priority Critical patent/KR102544084B1/en
Application granted granted Critical
Publication of KR102544084B1 publication Critical patent/KR102544084B1/en

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/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Abstract

보안 인스턴트 메시징 방법 및 장치가 개시된다. 일 실시 예에 따른 관리자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법은 스페이스 프라이빗 키에 대응하는 제1 비상키를 생성하여 서버에 저장하는 단계, 스페이스 프라이빗 키의 복구를 위하여, 서버로부터 제1 사용자의 계정에 대응하는 제1 비상키를 획득하는 단계, 제1 사용자의 계정으로 로그인 된 제1 사용자의 디바이스에 교환 키를 전송하는 단계, 교환 키에 기초하여, 제1 사용자의 유저 프라이빗 키를 획득하는 단계, 및 획득된 제1 비상키를 제1 사용자의 유저 프라이빗 키로 복호화하여 스페이스 프라이빗 키를 복구하는 단계를 포함할 수 있다.A secure instant messaging method and apparatus are disclosed. A secure instant messaging method performed in an administrator's device according to an embodiment includes generating a first emergency key corresponding to a space private key and storing the first emergency key in a server, and recovering the space private key from the server to a first user's account. Obtaining a first emergency key corresponding to , Transmitting an exchange key to a device of a first user logged in with an account of the first user, Obtaining a user private key of the first user based on the exchange key. , and recovering the space private key by decrypting the obtained first emergency key with the user private key of the first user.

Description

보안 인스턴트 메시징 방법 및 장치{SECURE INSTANT MESSAGING METHOD AND ATTARATUS THEREOF}Secure instant messaging method and apparatus {SECURE INSTANT MESSAGING METHOD AND ATTARATUS THEREOF}

아래 실시예들은 보안 인스턴트 메시징 방법 및 장치에 관한 것이다.The embodiments below relate to secure instant messaging methods and apparatus.

인스턴트 메시징(instant messaging) 서비스 또는 인스턴트 메신저는 두 명 이상의 사용자가 네트워크를 통해 실시간으로 텍스트, 사진, 음성 등을 송수신하는 메신저 서비스이다. 인스턴트 메시징 서비스는 사용자 간의 데이터 통신을 위해 메시징 서버를 경유하게 되므로, 통신 데이터가 서버에 저장될 수 있다. 이는 서버에 대한 해킹 등으로 인한 데이터 유출 및 변조가 가능하다는 보안 상의 취약점을 가진다. 이에, 인스턴트 메시징 서비스를 이용한 데이터 통신 과정에서 데이터 유출 방지 등 보안을 위한 암호화 기술이 적용되어야 한다. An instant messaging service or instant messenger is a messenger service in which two or more users transmit and receive text, pictures, voices, etc. in real time through a network. Since the instant messaging service passes through a messaging server for data communication between users, communication data may be stored in the server. This has a security vulnerability in that data leakage and alteration are possible due to hacking of the server. Accordingly, an encryption technology for security, such as data leakage prevention, should be applied in a data communication process using an instant messaging service.

종단간 암호화(End to End Encryption; E2EE)란 메시지를 보내는 곳부터 받는 곳까지 모든 과정에서 암호화된 상태로 메시지를 전달하는 암호화 방식으로, 단대단 암호화라고도 한다. 종단간 암호화를 이용하면, 메시지를 전송하는 사람과 수신하는 사람만 그 내용을 볼 수 있고, 중간에 있는 서버 등은 내용을 볼 수 없어, 인스턴트 메시징 서비스를 통해 송수신되는 데이터를 보호하기 위한 기술로 개발되고 있다.End to End Encryption (E2EE) is an encryption method that transmits a message in an encrypted state in all processes from the sender to the receiver. It is also called end-to-end encryption. When end-to-end encryption is used, only the sender and receiver of the message can see the contents, and the server in the middle cannot see the contents, so it is a technology for protecting data transmitted and received through instant messaging services. are being developed

실시 예는 서버를 통해 송수신되는 데이터가 데이터의 발신자 및 수신자 외의 제3자에게 노출되는 것을 방지하기 위한 보안이 강화된 인스턴트 메시징 서비스를 제공할 수 있다.The embodiment may provide an instant messaging service with enhanced security for preventing data transmitted and received through a server from being exposed to a third party other than the data sender and receiver.

실시 예는 인스턴트 메시징 서비스에서 사용자에 관한 정보를 암호화하기 위한 유저 키의 복구에 이용되는 키를 안전하게 보관 및 유지하는 기술을 제공할 수 있다.The embodiment may provide a technique for safely storing and maintaining a key used to recover a user key for encrypting information about a user in an instant messaging service.

다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical challenges are not limited to the above-described technical challenges, and other technical challenges may exist.

일 측에 따른 관리자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법은 스페이스 프라이빗 키에 대응하는 제1 비상키- 상기 제1 비상키는 상기 스페이스 프라이빗 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 암호문을 포함함 -를 생성하여 서버에 저장하는 단계; 상기 스페이스 프라이빗 키의 복구를 위하여, 상기 서버로부터 제1 사용자의 계정에 대응하는 제1 비상키를 획득하는 단계; 상기 제1 사용자의 계정으로 로그인 된 상기 제1 사용자의 디바이스에 교환 키를 전송하는 단계; 상기 교환 키에 기초하여, 상기 제1 사용자의 유저 프라이빗 키를 획득하는 단계; 및 상기 획득된 제1 비상키를 상기 제1 사용자의 유저 프라이빗 키로 복호화하여 상기 스페이스 프라이빗 키를 복구하는 단계를 포함한다.A secure instant messaging method performed in an administrator's device according to one side includes a first emergency key corresponding to a space private key - the first emergency key is at least one obtained by encrypting the space private key with a user public key of at least one user. generating and storing on a server - including the ciphertext; obtaining a first emergency key corresponding to an account of a first user from the server in order to recover the space private key; transmitting an exchange key to a device of the first user logged in with an account of the first user; obtaining a user private key of the first user based on the exchange key; and recovering the space private key by decrypting the obtained first emergency key with a user private key of the first user.

상기 관리자 및 상기 적어도 하나의 사용자는 보안 인스턴트 메시징 서비스에서 제공하는 스페이스-상기 스페이스는 적어도 하나의 대화방 및 적어도 하나의 사용자를 포함하는 단위임-에 포함될 수 있다.The manager and the at least one user may be included in a space provided by the secure instant messaging service, wherein the space is a unit including at least one chat room and at least one user.

상기 스페이스 프라이빗 키는 상기 스페이스를 관리하는 상기 관리자의 디바이스에서, 상기 스페이스에 대응하는 비대칭 키로 생성될 수 있다.The space private key may be generated as an asymmetric key corresponding to the space in the device of the manager who manages the space.

상기 제1 사용자의 유저 프라이빗 키를 획득하는 단계는 상기 제1 사용자의 디바이스로부터 상기 제1 사용자의 유저 프라이빗 키를 상기 교환 키로 암호화한 제1 암호문을 수신하는 단계; 및 상기 교환 키로 상기 제1 암호문을 복호화하여 상기 제1 사용자의 유저 프라이빗 키를 획득하는 단계를 포함할 수 있다.The obtaining of the user private key of the first user may include receiving a first cipher text obtained by encrypting the user private key of the first user with the exchange key from a device of the first user; and obtaining a user private key of the first user by decrypting the first ciphertext using the exchange key.

상기 제1 사용자의 유저 프라이빗 키를 획득하는 단계는 상기 제1 사용자의 디바이스에 상기 관리자의 인증을 요청하는 단계; 및 상기 관리자의 인증에 기초하여, 상기 제1 사용자의 유저 프라이빗 키를 획득하는 단계를 포함할 수 있다.The obtaining of the user private key of the first user may include requesting authentication of the administrator from a device of the first user; and obtaining a user private key of the first user based on the administrator's authentication.

일 측에 따른 서버에서 수행되는 보안 인스턴트 메시징 방법은 관리자의 디바이스로부터, 스페이스 프라이빗 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 제1 비상키를 수신하는 단계; 상기 수신된 적어도 하나의 제1 비상키를 상기 적어도 하나의 사용자의 계정 각각에 대응하여 저장하는 단계; 상기 관리자의 디바이스로부터 수신된 상기 스페이스 프라이빗 키의 복구 요청에 반응하여, 상기 적어도 하나의 제1 비상키에 대응하는 상기 적어도 하나의 사용자의 계정에 관한 정보를 상기 관리자의 디바이스에 제공하는 단계; 및 상기 정보에 기초하여 상기 적어도 하나의 사용자의 계정 중 제1 사용자의 계정을 선택하는 입력에 반응하여, 상기 제1 사용자의 계정에 대응하여 저장된 제1 비상키를 상기 관리자의 디바이스에 전송하는 단계를 포함한다.A secure instant messaging method performed in a server according to one aspect includes receiving, from a manager's device, at least one first emergency key obtained by encrypting a space private key with a user public key of at least one user; storing the received at least one first emergency key corresponding to each account of the at least one user; providing information about the account of the at least one user corresponding to the at least one first emergency key to the manager's device in response to a request for recovery of the space private key received from the manager's device; and transmitting a first emergency key stored in correspondence with the account of the first user to the device of the manager in response to an input for selecting an account of the first user from among the accounts of the at least one user based on the information. includes

일 측에 따른 관리자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법은 스페이스 프라이빗 키를 제1 암호화 키로 암호화한 제2 암호문을 생성하여 서버에 저장하는 단계; 상기 스페이스 프라이빗 키의 복구를 위하여, 상기 서버로부터 제2 비상키- 상기 제2 비상키는 상기 제1 암호화 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 암호문을 포함함- 및 상기 제2 암호문을 획득하는 단계; 상기 제2 비상키에 대응하는 제2 사용자의 계정으로 로그인 된 상기 제2 사용자의 디바이스에 교환 키를 전송하는 단계; 상기 교환 키에 기초하여, 상기 제2 사용자의 유저 프라이빗 키를 획득하는 단계; 및 상기 제2 비상키를 상기 제2 사용자의 유저 프라이빗 키로 복호화하여 획득된 상기 제1 암호화 키 및 상기 제2 암호문에 기초하여, 상기 스페이스 프라이빗 키를 복구하는 단계를 포함한다.According to one aspect, a secure instant messaging method performed in an administrator's device includes generating a second ciphertext obtained by encrypting a space private key with a first encryption key and storing the second ciphertext in a server; In order to recover the space private key, a second emergency key from the server—the second emergency key includes at least one cipher text obtained by encrypting the first encryption key with a user public key of at least one user—and the first 2 obtaining ciphertext; transmitting an exchange key to a device of a second user logged in with an account of the second user corresponding to the second emergency key; obtaining a user private key of the second user based on the exchange key; and recovering the space private key based on the first encryption key and the second ciphertext obtained by decrypting the second emergency key with the user private key of the second user.

상기 관리자 및 상기 적어도 하나의 사용자는 보안 인스턴트 메시징 서비스에서 제공하는 스페이스-상기 스페이스는 적어도 하나의 대화방 및 적어도 하나의 사용자를 포함하는 단위임-에 포함될 수 있다.The manager and the at least one user may be included in a space provided by the secure instant messaging service, wherein the space is a unit including at least one chat room and at least one user.

상기 스페이스 프라이빗 키는 상기 스페이스를 관리하는 상기 관리자의 디바이스에서, 상기 스페이스에 대응하는 비대칭 키로 생성될 수 있다.The space private key may be generated as an asymmetric key corresponding to the space in the device of the manager who manages the space.

상기 제2 사용자의 유저 프라이빗 키를 획득하는 단계는 상기 제2 사용자의 디바이스로부터 상기 제2 사용자의 유저 프라이빗 키를 상기 교환 키로 암호화한 제3 암호문을 수신하는 단계; 및 상기 교환 키로 상기 제3 암호문을 복호화하여 상기 제2 사용자의 유저 프라이빗 키를 획득하는 단계를 포함할 수 있다.The obtaining of the user private key of the second user may include receiving third cipher text obtained by encrypting the user private key of the second user with the exchange key from a device of the second user; and obtaining a user private key of the second user by decrypting the third ciphertext using the exchange key.

상기 제2 사용자의 유저 프라이빗 키를 획득하는 단계는 상기 제2 사용자의 디바이스에 상기 관리자의 인증을 요청하는 단계; 및 상기 관리자의 인증에 기초하여, 상기 제2 사용자의 유저 프라이빗 키를 획득하는 단계를 포함할 수 있다.The obtaining of the user private key of the second user may include requesting authentication of the administrator from a device of the second user; and obtaining a user private key of the second user based on the administrator's authentication.

상기 스페이스 프라이빗 키를 복구하는 단계는 상기 제1 암호화 키로 상기 제2 암호문을 복호화하여 상기 스페이스 프라이빗 키를 복구하는 단계를 포함할 수 있다.The recovering of the space private key may include recovering the space private key by decrypting the second ciphertext using the first encryption key.

일 측에 따른 서버에서 수행되는 보안 인스턴트 메시징 방법은 관리자의 디바이스로부터 수신된 스페이스 프라이빗 키를 제1 암호화 키로 암호화한 제2 암호문을 저장하는 단계; 적어도 하나의 사용자의 유저 퍼블릭 키로 상기 제1 암호화 키를 암호화한 적어도 하나의 제2 비상키를 상기 적어도 하나의 사용자의 계정 각각에 대응하여 저장하는 단계; 상기 관리자의 디바이스로부터 수신된 상기 스페이스 프라이빗 키의 복구 요청에 반응하여, 상기 제2 암호문 및 상기 제2 비상키에 대응하는 사용자의 계정에 관한 정보를 상기 관리자의 디바이스에 제공하는 단계; 및 상기 정보에 기초하여 상기 적어도 하나의 사용자의 계정 중 제2 사용자의 계정을 선택하는 상기 관리자의 입력에 반응하여, 상기 제2 사용자의 계정에 대응하여 저장된 상기 제2 비상키를 상기 관리자의 디바이스에 전송하는 단계를 포함한다.A secure instant messaging method performed in a server according to one aspect includes storing a second cipher text obtained by encrypting a space private key received from a manager's device with a first encryption key; storing at least one second emergency key obtained by encrypting the first encryption key with the user public key of at least one user in correspondence with each account of the at least one user; providing information about the account of the user corresponding to the second passphrase and the second emergency key to the device of the administrator in response to a request for recovery of the space private key received from the device of the administrator; and in response to an input of the manager selecting an account of a second user from among the accounts of the at least one user based on the information, the second emergency key stored in correspondence to the account of the second user is stored on the device of the manager. It includes sending to

상기 적어도 하나의 제2 비상키를 상기 적어도 하나의 사용자의 계정 각각에 대응하여 저장하는 단계는 상기 관리자의 디바이스로부터, 상기 적어도 하나의 사용자의 유저 퍼블릭 키로 상기 제1 암호화 키를 암호화한 적어도 하나의 제2 비상키를 수신하는 단계; 및 상기 관리자의 디바이스로부터 상기 제1 암호화 키를 획득한 제3 사용자의 디바이스로부터, 상기 적어도 하나의 사용자의 유저 퍼블릭 키로 상기 제1 암호화 키를 암호화한 적어도 하나의 제2 비상키를 수신하는 단계 중 적어도 하나를 포함할 수 있다.The storing of the at least one second emergency key corresponding to each account of the at least one user may include at least one encryption key obtained by encrypting the first encryption key with the user public key of the at least one user from the manager's device. Receiving a second emergency key; and receiving at least one second emergency key obtained by encrypting the first encryption key with the user public key of the at least one user from a device of a third user who has obtained the first encryption key from the manager's device. may contain at least one.

일 측에 따른 제3 사용자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법은 관리자의 디바이스로부터, 제1 암호화 키를 상기 제3 사용자의 유저 퍼블릭 키로 암호화한 상기 제3 사용자의 계정에 대응하는 제2 비상키를 획득하는 단계; 상기 획득된 제2 비상키를 상기 제3 사용자의 유저 프라이빗 키로 복호화하여 상기 제1 암호화 키를 획득하는 단계; 및 상기 제1 암호화 키를 적어도 하나의 다른 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 제2 비상키를 생성하여 서버에 저장하는 단계를 포함한다.According to one aspect, a secure instant messaging method performed on a device of a third user includes a second emergency key corresponding to an account of the third user obtained by encrypting a first encryption key with a user public key of the third user, from a device of an administrator. obtaining; obtaining the first encryption key by decrypting the obtained second emergency key with a user private key of the third user; and generating at least one second emergency key obtained by encrypting the first encryption key with a user public key of at least one other user and storing the second emergency key in a server.

일 측에 따른 관리자의 디바이스는 스페이스 프라이빗 키에 대응하는 제1 비상키- 상기 제1 비상키는 상기 스페이스 프라이빗 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 암호문을 포함함 -를 생성하여 서버에 저장하고, 상기 스페이스 프라이빗 키의 복구를 위하여, 상기 서버로부터 제1 사용자의 계정에 대응하는 제1 비상키를 획득하고, 상기 제1 사용자의 계정으로 로그인 된 상기 제1 사용자의 디바이스에 교환 키를 전송하고, 상기 교환 키에 기초하여, 상기 제1 사용자의 유저 프라이빗 키를 획득하며, 상기 획득된 제1 비상키를 상기 제1 사용자의 유저 프라이빗 키로 복호화하여 상기 스페이스 프라이빗 키를 복구하는, 적어도 하나의 프로세서를 포함한다.An administrator's device according to one side generates a first emergency key corresponding to a space private key, wherein the first emergency key includes at least one cipher text obtained by encrypting the space private key with a user public key of at least one user. and store it in a server, and in order to recover the space private key, a first emergency key corresponding to the account of the first user is obtained from the server, and the device of the first user logged in with the account of the first user Transmitting an exchange key, obtaining a user private key of the first user based on the exchange key, and recovering the space private key by decrypting the obtained first emergency key with the user private key of the first user. , contains at least one processor.

일 측에 따른 서버는 관리자의 디바이스로부터, 스페이스 프라이빗 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 제1 비상키를 수신하고, 상기 수신된 적어도 하나의 제1 비상키를 상기 적어도 하나의 사용자의 계정 각각에 대응하여 저장하고, 상기 관리자의 디바이스로부터 수신된 상기 스페이스 프라이빗 키의 복구 요청에 반응하여, 상기 적어도 하나의 제1 비상키에 대응하는 상기 적어도 하나의 사용자의 계정에 관한 정보를 상기 관리자의 디바이스에 제공하며, 상기 정보에 기초하여 상기 적어도 하나의 사용자의 계정 중 제1 사용자의 계정을 선택하는 입력에 반응하여, 상기 제1 사용자의 계정에 대응하여 저장된 제1 비상키를 상기 관리자의 디바이스에 전송하는, 적어도 하나의 프로세서를 포함한다.The server according to one side receives at least one first emergency key obtained by encrypting a space private key with a user public key of at least one user, from a device of an administrator, and converts the received at least one first emergency key to the at least one user public key. Information about the at least one user's account corresponding to the at least one first emergency key stored in correspondence with each user's account and in response to a request for recovery of the space private key received from the manager's device is provided to the manager's device, and in response to an input for selecting an account of the first user from among the accounts of the at least one user based on the information, a first emergency key stored in correspondence to the account of the first user is provided. and at least one processor for transmitting to the manager's device.

일 측에 따른 관리자의 디바이스는 스페이스 프라이빗 키를 제1 암호화 키로 암호화한 제2 암호문을 생성하여 서버에 저장하고, 상기 스페이스 프라이빗 키의 복구를 위하여, 상기 서버로부터 제2 비상키- 상기 제2 비상키는 상기 제1 암호화 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 암호문을 포함함- 및 상기 제2 암호문을 획득하고, 상기 제2 비상키에 대응하는 제2 사용자의 계정으로 로그인 된 상기 제2 사용자의 디바이스에 교환 키를 전송하고, 상기 교환 키에 기초하여, 상기 제2 사용자의 유저 프라이빗 키를 획득하며, 상기 제2 비상키를 상기 제2 사용자의 유저 프라이빗 키로 복호화하여 획득된 상기 제1 암호화 키 및 상기 제2 암호문에 기초하여, 상기 스페이스 프라이빗 키를 복구하는, 적어도 하나의 프로세서를 포함한다.An administrator's device according to one side generates and stores a second ciphertext obtained by encrypting a space private key with a first encryption key in a server, and in order to recover the space private key, the second emergency key-the second emergency key is generated from the server. The key includes at least one cipher text obtained by encrypting the first encryption key with a user public key of at least one user - and obtains the second cipher text, and logs in with an account of a second user corresponding to the second emergency key. An exchange key is transmitted to the device of the second user, the user private key of the second user is obtained based on the exchange key, and the second emergency key is decrypted and obtained with the user private key of the second user. and at least one processor for recovering the space private key based on the first encryption key and the second cipher text.

일 측에 따른 서버는 관리자의 디바이스로부터 수신된 스페이스 프라이빗 키를 제1 암호화 키로 암호화한 제2 암호문을 저장하고, 적어도 하나의 사용자의 유저 퍼블릭 키로 상기 제1 암호화 키를 암호화한 적어도 하나의 제2 비상키를 상기 적어도 하나의 사용자의 계정 각각에 대응하여 저장하고, 상기 관리자의 디바이스로부터 수신된 상기 스페이스 프라이빗 키의 복구 요청에 반응하여, 상기 제2 암호문 및 상기 제2 비상키에 대응하는 사용자의 계정에 관한 정보를 상기 관리자의 디바이스에 제공하며, 상기 정보에 기초하여 상기 적어도 하나의 사용자의 계정 중 제2 사용자의 계정을 선택하는 상기 관리자의 입력에 반응하여, 상기 제2 사용자의 계정에 대응하여 저장된 상기 제2 비상키를 상기 관리자의 디바이스에 전송하는, 적어도 하나의 프로세서를 포함한다.The server according to one side stores second cipher text obtained by encrypting the space private key received from the manager's device with the first encryption key, and stores the second ciphertext obtained by encrypting the first encryption key with the user public key of at least one user. An emergency key is stored in correspondence with each of the at least one user's account, and in response to a request for recovery of the space private key received from the manager's device, the second ciphertext and the user corresponding to the second emergency key Provides account-related information to the manager's device, and responds to the manager's input for selecting the second user's account from among the at least one user's account based on the information, and responds to the second user's account. and at least one processor for transmitting the stored second emergency key to the manager's device.

일 측에 따른 제3 사용자의 디바이스는 관리자의 디바이스로부터, 제1 암호화 키를 상기 제3 사용자의 유저 퍼블릭 키로 암호화한 제3 사용자의 계정에 대응하는 제2 비상키를 획득하고, 상기 획득된 제2 비상키를 상기 제3 사용자의 유저 프라이빗 키로 복호화하여 상기 제1 암호화 키를 획득하며, 상기 제1 암호화 키를 적어도 하나의 다른 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 제2 비상키를 생성하여 서버에 저장하는, 적어도 하나의 프로세서를 포함한다.A device of a third user according to one side obtains, from a device of an administrator, a second emergency key corresponding to an account of a third user in which a first encryption key is encrypted with a user public key of the third user, and the obtained 2 Decrypting the emergency key with the user private key of the third user to obtain the first encryption key, and generating at least one second emergency key obtained by encrypting the first encryption key with the user public key of at least one other user Stored in a server, includes at least one processor.

실시 예는 종단간 암호화 방식으로 서버를 통해 디바이스 간 데이터를 송수신하여, 보안이 강화된 인스턴트 메시징 서비스를 제공할 수 있다.The embodiment may provide an instant messaging service with enhanced security by transmitting and receiving data between devices through a server in an end-to-end encryption method.

실시예는 데이터를 암호화하여, 서버를 통해 송수신 및 저장되도록 함으로써, 서버를 포함한 제3자로부가 데이터에 접근하는 것을 방지할 수 있다.The embodiment encrypts data so that it is transmitted, received, and stored through a server, thereby preventing access to the data by a third party including the server.

실시 예는 인스턴트 메시징 서비스에서 사용자에 관한 정보를 암호화하기 위한 유저 키의 복구에 이용되는 키를 안전하게 보관 및 유지함으로써, 인스턴트 메시징 서비스에서 제공하는 대화방을 통해 송수신된 메시지와 같은 사용자에 관한 정보의 분실을 방지하고, 해당 사용자의 디바이스에 안전하게 복구할 수 있는 기술을 제공할 수 있다.The embodiment safely stores and maintains a key used to recover a user key for encrypting information about a user in an instant messaging service, thereby preventing loss of information about a user, such as messages transmitted and received through a chat room provided by an instant messaging service. can be prevented, and a technology that can be safely restored to the user's device can be provided.

도 1은 일실시예에 따른 보안 인스턴트 메시징 시스템 구성의 예시도이다.
도 2는 일 실시 예에 따른 스페이스 프라이빗 키의 복구를 위한 제1 비상 키를 설명하기 위한 도면이다.
도 3은 일 실시 예에 따른 제1 비상키에 기초하여 스페이스 프라이빗 키를 복구하기 위한 동작 흐름도이다.
도 4는 일 실시 예에 따른 관리자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법의 동작 흐름도이다.
도 5는 일 실시 예에 따른 서버에서 수행되는 보안 인스턴트 메시징 방법의 동작 흐름도이다.
도 6은 일 실시 예에 따른 스페이스 프라이빗 키의 복구를 위한 제2 비상 키를 설명하기 위한 도면이다.
도 7은 일 실시 예에 따른 제2 비상키에 기초하여 스페이스 프라이빗 키를 복구하기 위한 동작 흐름도이다.
도 8은 일 실시 예에 따른 관리자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법의 동작 흐름도이다.
도 9는 일 실시 예에 따른 서버에서 수행되는 보안 인스턴트 메시징 방법의 동작 흐름도이다.
도 10은 일 실시 예에 따른 제3 사용자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법의 동작 흐름도이다.
도 11은 일 실시 예에 따른 장치의 구성의 예시도이다.
1 is an exemplary diagram of a secure instant messaging system configuration according to one embodiment.
2 is a diagram for explaining a first emergency key for recovery of a space private key according to an embodiment.
3 is an operation flowchart for recovering a space private key based on a first emergency key according to an embodiment.
4 is an operation flowchart of a secure instant messaging method performed in a manager's device according to an embodiment.
5 is an operation flowchart of a secure instant messaging method performed in a server according to an embodiment.
6 is a diagram for explaining a second emergency key for recovery of a space private key according to an embodiment.
7 is an operation flowchart for recovering a space private key based on a second emergency key according to an embodiment.
8 is an operation flowchart of a secure instant messaging method performed in a manager's device according to an embodiment.
9 is an operation flowchart of a secure instant messaging method performed in a server according to an embodiment.
10 is an operation flowchart of a secure instant messaging method performed in a device of a third user according to an embodiment.
11 is an exemplary diagram of a configuration of a device according to an embodiment.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for illustrative purposes only, and may be changed and implemented in various forms. Therefore, the form actually implemented is not limited only to the specific embodiments disclosed, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical idea described in the embodiments.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Although terms such as first or second may be used to describe various components, such terms should only be construed for the purpose of distinguishing one component from another. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.It should be understood that when an element is referred to as being “connected” to another element, it may be directly connected or connected to the other element, but other elements may exist in the middle.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "have" are intended to designate that the described feature, number, step, operation, component, part, or combination thereof exists, but one or more other features or numbers, It should be understood that the presence or addition of steps, operations, components, parts, or combinations thereof is not precluded.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in this specification, it should not be interpreted in an ideal or excessively formal meaning. don't

이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. In the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted.

도 1은 일실시예에 따른 보안 인스턴트 메시징 시스템 구성의 예시도이다.1 is an exemplary diagram of a secure instant messaging system configuration according to one embodiment.

도 1을 참조하면, 일 실시 예에 따른 보안 인스턴트 메시징 시스템은 사용자의 디바이스(110), 서버(120) 및 데이터베이스(130)를 포함할 수 있다. 데이터베이스(130)는 서버(120)에서 접근 가능한 데이터를 저장하는 저장 공간으로, 데이터베이스(130)에 저장된 데이터는 서버(120)에 저장된 데이터로 이해될 수 있으며, 서버(120)에 데이터를 저장하는 것은 서버(120)를 통해 데이터베이스(130)에 데이터를 저장하는 것으로 이해될 수 있다. 데이터베이스(130)는 서버(120)에 포함될 수도 있고, 서버 외부에 존재할 수도 있으나, 이하에서 설명의 편의를 위하여 데이터베이스(130)는 서버(120)에 포함된 것으로 예를 들어 설명한다. Referring to FIG. 1 , a secure instant messaging system according to an embodiment may include a user's device 110 , a server 120 and a database 130 . The database 130 is a storage space for storing data accessible from the server 120. Data stored in the database 130 can be understood as data stored in the server 120, and data stored in the server 120 This may be understood as storing data in database 130 via server 120 . The database 130 may be included in the server 120 or may exist outside the server, but for convenience of explanation, the database 130 will be described as being included in the server 120 as an example.

일 실시 예에 따른 보안 인스턴트 메시징 시스템은 보안 인스턴트 메시징 서비스를 제공하는 시스템으로, 서비스 이용자 간의 텍스트, 사진, 미디어 등을 송수신할 수 있는 서비스를 제공할 수 있다. 이하에서, 보안 인스턴트 메시징 시스템은 ‘시스템'으로 간략하게 지칭될 수 있다.A secure instant messaging system according to an embodiment is a system that provides a secure instant messaging service, and can provide a service capable of transmitting and receiving text, photos, media, and the like between service users. Hereinafter, the secure instant messaging system may be briefly referred to as 'system'.

인스턴트 메시징 서비스는 사용자가 네트워크를 통해 실시간으로 텍스트, 사진, 음성 등을 송수신하는 메신저 서비스이다. 인스턴트 메시징 서비스는 어플리케이션, 프로그램 등의 형태로 사용자의 단말에 설치되어 사용자에게 메신저 서비스를 제공할 수 있다. 인스턴트 메시징 서비스는 사용자가 지정한 상대방과 텍스트 등의 데이터를 포함하는 메시지를 송수신할 수 있는 대화방을 제공할 수 있으며, 대화방을 통해 송수신된 데이터를 표시하여 사용자에게 메시지를 제공할 수 있다. 하나의 대화방에는 하나 이상의 사용자가 포함될 수 있으며, 단수의 사용자만 포함하여 자신과의 대화방을 생성하여 메시지를 송수신하는 것도 가능하다. 대화방에 포함된 사용자(들)은 대화방에서 송수신된 텍스트, 사진 등 메시지의 내용을 공유할 수 있다. 인스턴트 메시징 서비스는 가입 절차에 따라 사용자 별 계정을 생성할 수 있으며, 사용자의 계정에 대응하여 대화방 및 메시지를 관리할 수 있다. 사용자는 인스턴트 메시징 서비스에 가입하여 생성된 계정으로 로그인 된 디바이스를 이용하여, 인스턴트 메시징 서비스에 가입된 사용자(들)과 대화방을 통해 메시지를 송수신할 수 있다. 이하에서, 사용자의 디바이스(110)는 인스턴트 메시징 서비스에 가입된 사용자의 계정으로 로그인 된 디바이스를 의미할 수 있다. 이하에서, 인스턴트 메시징 서비스를 이용하는 사용자는 경우에 따라 자연인인 사용자 혹은 인스턴트 메시징 서비스에 가입된 계정을 의미하는 것으로 이해될 수 있다.An instant messaging service is a messenger service in which a user transmits and receives text, picture, voice, etc. through a network in real time. The instant messaging service may be installed in a user's terminal in the form of an application or program to provide a messenger service to the user. The instant messaging service may provide a chat room through which a message including data such as text may be transmitted/received with a user designated counterpart, and the message may be provided to the user by displaying data transmitted/received through the chat room. One or more users may be included in one chat room, and it is also possible to send and receive messages by creating a chat room with only one user. The user(s) included in the chat room may share contents of messages such as texts and photos transmitted and received in the chat room. The instant messaging service may create an account for each user according to a subscription procedure, and may manage chat rooms and messages corresponding to the user's account. The user may send and receive messages with the user(s) subscribed to the instant messaging service through a chat room using a device logged in with an account created by subscribing to the instant messaging service. Hereinafter, the user's device 110 may refer to a device logged in with an account of a user subscribed to an instant messaging service. Hereinafter, a user using an instant messaging service may be understood to mean a user who is a natural person or an account subscribed to an instant messaging service according to circumstances.

일 실시 예에 따르면, 인스턴트 메시징 서비스는 적어도 하나의 대화방 및 적어도 하나의 사용자를 포함하는 '스페이스(space)' 단위를 제공할 수 있다. 예를 들어, 스페이스는 특정 기업에 대응하여 생성될 수 있으며, 이 경우 스페이스에는 해당 기업의 구성원들에 대응하는 계정들이 포함될 수 있다. 생성된 스페이스에 대응하는 기업의 구성원들은 인스턴트 메시징 서비스에 가입된 계정을 이용하여 스페이스 내에 대화방을 생성하여 정보를 공유할 수 있다. 스페이스는 임의의 사용자에 의해 개설될 수 있으며, 적어도 하나의 관리자가 지정될 수 있다. 예를 들어, 스페이스를 개설한 사용자(이하, 스페이스 개설자)는 스페이스에 포함된 사용자들 중 적어도 하나를 스페이스 관리자로 지정할 수 있다. 스페이스 관리자는 스페이스에 포함된 사용자(들)의 정보 및/또는 스페이스에 포함된 대화방(들)의 정보를 획득할 수 있다. 이 외에도 스페이스 관리자는 스페이스 관리를 위한 권한을 가질 수 있다. According to an embodiment, an instant messaging service may provide a 'space' unit including at least one chat room and at least one user. For example, a space may be created corresponding to a specific company, and in this case, the space may include accounts corresponding to members of the company. Members of a company corresponding to the created space may share information by creating a chat room in the space using an account subscribed to the instant messaging service. A space can be opened by any user, and at least one administrator can be designated. For example, a user who created a space (hereinafter referred to as a space creator) may designate at least one of users included in the space as a space manager. The space manager may obtain information of user(s) included in the space and/or information of chat room(s) included in the space. In addition to this, space administrators can have authority for space management.

보안 인스턴트 메시징 서비스는 보안이 강화된 인스턴트 메시징 서비스로, 종단간 암호화(end-to-end encryption) 방식으로 데이터를 암호화(encryption)하여 송수신하는 인스턴트 메시징 서비스를 포함할 수 있다.The secure instant messaging service is an instant messaging service with enhanced security, and may include an instant messaging service in which data is encrypted and transmitted/received using an end-to-end encryption method.

시스템에서 송수신되는 데이터 및/또는 저장되는 데이터는 보안을 위해 암호화된 데이터에 해당할 수 있다. 보다 구체적으로, 보안 인스턴트 메시징 시스템을 통해 송수신 및/또는 저장되는 데이터는 지정된 수신자가 해독할 수 있도록 종단간 암호화 방식으로 암호화될 수 있다. 지정된 수신자는 다양한 방식으로 데이터를 수신하는 대상으로 지정된 사용자를 포함할 수 있으며, 예를 들어, 발신자에 의해 수신자로 지정될 수도 있고, 특정 그룹에 속하여 자동으로 수신자로 지정될 수 있으며, 보안 인스턴트 메시징 서비스에서 데이터가 발신된 대화방에 포함된 사용자(들)이 수신자로 지정될 수 있다. 시스템에서 서버(120)를 통해 송수신되는 데이터 및/또는 서버에 저장되는 데이터는 종단간 암호화 방식으로 암호화된 데이터이므로, 서버(120) 및 서버(120)에 접근한 제3자는 원래의 데이터를 참조하거나 위/변조할 수 없어 보안이 강화된 보안 인스턴트 메시징 서비스가 제공될 수 있다.Data transmitted/received and/or stored in the system may correspond to data encrypted for security. More specifically, data transmitted, received, and/or stored via a secure instant messaging system may be encrypted in an end-to-end encryption manner such that it can be decrypted by designated recipients. Designated recipients may include users who are designated as targets for receiving data in various ways, for example, may be designated as recipients by the sender, may be automatically designated as recipients belonging to a specific group, and secure instant messaging In the service, the user(s) included in the chat room in which data is sent may be designated as the receiver. Since the data transmitted and received by the system through the server 120 and/or the data stored in the server are encrypted data through an end-to-end encryption method, the server 120 and a third party accessing the server 120 refer to the original data. A secure instant messaging service with enhanced security can be provided because it cannot be altered or forged/falsified.

서버(120) 및 사용자의 디바이스(110)는 네트워크를 통해 데이터를 송수신할 수 있다. 예를 들어, 서버(120) 및 사용자의 디바이스(110)는 보안 인스턴트 메시징 서비스에 관한 어플리케이션에 의해 형성된 네트워크를 통해 데이터를 송수신할 수 있다. 서버(120) 및 사용자의 디바이스(110) 사이의 데이터 통신은 네트워크 암호화에 기초하여 수행될 수 있다. 예를 들어, SSL(Secure Sockets Layer)에 따라, 서버(120)와 클라이언트인 사용자의 디바이스(110) 사이에 데이터 통신이 수행될 수 있다. 서버(120) 및 사용자의 디바이스(110) 사이에서 송수신되는 데이터는 서버(120) 및 사용자의 디바이스(110) 간의 대칭 키로 암호화되어 송수신될 수 있다. 서버(120) 및 사용자의 디바이스(110) 간의 대칭 키는 서버에서 클라이언트에 배포한 퍼블릭 키(public key)로 암호화되어 서버(120)로 전송될 수 있고, 서버(120)는 퍼블릭 키에 대응하는 프라이빗 키(private key)로 복호화(decryption)하여 대칭 키를 확인할 수 있다. 통신 세션에서 서버와 클라이언트는 대칭 키로 데이터를 암호화하여 데이터를 송수신함으로써, 보안을 유지할 수 있다.The server 120 and the user's device 110 may transmit and receive data over a network. For example, the server 120 and the user's device 110 may transmit and receive data through a network formed by an application related to a secure instant messaging service. Data communication between the server 120 and the user's device 110 may be performed based on network encryption. For example, data communication may be performed between the server 120 and the user's device 110 as a client according to Secure Sockets Layer (SSL). Data transmitted/received between the server 120 and the user's device 110 may be encrypted with a symmetric key between the server 120 and the user's device 110 before being transmitted/received. The symmetric key between the server 120 and the user's device 110 may be encrypted with a public key distributed by the server to the client and transmitted to the server 120, and the server 120 may correspond to the public key. You can verify the symmetric key by decrypting it with the private key. In a communication session, the server and the client can maintain security by encrypting data with a symmetric key and transmitting and receiving data.

이하에서 설명하는 서버 및 사용자의 디바이스 간의 데이터 송수신 과정은 네트워크 암호화 방식으로 암호화한 데이터를 송수신하는 과정을 포함할 수 있다.A process of transmitting and receiving data between a server and a user's device described below may include a process of transmitting and receiving data encrypted by a network encryption method.

데이터베이스(130)는 보안 인스턴트 메시징 서비스에 관한 데이터를 저장할 수 있다. 보안 인스턴트 메시징 서비스에 관한 데이터는 보안 인스턴트 메시징 서비스 제공을 위해 서버에서 관리하는 데이터로, 예를 들어, 보안 인스턴트 메시징 서비스에 가입한 사용자들의 식별 정보, 사용자에 대응하는 대화방 정보, 대화방을 통해 송수신된 메시지 정보 등을 포함할 수 있다.Database 130 may store data relating to secure instant messaging services. Data related to the secure instant messaging service is data managed by the server to provide the secure instant messaging service, for example, identification information of users who have subscribed to the secure instant messaging service, chat room information corresponding to the user, information transmitted and received through the chat room. It may include message information and the like.

보안 인스턴트 메시징 서비스에 관한 데이터는 서버(120)에 의해 데이터베이스(130)에 저장될 수 있으며, 데이터의 종류에 따라 서로 다른 데이터베이스에 저장될 수 있다.Data related to the secure instant messaging service may be stored in the database 130 by the server 120, and may be stored in different databases according to types of data.

데이터베이스(130)는 보안 인스턴트 메시징 서비스에 가입된 사용자의 퍼블릭 키를 저장할 수 있다. 사용자의 퍼블릭 키는 사용자의 계정에 대응하여 데이터베이스(130)에 저장될 수 있다. 데이터베이스(130)는 보안 인스턴트 메시징 서비스에 가입된 복수의 사용자들의 계정들에 대응하는 사용자의 퍼블릭 키들을 저장할 수 있으며, 퍼블릭 키들 각각은 사용자의 계정에 대응하여 저장될 수 있다. 예를 들어, 사용자의 퍼블릭 키는 사용자의 계정으로 인덱싱되어 데이터베이스(130)에 저장될 수 있다.The database 130 may store public keys of users subscribed to the secure instant messaging service. The user's public key may be stored in the database 130 corresponding to the user's account. The database 130 may store public keys of users corresponding to accounts of a plurality of users subscribed to the secure instant messaging service, and each of the public keys may be stored corresponding to the user's account. For example, a user's public key may be indexed to the user's account and stored in database 130 .

사용자의 퍼블릭 키는 사용자의 계정에 대응하여 사용자의 디바이스에서 생성될 수 있으며, 퍼블릭 키로 암호화한 데이터를 복호화할 수 있는 프라이빗 키가 함께 생성될 수 있다. 이하에서, 사용자의 계정에 대응하는 퍼블릭 키 및 이에 대응하는 프라이빗 키의 쌍은 유저 키(user key)로 지칭될 수 있다. 다시 말해, 사용자의 계정에 대응하는 유저 키는 비대칭키로, 암호화 키인 퍼블릭 키 및 복호화 키인 프라이빗 키를 포함한다. 이하에서, 유저 키 중 퍼블릭 키는 유저 퍼블릭 키, 유저 키 중 프라이빗 키는 유저 프라이빗 키로 지칭될 수 있다.The user's public key may be generated in the user's device in correspondence with the user's account, and a private key capable of decrypting data encrypted with the public key may be generated together. Hereinafter, a pair of a public key corresponding to a user's account and a private key corresponding thereto may be referred to as a user key. In other words, the user key corresponding to the user's account is an asymmetric key and includes a public key as an encryption key and a private key as a decryption key. Hereinafter, a public key among user keys may be referred to as a user public key, and a private key among user keys may be referred to as a user private key.

사용자의 디바이스(110)는 사용자의 계정에 대응하는 유저 키를 생성하여, 유저 프라이빗 키를 디바이스(110)에 저장하고, 유저 퍼블릭 키를 서버(120)에 전송할 수 있다. 서버(120)는 사용자의 디바이스(110)로부터 유저 퍼블릭 키를 수신하여, 데이터베이스(130)에 저장할 수 있다. 다시 말해, 사용자의 디바이스(110)에서 생성된 사용자의 계정에 대응하는 유저 키 중 유저 퍼블릭 키는 서버(120)에 의해 데이터베이스(130)에 저장되고, 유저 프라이빗 키는 사용자의 디바이스(110)에 저장될 수 있다. 서버는 유저 프라이빗 키를 보유하고 있지 않으므로, 서버에서 유저 퍼블릭 키로 암호화된 데이터를 복호화할 수 없다. 유저 퍼블릭 키는 사용자의 디바이스(110)에도 저장될 수 있다.The user's device 110 may generate a user key corresponding to the user's account, store the user private key in the device 110 , and transmit the user public key to the server 120 . The server 120 may receive a user public key from the user's device 110 and store it in the database 130 . In other words, among the user keys corresponding to the user's account generated in the user's device 110, the user public key is stored in the database 130 by the server 120, and the user private key is stored in the user's device 110. can be stored Since the server does not hold the user's private key, the server cannot decrypt data encrypted with the user's public key. The user public key may also be stored in the user's device 110 .

데이터베이스(130)는 보안 인스턴트 메시징 서비스에서 생성된 스페이스에 대응하여, 스페이스 퍼블릭 키를 저장할 수 있다. 스페이스 퍼블릭 키는 스페이스 개설 시, 스페이스 개설자의 디바이스에서 생성될 수 있으며, 스페이스 퍼블릭 키로 암호화한 데이터를 복호화할 수 있는 스페이스 프라이빗 키가 함께 생성될 수 있다. 이하에서, 스페이스에 대응하는 스페이스 퍼블릭 키 및 이에 대응하는 스페이스 프라이빗 키의 쌍은 스페이스 암호 키로 지칭될 수 있다. 다시 말해, 스페이스에 대응하는 스페이스 암호 키는 비대칭키로, 암호화 키인 스페이스 퍼블릭 키 및 복호화 키인 스페이스 프라이빗 키를 포함한다.The database 130 may store a space public key corresponding to a space created in the secure instant messaging service. The space public key can be generated on the device of the space creator when the space is opened, and a space private key capable of decrypting data encrypted with the space public key can be generated together. Hereinafter, a pair of a space public key corresponding to a space and a space private key corresponding thereto may be referred to as a space encryption key. In other words, the space encryption key corresponding to the space is an asymmetric key and includes a space public key as an encryption key and a space private key as a decryption key.

스페이스 개설자의 디바이스는 스페이스에 대응하는 스페이스 암호 키를 생성하여 스페이스 프라이빗 키를 스페이스 개설자의 디바이스에 저장하고, 스페이스 퍼블릭 키를 서버(120)에 전송할 수 있다. 서버(120)는 스페이스 퍼블릭 키를 수신하여, 데이터베이스(130)에 저장할 수 있다. 다시 말해, 스페이스 계정에 대응하는 스페이스 퍼블릭 키는 서버(120)에 의해 데이터베이스(130)에 저장되고, 스페이스 프라이빗 키는 스페이스 개설자의 디바이스에 저장될 수 있다. 서버는 스페이스 프라이빗 키를 보유하고 있지 않으므로, 서버에서 스페이스 퍼블릭 키로 암호화된 데이터를 복호화할 수 없다. 스페이스 퍼블릭 키는 스페이스 개설자의 디바이스에도 저장될 수 있다.The device of the space establisher may generate a space encryption key corresponding to the space, store the space private key in the device of the space establisher, and transmit the space public key to the server 120 . The server 120 may receive the space public key and store it in the database 130 . In other words, the space public key corresponding to the space account may be stored in the database 130 by the server 120, and the space private key may be stored in the device of the space establisher. Since the server does not have the space private key, the server cannot decrypt data encrypted with the space public key. The space public key can also be stored on the space creator's device.

일 실시 예에 따르면, 스페이스 개설자는 스페이스 관리자의 디바이스에 스페이스 프라이빗 키를 스페이스 관리자의 디바이스에서 복호화할 수 있는 방식으로 암호화하여 전송할 수 있으며, 스페이스 관리자의 디바이스에 스페이스 프라이빗 키가 저장될 수 있다. 이하에서, 스페이스 관리자의 디바이스는 스페이스 프라이빗 키를 보유하며, 스페이스 관리자의 계정으로 로그인 된 디바이스로 이해될 수 있으며, 간략하게 '관리자의 디바이스'로 지칭될 수 있다.According to an embodiment, the space creator may encrypt and transmit the space private key to the space manager's device in a decryptable manner in the space manager's device, and the space private key may be stored in the space manager's device. Hereinafter, a space manager's device may be understood as a device that holds a space private key and is logged into a space manager's account, and may be briefly referred to as a 'manager's device'.

데이터베이스(130)는 보안 인스턴트 메시징 서비스에서 생성된 대화방의 암호화된 대칭 키를 저장할 수 있다. 대화방의 암호화된 대칭 키는 대화방 참여자들 각각의 유저 퍼블릭 키로 암호화된 대칭 키를 포함할 수 있다. 대화방의 암호화된 대칭키는 사용자의 계정에 대응하여 저장될 수 있다. 예를 들어, 제1 사용자의 계정에 대응하는 유저 퍼블릭 키로 암호화된 대화방의 대칭키는 제1 사용자의 계정으로 인덱싱되어 저장될 수도 있고, 사용자의 계정에 대응하는 유저 퍼블릭 키로 인덱싱되어 저장될 수도 있다. 대화방의 암호화된 대칭키는 사용자의 계정에 대응하는 대화방의 식별 정보에 대응하여 저장될 수도 있다. 예를 들어, 제1 사용자가 제1 대화방에 참여하고 있는 경우, 제1 사용자의 계정에 대응하여 제1 대화방의 식별 정보가 저장될 수 있고, 제1 대화방의 제1 식별 정보에 대응하여 제1 대화방에 참여하고 있는 사용자들의 유저 퍼블릭 키들로 각각 암호화된 제1 대화방의 대칭 키가 저장될 수 있다. 보다 구체적으로, 제1 대화방에 제1 사용자 및 제2 사용자가 참여하고 있는 경우, 제1 대화방의 식별 정보에 대응하여 제1 사용자의 유저 퍼블릭 키로 암호화된 제1 대화방의 대칭 키 및 제2 사용자의 유저 퍼블릭 키로 암호화된 제1 대화방의 대칭 키가 저장될 수 있다. 서버에는 유저 키 중 프라이빗 키가 저장되지 않으므로, 서버에서 사용자 계정에 대응하는 유저 퍼블릭 키로 암호화된 대화방의 대칭 키를 복호화할 수 없다. 서버에 대화방의 대칭 키를 암호화하여 저장함으로써, 대화방 정보가 제3자에게 노출되는 것을 방지할 수 있다.The database 130 may store encrypted symmetric keys of chat rooms generated in the secure instant messaging service. The encrypted symmetric key of the chat room may include a symmetric key encrypted with a user public key of each of the chat room participants. The encrypted symmetric key of the chat room may be stored corresponding to the user's account. For example, a symmetric key of a chat room encrypted with a user public key corresponding to the first user's account may be indexed and stored with the first user's account, or indexed with a user public key corresponding to the user's account and stored. . The encrypted symmetric key of the chat room may be stored in correspondence with identification information of the chat room corresponding to the account of the user. For example, when a first user participates in a first chat room, identification information of the first chat room may be stored corresponding to an account of the first user, and corresponding to the first identification information of the first chat room, the first chat room may be stored. A symmetric key of the first chat room encrypted with user public keys of users participating in the chat room may be stored. More specifically, when the first user and the second user are participating in the first chat room, the symmetric key of the first chat room encrypted with the user public key of the first user and the second user corresponding to the identification information of the first chat room. A symmetric key of the first chat room encrypted with the user public key may be stored. Since the private key among the user keys is not stored in the server, the server cannot decrypt the symmetric key of the chat room encrypted with the user public key corresponding to the user account. By encrypting and storing the symmetric key of the chat room in the server, it is possible to prevent chat room information from being exposed to a third party.

일 실시 예에 따르면, 유저 퍼블릭 키로 암호화된 대화방의 대칭 키는 유저 퍼블릭 키에 대응하는 사용자의 계정에 관한 정보를 포함할 수 있다. 다시 말해, 암호화된 대화방의 대칭 키는 암호화에 이용된 유저 퍼블릭 키에 대응하는 사용자를 식별하기 위한 정보를 포함할 수 있다. 예를 들어, 제1 사용자의 유저 퍼블릭 키로 제1 대화방의 대칭 키가 암호화되어 제1 암호문(ciphertext)이 생성된 경우, 제1 암호문은 해당 암호문이 제1 사용자의 유저 퍼블릭 키로 암호화된 암호문임을 지시하는 정보를 포함할 수 있다. 또 예를 들어, 제1 사용자의 유저 퍼블릭 키로 제1 대화방의 대칭 키가 암호화되어 제1 암호문이 생성된 경우, 제1 암호문은 제1 사용자의 계정에 대응하여 서버에 저장될 수 있다.According to an embodiment, a symmetric key of a chat room encrypted with a user public key may include information about a user's account corresponding to the user public key. In other words, the symmetric key of the encrypted chat room may include information for identifying a user corresponding to the user public key used for encryption. For example, when the symmetric key of the first chat room is encrypted with the user public key of the first user to generate the first ciphertext, the first ciphertext indicates that the ciphertext is encrypted with the user public key of the first user. information may be included. Also, for example, when the symmetric key of the first chat room is encrypted with the user public key of the first user to generate the first ciphertext, the first ciphertext may be stored in the server in correspondence with the account of the first user.

데이터베이스(130)는 대화방의 대칭 키로 암호화된 메시지를 저장할 수 있다. 대화방을 통하여 송수신되는 메시지는 대화방의 대칭 키로 암호화되어 사용자 간 송수신될 수 있으며, 암호화된 메시지는 대화방에 대응하여 서버에 저장될 수 있다. 서버에는 대화방의 대칭 키가 암호화된 암호문이 저장되므로, 서버는 대화방의 대칭 키를 알 수 없어 대화방의 대칭 키로 암호화된 메시지를 복호화할 수 없다. 서버에 메시지를 대화방의 대칭 키로 암호화하여 저장함으로써, 메시지 정보가 제3자에게 노출되는 것을 방지할 수 있다.The database 130 may store messages encrypted with the symmetric key of the chat room. Messages transmitted and received through the chat room may be encrypted with a symmetric key of the chat room and transmitted/received between users, and the encrypted messages may be stored in a server corresponding to the chat room. Since the server stores the cipher text encrypted with the symmetric key of the chat room, the server cannot decrypt the message encrypted with the symmetric key of the chat room because it cannot know the symmetric key of the chat room. Message information can be prevented from being exposed to a third party by encrypting the message with the symmetric key of the chat room and storing it in the server.

일 실시 예에 따르면, 데이터베이스(130)는 스페이스 퍼블릭 키로 암호화된 유저 키를 저장할 수 있다. 스페이스 퍼블릭 키로 암호화된 유저 키는 사용자의 계정에 대응하는 유저 키가 저장된 디바이스가 분실된 경우 등 사용자의 계정에 대응하는 유저 키를 이용할 수 없는 경우, 사용자의 디바이스에 사용자의 유저 키를 복구하기 위해 이용될 수 있다. 예를 들어, 스페이스 프라이빗 키를 보유한 스페이스 관리자의 디바이스는 스페이스 프라이빗 키로 특정 사용자의 계정에 대응하는 유저 키를 복호화하여 해당 사용자의 계정으로 로그인 된 새로운 디바이스에 전달할 수 있다. 유저 키가 새로운 디바이스에 전달될 때, 제3자에게 노출되지 않도록 암호화되어 전달될 수 있다.According to an embodiment, the database 130 may store a user key encrypted with a space public key. The user key encrypted with the space public key is used to recover the user key to the user's device when the user key corresponding to the user's account is unavailable, such as when the device storing the user key corresponding to the user's account is lost. can be used For example, a space administrator's device holding a space private key can decrypt a user key corresponding to a specific user's account with the space private key and transmit it to a new device logged in with the user's account. When the user key is transferred to a new device, it can be encrypted and transferred so as not to be exposed to third parties.

일 실시 예에 따르면, 데이터베이스(130)는 스페이스 퍼블릭 키로 암호화된 대화방의 대칭 키를 저장할 수 있다. 상술한 바와 같이, 데이터베이스(130)는 대화방의 암호화된 대칭 키를 저장할 수 있으며, 대화방의 암호화된 대칭 키는 대화방 참여자들 각각의 유저 퍼블릭 키로 암호화된 대칭 키를 포함할 수 있는데, 대화방의 암호화된 대칭 키는 스페이스 퍼블릭 키로 암호화된 대칭 키를 더 포함할 수 있다. 다시 말해, 특정 대화방에 대응하여, 대화방 참여자들 각각의 유저 퍼블릭 키로 암호화된 대칭 키 및 스페이스 퍼블릭 키로 암호화된 대칭 키가 저장될 수 있다. 또한, 상술한 바와 같이 특정 대화방에 대응하는 암호화된 대칭 키(들)은 대화방 참여자들의 계정들 각각에 대응하여 저장될 수 있다.According to an embodiment, the database 130 may store a symmetric key of a chat room encrypted with a space public key. As described above, the database 130 may store the encrypted symmetric key of the chat room, and the encrypted symmetric key of the chat room may include a symmetric key encrypted with the public key of each user of the chat room participants. The symmetric key may further include a symmetric key encrypted with the space public key. In other words, corresponding to a specific chat room, a symmetric key encrypted with a user public key of each chat room participant and a symmetric key encrypted with a space public key may be stored. Also, as described above, the encrypted symmetric key(s) corresponding to a specific chat room may be stored corresponding to each of the chat room participants' accounts.

스페이스 프라이빗 키는 스페이스 퍼블릭 키로 암호화된 스페이스에 관한 정보(예를 들어, 스페이스에 포함된 사용자의 유저 키, 스페이스에 포함된 대화방의 대칭 키)의 복호화 키에 해당할 수 있다. 상술한 바와 같이, 스페이스 프라이빗 키는 스페이스 관리자의 디바이스에 저장될 수 있으며, 스페이스 관리자의 디바이스가 분실되거나, 스페이스 관리자의 디바이스의 메모리 초기화 등의 이유로, 스페이스 프라이빗 키가 분실될 수 있다.The space private key may correspond to a decryption key of information about a space encrypted with a space public key (eg, a user key of a user included in the space and a symmetric key of a chat room included in the space). As described above, the space private key may be stored in the space manager's device, and the space private key may be lost due to the loss of the space manager's device or memory initialization of the space manager's device.

일 실시 예에 따른 데이터베이스(130)에는 스페이스 프라이빗 키가 분실된 경우, 스페이스 프라이빗 키를 복구할 수 있는 비상키(emergency key)가 저장될 수 있다. 비상키는 제1 비상키 및 제2 비상키 중 적어도 하나를 포함할 수 있다. 스페이스 프라이빗 키의 복구를 위한 비상키를 생성 및 저장하는 동작에 관한 보안 인스턴트 메시징 방법은 이하에서 상술한다.In case the space private key is lost, an emergency key capable of recovering the space private key may be stored in the database 130 according to an embodiment. The emergency key may include at least one of a first emergency key and a second emergency key. A secure instant messaging method for generating and storing an emergency key for recovery of a space private key will be described in detail below.

도 2는 일 실시 예에 따른 스페이스 프라이빗 키의 복구를 위한 제1 비상 키를 설명하기 위한 도면이다.2 is a diagram for explaining a first emergency key for recovery of a space private key according to an embodiment.

도 2를 참조하면,

Figure 112021143359710-pat00001
는 사용자 k의 유저 퍼블릭 키, SPd는 스페이스 프라이빗 키, ekey1는 제1 비상키, Ekey는 키 key를 이용한 암호화 함수를 의미할 수 있다.Referring to Figure 2,
Figure 112021143359710-pat00001
is the user public key of user k, SP d is the space private key, ekey 1 is the first emergency key, and E key is the encryption function using the key key.

일 실시 예에 따르면, 관리자의 디바이스는 스페이스 프라이빗 키에 대응하는 제1 비상키

Figure 112021143359710-pat00002
를 생성(230)할 수 있다. 다시 말해, 제1 비상키(ekey1)는 스페이스 프라이빗 키 SPd를 n개의 사용자의 계정 {userk | k = 1, 2, …, n} 각각에 대응하는 유저 퍼블릭 키
Figure 112021143359710-pat00003
로 암호화한 n개의 암호문
Figure 112021143359710-pat00004
을 포함할 수 있다. n은 1 이상의 임의의 자연수에 해당할 수 있다. 제1 비상키에 포함된 스페이스 프라이빗 키 SPd를 사용자 k의 유저 퍼블릭 키
Figure 112021143359710-pat00005
로 암호화한 암호문
Figure 112021143359710-pat00006
은 사용자 k에 대응하는 제1 비상키 혹은 userk_ekey1로 지칭될 수 있다. According to an embodiment, the administrator's device is the first emergency key corresponding to the space private key.
Figure 112021143359710-pat00002
Can generate (230). In other words, the first emergency key (ekey 1 ) uses the space private key SP d for n user accounts {user k | k = 1, 2, … , n} corresponding user public key
Figure 112021143359710-pat00003
n ciphertexts encrypted with
Figure 112021143359710-pat00004
can include n may correspond to any natural number greater than or equal to 1. The space private key SP d included in the first emergency key is the user public key of user k.
Figure 112021143359710-pat00005
ciphertext encrypted with
Figure 112021143359710-pat00006
may be referred to as a first emergency key corresponding to user k or user k_ekey 1 .

일 실시 예에 따르면, 관리자의 디바이스는 상술한 바와 같이, 스페이스의 관리자의 계정으로 로그인 된 디바이스로, 스페이스 프라이빗 키를 보유한 디바이스에 해당할 수 있다. 스페이스 프라이빗 키를 암호화하는 적어도 하나의 사용자의 유저 퍼블릭 키는 관리자와 동일한 스페이스에 포함된 적어도 하나의 사용자의 유저 퍼블릭 키에 해당할 수 있다. 다시 말해, 관리자 및 적어도 하나의 사용자는 보안 인스턴트 메시징 서비스에서 제공하는 스페이스에 포함될 수 있다. 스페이스는 상술한 바와 같이 적어도 하나의 대화방 및 적어도 하나의 사용자를 포함하는 단위에 해당할 수 있다. According to one embodiment, as described above, the manager's device is a device logged into the space manager's account and may correspond to a device holding a space private key. The user public key of at least one user encrypting the space private key may correspond to the user public key of at least one user included in the same space as the manager. In other words, an administrator and at least one user may be included in a space provided by a secure instant messaging service. As described above, a space may correspond to a unit including at least one chat room and at least one user.

일 실시 예에 따르면, 관리자의 디바이스는 제1 비상키를 생성하기 위하여, 서버에 스페이스에 포함된 적어도 하나의 사용자의 유저 퍼블릭 키를 요청(210)할 수 있다. 서버는 관리자의 디바이스로부터 수신된 요청에 반응하여, 스페이스에 포함된 적어도 하나의 사용자의 유저 퍼블릭 키

Figure 112021143359710-pat00007
를 관리자의 디바이스에 전송(220)할 수 있다. 상술한 바와 같이, 서버는 사용자의 계정에 대응하여, 해당 사용자의 유저 퍼블릭 키를 저장할 수 있다. 서버는 스페이스에 포함된 사용자의 계정들 중 미리 정해진 n개의 사용자의 계정에 대응하는 n개의 유저 퍼블릭 키
Figure 112021143359710-pat00008
를 관리자의 디바이스에 전송(220)할 수 있으며, 관리자의 디바이스는 서버로부터 스페이스에 포함된 n개의 사용자의 계정에 대응하는 유저 퍼블릭 키
Figure 112021143359710-pat00009
를 획득할 수 있다.According to an embodiment, the manager's device may request (210) the user public key of at least one user included in the space to the server in order to generate the first emergency key. The server responds to the request received from the manager's device, and the user public key of at least one user included in the space.
Figure 112021143359710-pat00007
may be transmitted to the manager's device (220). As described above, the server may store the user public key of the corresponding user in correspondence with the user's account. The server provides n user public keys corresponding to predetermined n user accounts among user accounts included in the space.
Figure 112021143359710-pat00008
may be transmitted to the manager's device (220), and the manager's device may send a user public key corresponding to the accounts of n users included in the space from the server.
Figure 112021143359710-pat00009
can be obtained.

일 실시 예에 따르면, 서버는 스페이스에 포함된 사용자들 중 일부를 선별하여 선별된 사용자의 유저 퍼블릭 키를 관리자의 디바이스에 전송할 수 있다. 일 예로, 서버는 스페이스에 포함된 사용자들 중 랜덤으로 미리 정해진 수의 사용자를 선별할 수 있다. 또 일 예로, 스페이스에 포함된 사용자들의 스페이스 내 활동 정도에 기초하여, 미리 정해진 수의 사용자를 선별할 수도 있다. 스페이스 내 활동 정도는 예를 들어, 스페이스에 포함된 대화방을 이용하여 메시지를 송수신한 횟수, 로그인한 횟수, 스페이스에 접속한 횟수 중 적어도 하나에 기초하여 결정될 수 있다.According to an embodiment, the server may select some of the users included in the space and transmit the user public key of the selected user to the manager's device. For example, the server may randomly select a predetermined number of users from among users included in the space. As another example, a predetermined number of users may be selected based on the activity levels of the users included in the space. The degree of activity in the space may be determined based on at least one of, for example, the number of messages transmitted and received using a chat room included in the space, the number of logins, and the number of accesses to the space.

일 실시 예에 따르면, 관리자의 디바이스는 서버로부터 획득된 n개의 사용자의 유저 퍼블릭 키 각각으로 스페이스 프라이빗 키를 암호화함으로써, n개의 암호문을 포함하는 제1 비상키를 생성(230)할 수 있다. 관리자의 디바이스는 생성된 제1 비상키를 서버에 전송(240)할 수 있으며, 서버는 제1 비상키를 사용자의 계정에 대응하여 저장(250)할 수 있다. 예를 들어, 제1 사용자의 유저 퍼블릭 키(

Figure 112021143359710-pat00010
)로 스페이스 프라이빗 키를 암호화하여 생성된 제1 비상키(
Figure 112021143359710-pat00011
)는 제1 사용자의 계정(user1)에 대응하여 저장될 수 있고, 제2 사용자의 유저 퍼블릭 키(
Figure 112021143359710-pat00012
)로 스페이스 프라이빗 키를 암호화하여 생성된 제1 비상키(
Figure 112021143359710-pat00013
)는 제2 사용자의 계정(user2)에 대응하여 저장될 수 있다.According to an embodiment, the manager's device may generate (230) a first emergency key including n cipher texts by encrypting the space private key with each of the user public keys of n users obtained from the server. The manager's device may transmit (240) the generated first emergency key to the server, and the server may store (250) the first emergency key corresponding to the user's account. For example, the user public key of the first user (
Figure 112021143359710-pat00010
) The first emergency key generated by encrypting the space private key (
Figure 112021143359710-pat00011
) may be stored in correspondence with the account of the first user (user 1 ), and the user public key of the second user (
Figure 112021143359710-pat00012
) The first emergency key generated by encrypting the space private key (
Figure 112021143359710-pat00013
) may be stored in correspondence with the account of the second user (user 2 ).

일 실시 예에 따르면, 제1 비상키는 순차적으로 생성되어 서버에 저장될 수 있다. 예를 들어, 제1 비상키는 일정 주기로 일정 개수만큼 생성되어 서버에 저장될 수 있으며, 스페이스에 새로운 사용자의 계정이 포함됨에 따라 새로운 사용자의 계정에 대응하는 제1 비상키가 생성될 수 있다. According to an embodiment, the first emergency key may be sequentially generated and stored in the server. For example, a predetermined number of first emergency keys may be generated at regular intervals and stored in a server, and as a new user's account is included in the space, a first emergency key corresponding to the new user's account may be generated.

일 실시 예에 따르면, 제1 비상키가 저장된 위치는 관리자의 디바이스에서 획득할 수 있으며, 관리자의 디바이스는 제1 비상키가 저장된 위치에 기초하여 서버에 제1 비상키를 요청할 수 있다. 다른 사용자의 디바이스는 제1 비상키가 저장된 위치를 획득하지 못할 수 있으며, 이에 따라 서버에 제1 비상키를 요청할 수 없을 수 있다. According to an embodiment, the location where the first emergency key is stored can be obtained from the manager's device, and the manager's device can request the first emergency key from the server based on the location where the first emergency key is stored. A device of another user may not be able to obtain a location where the first emergency key is stored, and thus may not be able to request the first emergency key from the server.

도 3은 일 실시 예에 따른 제1 비상키에 기초하여 스페이스 프라이빗 키를 복구하기 위한 동작 흐름도이다.3 is an operation flowchart for recovering a space private key based on a first emergency key according to an embodiment.

도 3을 참조하면, userk는 사용자 k의 계정,

Figure 112021143359710-pat00014
는 사용자 k의 유저 퍼블릭 키,
Figure 112021143359710-pat00015
는 사용자 k의 유저 프라이빗 키, SPd는 스페이스 프라이빗 키, EX는 교환 키, c1은 제1 암호문, ekey1는 제1 비상키, userk_ekey1는 사용자 k의 유저 퍼블릭 키
Figure 112021143359710-pat00016
로 스페이스 프라이빗 키 SPd를 암호화하여 생성된 사용자 k에 대응하는 제1 비상키, Ekey는 키 key를 이용한 암호화 함수, Dkey는 키 key를 이용한 복호화 함수를 의미할 수 있다.Referring to FIG. 3, user k is an account of user k,
Figure 112021143359710-pat00014
is the user public key of user k,
Figure 112021143359710-pat00015
is the user private key of user k, SP d is the space private key, EX is the exchange key, c 1 is the first passphrase, ekey 1 is the first emergency key, user k_ekey 1 is the user public key of user k
Figure 112021143359710-pat00016
A first emergency key corresponding to user k generated by encrypting the space private key SP d with , key E may denote an encryption function using the key key, and key D may denote a decryption function using the key key.

일 실시 예에 따르면, 관리자의 디바이스는 스페이스 프라이빗 키를 분실한 경우, 서버에 스페이스 프라이빗 키의 복구를 요청(310)할 수 있다. 서버는 스페이스 프라이빗 키의 복구 요청에 반응하여, 제1 비상키에 대응하는 적어도 하나의 사용자의 계정에 관한 정보 {user1, user2, …, usern}를 관리자의 디바이스에 제공(320)할 수 있다. 제1 비상키에 대응하는 사용자의 계정에 관한 정보는 제1 비상키의 생성에 이용된 유저 퍼블릭 키에 대응하는 사용자의 계정의 목록을 포함할 수 있다. 예를 들어, 제1 비상키가 제1 사용자의 유저 퍼블릭 키로 암호화되어 생성된 암호문 및 제2 사용자의 유저 퍼블릭 키로 암호화되어 생성된 암호문을 포함하는 경우, 서버는 제1 사용자의 계정 및/또는 제2 사용자의 계정을 포함하는 목록을 제1 비상키에 대응하는 사용자의 계정에 관한 정보로 관리자의 디바이스에 전달할 수 있다.According to an embodiment, when the manager's device loses the space private key, it may request 310 to restore the space private key to the server. In response to the space private key recovery request, the server responds to information about at least one user's account corresponding to the first emergency key {user 1 , user 2 , . . . , user n } may be provided to the manager's device (320). The information about the user account corresponding to the first emergency key may include a list of user accounts corresponding to the user public key used to generate the first emergency key. For example, when the first non-emergency key includes ciphertext generated by encryption with the user public key of the first user and ciphertext generated by encryption with the user public key of the second user, the server stores the account and/or the password of the first user. 2 The list including the user's account may be transmitted to the manager's device as information about the user's account corresponding to the first emergency key.

일 실시 예에 따른 관리자의 디바이스는 제공된 사용자의 계정 중 어느 하나의 사용자의 계정(예를 들어, user1)을 선택하여, 서버에 선택된 사용자의 계정에 대응하는 제1 비상키를 요청(330)할 수 있다. 이하에서, 관리자의 디바이스는 제1 사용자의 계정을 선택하여, 제1 사용자의 계정에 대응하는 제1 비상키를 요청한 것으로 예를 들어 설명한다.According to an embodiment, the administrator's device selects one of the provided user accounts (eg, user 1 ) and requests the server for a first emergency key corresponding to the selected user's account (330) can do. Hereinafter, it will be described as an example in which the administrator's device selects the account of the first user and requests the first emergency key corresponding to the account of the first user.

관리자의 디바이스로부터 제1 사용자의 계정에 대응하는 제1 비상키의 요청을 수신한 서버는 제1 사용자의 계정에 대응하는 제1 비상키 user1_ekey1를 관리자의 디바이스에 제공(340)할 수 있다.Upon receiving the request for the first emergency key corresponding to the first user's account from the manager's device, the server may provide (340) the first emergency key user 1_ekey 1 corresponding to the first user's account to the manager's device. there is.

관리자의 디바이스는 서버를 통해 제1 사용자의 디바이스에 교환 키를 전송(350)할 수 있다. 제1 사용자의 디바이스는 제1 사용자의 계정으로 로그인 된 디바이스를 의미할 수 있다. 일 예로, 관리자의 디바이스는 서버에 제1 비상키에 대응하는 사용자의 계정에 교환 키를 전송할 것을 요청할 수 있으며, 서버는 제1 사용자의 디바이스에 교환 키를 전송할 수 있다. The manager's device may transmit (350) the exchange key to the first user's device through the server. The first user's device may refer to a device logged into the first user's account. For example, the administrator's device may request the server to transmit an exchange key to the user's account corresponding to the first emergency key, and the server may transmit the exchange key to the first user's device.

일 실시 예에 따르면, 교환 키는 유저 프라이빗 키를 암호화하기 위한 키로, 교환 키는 대칭 키 혹은 비대칭 키에 해당할 수 있다. 교환 키가 비대칭 키인 경우, 제1 사용자의 디바이스에 전달되는 교환 키는 교환 키의 암호화 키에 해당할 수 있다. 교환 키를 전송하는 동작(350)은 제1 사용자의 디바이스에 제1 사용자의 유저 프라이빗 키를 요청하는 동작을 포함할 수 있다. 다시 말해, 교환 키를 전송하는 것은 유저 프라이빗 키의 요청을 포함할 수 있다.According to an embodiment, the exchange key is a key for encrypting a user private key, and the exchange key may correspond to a symmetric key or an asymmetric key. When the exchange key is an asymmetric key, the exchange key transmitted to the device of the first user may correspond to an encryption key of the exchange key. Transmitting the exchange key (350) may include requesting the first user's user private key from the first user's device. In other words, sending the exchange key may include requesting the user's private key.

일 실시 예에 따르면, 관리자의 디바이스는 제1 사용자의 계정에 대응하는 제1 비상키를 서버에 요청할 때, 요청과 함께 교환 키를 서버에 전송할 수 있다. 다시 말해, 관리자의 디바이스의 제1 사용자의 계정에 대응하는 제1 비상키를 요청하는 동작(330)은 서버를 통해 교환 키를 제1 사용자의 디바이스에 전송하는 동작(350)을 포함할 수 있다.According to an embodiment, when the manager's device requests the server for the first emergency key corresponding to the account of the first user, the exchange key may be transmitted to the server along with the request. In other words, the operation 330 of requesting the first emergency key corresponding to the account of the first user of the manager's device may include operation 350 of transmitting the exchange key to the device of the first user through the server. .

일 실시 예에 따르면, 제1 사용자의 디바이스는 수신된 교환 키로 제1 사용자의 유저 프라이빗 키를 암호화한 제1 암호문

Figure 112021143359710-pat00017
을 생성(360)할 수 있으며, 제1 암호문은 서버를 통해 관리자의 디바이스로 전달(370)될 수 있다.According to an embodiment, the device of the first user encrypts the user private key of the first user with the received exchange key, and the first ciphertext
Figure 112021143359710-pat00017
It can generate (360), and the first password text can be delivered to the manager's device through the server (370).

일 실시 예에 따르면, 제1 사용자의 디바이스는 제1 암호문을 전송하기에 앞서, 관리자의 디바이스를 인증하는 동작을 수행할 수 있다. 예를 들어, 제1 사용자의 디바이스는 교환 키를 전송한 관리자의 디바이스가 제1 사용자의 계정이 포함된 스페이스의 관리자로 지정된 계정인지 여부를 확인할 수 있으며, 관리자로 지정된 계정으로 확인된 경우, 제1 암호문을 전송할 수 있다.According to an embodiment, the device of the first user may perform an operation of authenticating the device of the administrator before transmitting the first password text. For example, the first user's device can check whether the manager's device that sent the exchange key is an account designated as the manager of the space that includes the first user's account, and if it is confirmed as the account designated as the manager, 1 ciphertext can be transmitted.

일 실시 예에 따르면, 제1 사용자의 디바이스로부터 제1 암호문을 수신한 관리자의 디바이스는 제1 암호문을 교환 키로 복호화하여 제1 사용자의 유저 프라이빗 키를 획득(380)할 수 있다. 교환 키가 비대칭 키인 경우, 관리자의 디바이스는 교환 키의 복호화 키를 이용하여 암호문을 복호화할 수 있다. 관리자의 디바이스는 획득된 제1 사용자의 유저 프라이빗 키를 이용하여, 제1 비상키를 복호화함으로써, 스페이스 프라이빗 키를 획득(390)할 수 있다. 다시 말해, 관리자의 디바이스에서 분실된 스페이스 프라이빗 키는 제1 비상키에 기초하여 복구될 수 있으며, 복구된 스페이스 프라이빗 키는 관리자의 디바이스에 저장될 수 있다.According to an embodiment, the manager's device receiving the first encrypted text from the first user's device may decrypt the first encrypted text with an exchange key to obtain a user private key of the first user (380). If the exchange key is an asymmetric key, the administrator's device can decrypt the ciphertext using the decryption key of the exchange key. The manager's device may obtain the space private key by decrypting the first emergency key using the obtained user private key of the first user (390). In other words, the lost space private key in the manager's device can be restored based on the first emergency key, and the restored space private key can be stored in the manager's device.

도 4는 일 실시 예에 따른 관리자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법의 동작 흐름도이다. 4 is an operation flowchart of a secure instant messaging method performed in a manager's device according to an embodiment.

도 4를 참조하면, 일 실시 예에 따른 관리자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법은 스페이스 프라이빗 키에 대응하는 제1 비상키를 생성하여 서버에 저장하는 단계(410), 스페이스 프라이빗 키의 복구를 위하여, 서버로부터 제1 사용자의 계정에 대응하는 제1 비상키를 획득하는 단계(420), 제1 사용자의 계정으로 로그인 된 제1 사용자의 디바이스에 교환 키를 전송하는 단계(430), 교환 키에 기초하여, 제1 사용자의 유저 프라이빗 키를 획득하는 단계(440) 및 획득된 제1 비상키를 제1 사용자의 유저 프라이빗 키로 복호화하여 스페이스 프라이빗 키를 복구하는 단계(450)를 포함할 수 있다. 적어도 하나의 사용자 및 관리자는 보안 인스턴트 메시징 서비스에서 제공하는 스페이스에 포함될 수 있다. 적어도 하나의 사용자는 제1 사용자를 포함할 수 있다.Referring to FIG. 4 , in the secure instant messaging method performed on the administrator's device according to an embodiment, a first emergency key corresponding to a space private key is generated and stored in a server (410), and the space private key is recovered. To do this, obtaining a first emergency key corresponding to the account of the first user from the server (420), transmitting the exchange key to the device of the first user logged in with the account of the first user (430), the exchange key Based on , it may include obtaining a user private key of the first user (440) and recovering the space private key by decrypting the obtained first emergency key with the user private key of the first user (450). . At least one user and administrator may be included in a space provided by the secure instant messaging service. The at least one user may include a first user.

도 4에 도시된 관리자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법은 도 2 및 도 3을 통해 상술한 관리자의 디바이스의 동작에 대응될 수 있다. 일 예로, 단계(410)는 도 2에서 상술한 관리자의 디바이스의 동작에 대응될 수 있으며, 단계(420) 내지 단계(450)는 도 3에서 상술한 관리자의 디바이스의 동작에 대응될 수 있다.The secure instant messaging method performed in the manager's device shown in FIG. 4 may correspond to the operations of the manager's device described above with reference to FIGS. 2 and 3 . For example, step 410 may correspond to the operation of the manager's device described above with reference to FIG. 2 , and steps 420 to 450 may correspond to the operation of the manager's device described above with reference to FIG. 3 .

일 실시 예에 따른 단계(410)는 스페이스 프라이빗 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 암호문을 포함하는 제1 비상키를 생성하는 단계 및 생성된 제1 비상키를 서버에 저장하는 단계를 포함할 수 있다. 다시 말해, 스페이스 프라이빗 키에 대응하는 제1 비상키는 스페이스 프라이빗 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 암호문을 포함할 수 있다. 적어도 하나의 유저 퍼블릭 키는 서버로부터 획득될 수 있다. 예를 들어, 관리자의 디바이스는 스페이스에 포함된 적어도 하나의 사용자의 계정에 대응하는 유저 퍼블릭 키를 서버에 요청할 수 있으며, 서버는 관리자의 디바이스에 적어도 하나의 사용자의 유저 퍼블릭 키를 제공할 수 있다.Step 410 according to an embodiment includes generating a first emergency key including at least one cipher text obtained by encrypting a space private key with at least one user public key, and storing the generated first emergency key in a server. steps may be included. In other words, the first emergency key corresponding to the space private key may include at least one cipher text obtained by encrypting the space private key with the user public key of at least one user. At least one user public key may be obtained from a server. For example, the manager's device may request a user public key corresponding to at least one user account included in the space from the server, and the server may provide the manager's device with the user public key of at least one user. .

일 실시 예에 따른 단계(420)는 관리자의 디바이스에서 스페이스 프라이빗 키를 분실한 경우, 수행될 수 있다. 제1 비상키는 제1 사용자의 유저 퍼블릭 키로 스페이스 프라이빗 키를 암호화한 암호문인 제1 사용자의 계정에 대응하는 제1 비상키를 포함할 수 있다. 관리자의 디바이스는 서버에 저장된 제1 사용자의 계정에 대응하는 제1 비상키를 요청할 수 있으며, 서버로부터 제1 사용자의 계정에 대응하는 제1 비상키를 획득할 수 있다. 상술한 바와 같이, 관리자의 디바이스는 제1 비상키가 저장된 위치를 획득할 수 있어, 서버에 제1 비상키를 요청할 수 있다.Step 420 according to an embodiment may be performed when the space private key is lost in the manager's device. The first emergency key may include a first emergency key corresponding to an account of the first user, which is cipher text obtained by encrypting the space private key with the user public key of the first user. The manager's device may request a first emergency key corresponding to the first user's account stored in the server, and may obtain the first emergency key corresponding to the first user's account from the server. As described above, the manager's device can acquire the location where the first emergency key is stored, and can request the first emergency key from the server.

일 실시 예에 따른 단계(430)는 제1 사용자의 디바이스에 제1 사용자의 유저 프라이빗 키를 암호화하기 위한 교환 키를 전송하는 단계를 포함할 수 있다. 상술한 바와 같이, 교환 키를 전송하는 단계(430)는 유저 프라이빗 키를 요청하는 단계를 포함할 수 있다. Step 430 according to an embodiment may include transmitting an exchange key for encrypting the user private key of the first user to the device of the first user. As noted above, transmitting 430 the exchange key may include requesting a user private key.

일 실시 예에 따른 제1 사용자의 유저 프라이빗 키를 획득하는 단계(440)는 제1 사용자의 디바이스로부터 제1 사용자의 유저 프라이빗 키를 교환 키로 암호화한 제1 암호문을 수신하는 단계 및 교환 키로 제1 암호문을 복호화하여 제1 사용자의 유저 프라이빗 키를 획득하는 단계를 포함할 수 있다. 제1 사용자의 디바이스는 수신된 교환 키에 기초하여 제1 사용자의 유저 프라이빗 키를 암호화한 제1 암호문을 생성하여 관리자의 디바이스에 전송할 수 있으며, 관리자의 디바이스는 제1 암호문을 획득할 수 있다. 관리자의 디바이스에서 제1 암호문은 교환 키로 복호화될 수 있으며, 제1 암호문의 복호화 결과 제1 사용자의 유저 프라이빗 키가 획득될 수 있다.Obtaining a user private key of a first user according to an embodiment (440) includes receiving a first ciphertext obtained by encrypting the user private key of the first user with an exchange key from a device of the first user, and using the exchange key as the first cipher text. Decrypting the ciphertext may include obtaining a user private key of the first user. The device of the first user may generate a first ciphertext obtained by encrypting the user private key of the first user based on the received exchange key, and transmit the first ciphertext to the device of the manager, and the device of the manager may acquire the first ciphertext. In the manager's device, the first ciphertext may be decrypted with an exchange key, and as a result of decryption of the first ciphertext, the user private key of the first user may be obtained.

일 실시 예에 따른 제1 사용자의 유저 프라이빗 키를 획득하는 단계(440)는 제1 사용자의 디바이스에 관리자의 인증을 요청하는 단계 및 관리자의 인증에 기초하여, 제1 사용자의 유저 프라이빗 키를 획득하는 단계를 포함할 수 있다. 상술한 바와 같이, 제1 사용자의 디바이스는 유저 프라이빗 키의 요청의 발신자가 제1 사용자의 계정이 속한 스페이스의 관리자인지 여부를 확인할 수 있으며, 관리자로 확인된 경우, 유저 프라이빗 키를 암호화하여 전송할 수 있다.Obtaining the user private key of the first user according to an embodiment (440) includes requesting an administrator's authentication from the first user's device and acquiring the user private key of the first user based on the administrator's authentication. steps may be included. As described above, the device of the first user may check whether the sender of the request for the user private key is the manager of the space to which the account of the first user belongs, and if the manager is identified, the user private key may be encrypted and transmitted. there is.

일 실시 예에 따른 단계(440)에서 관리자의 인증이 실패한 경우, 관리자의 디바이스는 제1 암호문을 획득하지 못할 수 있다.If the administrator's authentication fails in step 440 according to an embodiment, the administrator's device may not be able to obtain the first password text.

일 실시 예에 따른 단계(450)는 획득된 제1 사용자의 유저 프라이빗 키를 이용하여, 제1 사용자의 유저 퍼블릭 키로 암호화된 제1 비상키를 복호화함으로써, 스페이스 프라이빗 키를 획득하는 단계를 포함할 수 있다. 관리자의 디바이스는 획득된 스페이스 프라이빗 키를 저장하거나, 관리자의 디바이스에서 접근 가능한 보안 매체에 저장함으로써, 스페이스 프라이빗 키에 대한 접근 권한을 획득할 수 있다.Step 450 according to an embodiment may include obtaining a space private key by decrypting a first emergency key encrypted with the user public key of the first user using the obtained user private key of the first user. can The manager's device may acquire access rights to the space private key by storing the obtained space private key or storing it in a secure medium accessible from the manager's device.

도 5는 일 실시 예에 따른 서버에서 수행되는 보안 인스턴트 메시징 방법의 동작 흐름도이다.5 is an operation flowchart of a secure instant messaging method performed in a server according to an embodiment.

도 5를 참조하면, 일 실시 예에 따른 서버에서 수행되는 보안 인스턴트 메시징 방법은 관리자의 디바이스로부터, 적어도 하나의 제1 비상키를 수신하는 단계(510), 수신된 적어도 하나의 제1 비상키를 적어도 하나의 사용자의 계정 각각에 대응하여 저장하는 단계(520), 제1 비상키에 대응하는 적어도 하나의 사용자의 계정에 관한 정보를 관리자의 디바이스에 제공하는 단계(530) 및 제1 사용자의 계정에 대응하여 저장된 제1 비상키를 관리자의 디바이스에 전송하는 단계(540)를 포함할 수 있다.Referring to FIG. 5 , a secure instant messaging method performed in a server according to an embodiment includes receiving at least one first emergency key from a manager's device (510), and the received at least one first emergency key. Storing corresponding to each of at least one user's account (520), providing information about the at least one user's account corresponding to the first emergency key to the manager's device (530) and the first user's account It may include a step 540 of transmitting the stored first emergency key corresponding to the manager's device.

도 5에 도시된 서버에서 수행되는 보안 인스턴트 메시징 방법은 도 2 및 도 3을 통해 상술한 서버의 동작에 대응될 수 있다. 일 예로, 단계(510) 및 단계(520)는 도 2에서 상술한 서버의 동작에 대응될 수 있으며, 단계(530) 및 단계(540)는 도 3에서 상술한 서버의 동작에 대응될 수 있다.The secure instant messaging method performed by the server shown in FIG. 5 may correspond to the operation of the server described above with reference to FIGS. 2 and 3 . For example, steps 510 and 520 may correspond to the operation of the server described above in FIG. 2, and steps 530 and 540 may correspond to the operation of the server described above in FIG. 3 .

일 실시 예에 따른 단계(510)는 관리자의 디바이스로부터, 스페이스 프라이빗 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 제1 비상키를 수신하는 단계를 포함할 수 있다. 적어도 하나의 사용자 및 관리자는 보안 인스턴트 메시징 서비스에서 제공하는 스페이스에 포함될 수 있다. 일 예로, 관리자의 디바이스로부터 적어도 하나의 제1 비상키를 수신하는 단계(510)는 일정 주기로 수행될 수 있으며, 수신되는 제1 비상키의 개수는 미리 정해진 개수에 해당할 수 있다. 또 일 예로, 제1 비상키를 수신하는 단계(510)는 스페이스에 새로운 사용자의 계정에 포함됨에 따라, 수행될 수 있다. Step 510 according to an embodiment may include receiving at least one first emergency key obtained by encrypting a space private key with a user public key of at least one user, from a manager's device. At least one user and administrator may be included in a space provided by the secure instant messaging service. For example, the step 510 of receiving at least one first emergency key from the manager's device may be performed at regular intervals, and the number of first emergency keys received may correspond to a predetermined number. As another example, step 510 of receiving the first emergency key may be performed as it is included in the account of the new user in the space.

일 실시 예에 따른 단계(520)는 제1 비상키를 암호화한 유저 퍼블릭 키에 대응하는 사용자의 계정을 식별하기 위하여, 적어도 하나의 제1 비상키를 적어도 하나의 사용자의 계정 각각에 대응하여 저장하는 단계에 해당할 수 있다.Step 520 according to an embodiment stores at least one first emergency key corresponding to each of the at least one user account in order to identify the user account corresponding to the user public key that encrypts the first emergency key. It may correspond to the step of

상술한 바와 같이, 관리자의 디바이스는 제1 비상키가 저장된 위치를 획득할 수 있어, 서버에 제1 비상키를 요청할 수 있으며, 서버는 제1 비상키에 대응하는 사용자의 계정에 관한 정보를 관리자의 디바이스에 전달할 수 있다. 일 예로, 다른 사용자의 디바이스는 제1 비상키가 저장된 위치를 획득하지 못할 수 있으며, 이에 따라 서버에 제1 비상키를 요청할 수 없을 수 있다. 또 일 예로, 서버에 제1 비상키의 저장된 위치에 기초하지 않고, 제1 비상키를 요청할 수 있는 경우, 서버는 관리자가 아닌 다른 사용자로부터 제1 비상키의 요청이 수신되면, 제1 비상키를 전송하지 않을 수 있다. 다시 말해, 서버는 관리자의 디바이스로 확인된 디바이스로부터 수신된 제1 비상키의 요청에 반응하여, 제1 비상키를 전송하도록 동작할 수 있다.As described above, the administrator's device can obtain the location where the first emergency key is stored, request the server for the first emergency key, and the server can transmit information about the user's account corresponding to the first emergency key to the administrator. can be delivered to the device of For example, another user's device may not be able to obtain a location where the first emergency key is stored, and thus may not be able to request the first emergency key from the server. As another example, when the server can request the first emergency key without based on the stored location of the first emergency key, the server receives a request for the first emergency key from a user other than the administrator, the first emergency key may not transmit. In other words, the server may operate to transmit the first emergency key in response to the request for the first emergency key received from the device identified as the manager's device.

일 실시 예에 따른 단계(530)는 관리자의 디바이스로부터 수신된 상기 스페이스 프라이빗 키의 복구 요청에 반응하여, 제1 비상키에 대응하는 적어도 하나의 사용자의 계정에 관한 정보를 관리자의 디바이스에 제공하는 단계를 포함할 수 있다. 제1 비상키에 대응하는 적어도 하나의 사용자의 계정에 관한 정보는 서버에 스페이스에 대응하여 저장된 제1 비상키의 생성에 이용된 유저 퍼블릭 키에 대응하는 사용자의 계정의 목록을 포함할 수 있다.Step 530 according to an embodiment includes providing information about the account of at least one user corresponding to a first emergency key to the manager's device in response to the space private key recovery request received from the manager's device. steps may be included. Information about at least one user account corresponding to the first emergency key may include a list of user accounts corresponding to the user public key used to generate the first emergency key stored in the server in correspondence with the space.

일 실시 예에 따른 단계(540)는 사용자의 계정에 관한 정보에 기초하여 적어도 하나의 사용자의 계정 중 제1 사용자의 계정을 선택하는 입력에 반응하여, 제1 사용자의 계정에 대응하여 저장된 상기 제1 비상키를 상기 관리자의 디바이스에 전송하는 단계를 포함할 수 있다. 제1 사용자의 계정을 선택하는 입력은 관리자의 디바이스로부터 수신된 입력에 해당할 수 있다. 관리자의 디바이스는 서버로부터 제공된 사용자의 계정에 관한 정보에 기초하여, 제1 비상키의 생성에 이용된 유저 키에 대응하는 사용자의 계정 중 어느 하나를 선택할 수 있으며, 서버에 선택된 사용자의 계정에 대응하는 제1 비상키를 요청할 수 있다. 선택된 사용자의 계정에 대응하는 제1 비상키는 선택된 사용자의 유저 퍼블릭 키로 암호화된 스페이스 프라이빗 키에 해당할 수 있다.Step 540 according to an embodiment includes the first user account stored in response to the first user account in response to an input for selecting an account of the first user from among at least one user account based on information about the user account. 1 may include transmitting the emergency key to the manager's device. The input for selecting the account of the first user may correspond to an input received from the manager's device. The administrator's device may select one of the user accounts corresponding to the user key used to generate the first emergency key, based on the user account information provided from the server, and correspond to the user account selected by the server. It is possible to request a first emergency key that The first emergency key corresponding to the account of the selected user may correspond to a space private key encrypted with the user public key of the selected user.

도 6은 일 실시 예에 따른 스페이스 프라이빗 키의 복구를 위한 제2 비상 키를 설명하기 위한 도면이다.6 is a diagram for explaining a second emergency key for recovery of a space private key according to an embodiment.

도 6을 참조하면, AES는 제1 암호화 키,

Figure 112021143359710-pat00018
는 사용자 k의 유저 퍼블릭 키, SPd는 스페이스 프라이빗 키, ekey2는 제2 비상키, Ekey는 키 key를 이용한 암호화 함수를 의미할 수 있다.Referring to FIG. 6, AES is a first encryption key,
Figure 112021143359710-pat00018
is the user public key of user k, SP d is the space private key, ekey 2 is the second emergency key, and E key is the encryption function using the key key.

일 실시 예에 따르면, 관리자의 디바이스는 스페이스 프라이빗 키를 제1 암호화 키로 암호화한 제2 암호문

Figure 112021143359710-pat00019
를 생성(610)할 수 있다. 제1 암호화 키는 관리자의 디바이스에서 스페이스 프라이빗 키를 암호화하기 위하여 생성된 암호화 키로, 예를 들어 고급 암호화 표준(Advanced Encryption Standard, AES) 방식에 따라 생성된 대칭 키를 포함할 수 있다. 이하에서, 제1 암호화 키는 암호화 키와 복호화 키가 동일한 대칭 키인 것으로 예를 들어 설명한다.According to one embodiment, the administrator's device encrypts the space private key with the first encryption key, and the second ciphertext
Figure 112021143359710-pat00019
can generate (610). The first encryption key is an encryption key generated to encrypt the space private key in the administrator's device, and may include, for example, a symmetric key generated according to the Advanced Encryption Standard (AES) method. Hereinafter, the first encryption key will be described as an example in which the encryption key and the decryption key are the same symmetric key.

일 실시 예에 따르면, 관리자의 디바이스는 제2 암호문을 저장하기 위하여 서버로 전송(620)할 수 있으며, 서버는 스페이스에 대응하여 제2 암호문을 저장(630)할 수 있다. 일 예로, 제2 암호문이 저장된 위치는 관리자의 디바이스에서 획득할 수 있으며, 관리자의 디바이스는 제2 암호문이 저장된 위치에 기초하여 서버에 제2 암호문을 요청할 수 있다. 다른 사용자의 디바이스는 제2 암호문이 저장된 위치를 획득하지 못할 수 있으며, 이에 따라 서버에 제2 암호문을 요청할 수 없을 수 있다. According to one embodiment, the manager's device may transmit 620 the second cipher text to the server to store it, and the server may store the second cipher text in response to the space (630). For example, the location where the second cipher text is stored may be obtained from the manager's device, and the manager's device may request the second cipher text from the server based on the location where the second cipher text is stored. A device of another user may not be able to obtain a location where the second cipher text is stored, and thus may not be able to request the second cipher text from the server.

일 실시 예에 따르면, 관리자의 디바이스 혹은 스페이스에 포함된 제3 사용자의 디바이스는 스페이스 프라이빗 키에 대응하는 제2 비상키

Figure 112021143359710-pat00020
를 생성(640 혹은 650)할 수 있다. 다시 말해, 제2 비상키(ekey2)는 제2 암호문을 복호화하기 위한 제1 암호화 키를 n개의 사용자의 계정 {userk | k = 1, 2, …, n} 각각에 대응하는 유저 퍼블릭 키
Figure 112021143359710-pat00021
로 암호화한 n개의 암호문
Figure 112021143359710-pat00022
을 포함할 수 있다. n은 1 이상의 임의의 자연수에 해당할 수 있다. 제2 비상키에 포함된 제1 암호화 키 AES를 사용자 k의 유저 퍼블릭 키
Figure 112021143359710-pat00023
로 암호화한 암호문
Figure 112021143359710-pat00024
은 사용자 k에 대응하는 제2 비상키 혹은 userk_ekey2로 지칭될 수 있다. According to an embodiment, a device of an administrator or a device of a third user included in a space is a second emergency key corresponding to a space private key.
Figure 112021143359710-pat00020
can be created (640 or 650). In other words, the second emergency key (ekey 2 ) is a first encryption key for decrypting the second cipher text, n user accounts {user k | k = 1, 2, … , n} corresponding user public key
Figure 112021143359710-pat00021
n ciphertexts encrypted with
Figure 112021143359710-pat00022
can include n may correspond to any natural number greater than or equal to 1. The first encryption key AES included in the second emergency key is the user public key of user k.
Figure 112021143359710-pat00023
ciphertext encrypted with
Figure 112021143359710-pat00024
may be referred to as a second emergency key corresponding to user k or user k_ekey 2 .

일 실시 예에 따르면, 스페이스에 포함된 사용자 중 임의의 제3 사용자의 디바이스는 관리자의 디바이스로부터 제1 암호화 키를 획득할 수 있다. 예를 들어, 관리자의 디바이스는 스페이스 프라이빗 키를 암호화하기 위하여 생성된 제1 암호화 키를 제3 사용자의 유저 퍼블릭 키로 암호화하여 제3 사용자에 대응하는 제2 비상키를 생성할 수 있으며, 제3 사용자에 대응하는 제2 비상키는 제3 사용자의 디바이스에 전달될 수 있다. 제3 사용자의 디바이스는 제3 사용자의 유저 프라이빗 키로 제3 사용자에 대응하는 제2 비상키를 복호화하여 제1 암호화 키를 획득할 수 있다. 다시 말해, 제3 사용자의 디바이스는 관리자의 디바이스에서 생성된 제2 비상키에 대응하는 사용자들 중 어느 하나에 해당하는 사용자의 디바이스에 해당할 수 있다.According to one embodiment, a device of any third user among users included in the space may acquire a first encryption key from a device of a manager. For example, the administrator's device may generate a second emergency key corresponding to the third user by encrypting the first encryption key generated to encrypt the space private key with the user public key of the third user, and The second emergency key corresponding to may be delivered to the third user's device. The device of the third user may obtain the first encryption key by decrypting the second emergency key corresponding to the third user with the user private key of the third user. In other words, the device of the third user may correspond to a device of a user corresponding to any one of users corresponding to the second emergency key generated in the device of the manager.

일 실시 예에 따르면, 제1 암호화 키를 획득한 제3 사용자의 디바이스는 스페이스에 포함된 다른 사용자의 유저 퍼블릭 키로 암호화하여 제2 비상키를 생성할 수 있다. 제3 사용자의 디바이스에서 생성된 다른 사용자에 대응하는 제2 비상키는 서버에 전송(650)될 수 있다. 다시 말해, 제1 암호화 키를 생성한 관리자의 디바이스 뿐 아니라, 제3 사용자의 디바이스는 다른 사용자의 유저 퍼블릭 키로 제1 암호화 키를 암호화하여 생성된 제2 비상키를 서버에 전송(650)할 수 있다. 관리자의 디바이스 뿐 아니라, 스페이스에 포함된 다른 사용자의 디바이스에서 제2 비상키가 생성될 수 있으므로, 관리자의 활동이 적은 경우에도 스페이스에 포함된 다른 사용자의 활동에 의해 제2 비상키가 생성되어 서버에 저장될 수 있다.According to an embodiment, a device of a third user who has obtained the first encryption key may generate a second emergency key by encrypting the device with a user public key of another user included in the space. The second emergency key corresponding to the other user generated in the device of the third user may be transmitted to the server (650). In other words, not only the device of the administrator who generated the first encryption key, but also the device of the third user can transmit (650) the second emergency key generated by encrypting the first encryption key with the user public key of another user to the server. there is. Since the second emergency key can be generated not only from the administrator's device but also from other user's devices included in the space, even when the administrator's activity is small, the second emergency key is generated by the activity of other users included in the space and the server can be stored in

일 실시 예에 따른 서버는 제2 비상키를 사용자의 계정에 대응하여 저장(660)할 수 있다. 예를 들어, 제1 사용자의 유저 퍼블릭 키

Figure 112021143359710-pat00025
로 제1 암호화 키를 암호화하여 생성된 제2 비상키
Figure 112021143359710-pat00026
는 제1 사용자의 계정 user1에 대응하여 저장될 수 있고, 제2 사용자의 유저 퍼블릭 키
Figure 112021143359710-pat00027
로 제1 암호화 키를 암호화하여 생성된 제2 비상키
Figure 112021143359710-pat00028
는 제2 사용자의 계정 user2에 대응하여 저장될 수 있다.According to an embodiment, the server may store the second emergency key corresponding to the user's account (660). For example, the user public key of the first user
Figure 112021143359710-pat00025
The second emergency key generated by encrypting the first encryption key with
Figure 112021143359710-pat00026
may be stored in correspondence to the account user 1 of the first user, and the user public key of the second user
Figure 112021143359710-pat00027
The second emergency key generated by encrypting the first encryption key with
Figure 112021143359710-pat00028
may be stored in correspondence with the second user's account user 2 .

일 실시 예에 따르면, 제2 비상키는 순차적으로 관리자의 디바이스 또는 스페이스에 포함된 다른 사용자의 디바이스에서 생성되어 서버에 저장될 수 있다. 예를 들어, 제2 비상키는 일정 주기로 일정 개수만큼 생성되어 서버에 저장될 수 있으며, 스페이스에 새로운 사용자의 계정이 포함됨에 따라 새로운 사용자의 계정에 대응하는 제2 비상키가 생성될 수 있다. According to an embodiment, the second emergency key may be sequentially generated in a manager's device or another user's device included in a space and stored in a server. For example, a certain number of second emergency keys may be generated at regular intervals and stored in a server, and as a new user's account is included in the space, a second emergency key corresponding to the new user's account may be generated.

제1 암호화 키는 대칭 키인 경우를 예로 들어 설명하였으나, 제1 암호화 키는 비대칭 키로 생성될 수도 있다. 이 경우, 제2 암호문은 암호화 키인 제1 암호화 키로 암호화되어 생성되며, 제2 비상 키는 제1 암호화 키에 대응하는 복호화 키를 유저 퍼블릭 키로 암호화하여 생성될 수 있다.Although the case where the first encryption key is a symmetric key has been described as an example, the first encryption key may be generated as an asymmetric key. In this case, the second ciphertext is generated by being encrypted with the first encryption key, which is the encryption key, and the second emergency key may be generated by encrypting the decryption key corresponding to the first encryption key with the user public key.

도 7은 일 실시 예에 따른 제2 비상키에 기초하여 스페이스 프라이빗 키를 복구하기 위한 동작 흐름도이다.7 is an operation flowchart for recovering a space private key based on a second emergency key according to an embodiment.

도 7을 참조하면, userk는 사용자 k의 계정,

Figure 112021143359710-pat00029
는 사용자 k의 유저 퍼블릭 키,
Figure 112021143359710-pat00030
는 사용자 k의 유저 프라이빗 키, SPd는 스페이스 프라이빗 키, AES는 제1 암호화 키, EX는 교환 키, c2은 제2 암호문, c3은 제3 암호문, ekey2는 제2 비상키, userk_ekey2는 사용자 k의 유저 퍼블릭 키
Figure 112021143359710-pat00031
로 제1 암호화 키 AES를 암호화하여 생성된 사용자 k에 대응하는 제2 비상키, Ekey는 키 key를 이용한 암호화 함수, Dkey는 키 key를 이용한 복호화 함수를 의미할 수 있다.Referring to FIG. 7, user k is an account of user k,
Figure 112021143359710-pat00029
is the user public key of user k,
Figure 112021143359710-pat00030
is the user private key of user k, SP d is the space private key, AES is the first encryption key, EX is the exchange key, c 2 is the second passphrase, c 3 is the third passphrase, ekey 2 is the second emergency key, user k _ekey 2 is user k's user public key
Figure 112021143359710-pat00031
A second emergency key corresponding to user k generated by encrypting the first encryption key AES with , key E may mean an encryption function using the key key, and key D may mean a decryption function using the key key.

일 실시 예에 따르면, 관리자의 디바이스는 스페이스 프라이빗 키를 분실한 경우, 서버에 스페이스 프라이빗 키의 복구를 요청(710)할 수 있다. 서버는 스페이스 프라이빗 키의 복구 요청에 반응하여, 제2 비상키에 대응하는 적어도 하나의 사용자의 계정에 관한 정보 {user1, user2, …, usern} 및 제2 암호문을 관리자의 디바이스에 제공(720)할 수 있다. 제2 비상키에 대응하는 사용자의 계정에 관한 정보는 제2 비상키의 생성에 이용된 유저 퍼블릭 키에 대응하는 사용자의 계정의 목록을 포함할 수 있다. 제2 암호문은 스페이스 프라이빗 키를 제1 암호화 키로 암호화하여 서버에 저장된 암호문

Figure 112021143359710-pat00032
에 해당할 수 있다.According to an embodiment, when the manager's device loses the space private key, it may request 710 recovery of the space private key to the server. In response to the request for recovery of the space private key, the server responds to information about at least one user's account corresponding to the second emergency key {user 1 , user 2 , . . . , user n } and the second passphrase may be provided to the manager's device (720). The information about the user's account corresponding to the second emergency key may include a list of user accounts corresponding to the user's public key used to generate the second emergency key. The second passphrase is the passphrase stored in the server by encrypting the space private key with the first encryption key.
Figure 112021143359710-pat00032
may correspond to

일 실시 예에 따른 관리자의 디바이스는 제공된 사용자의 계정 중 어느 하나의 사용자의 계정(예를 들어, user2)을 선택하여, 서버에 선택된 사용자의 계정에 대응하는 제2 비상키를 요청(730)할 수 있다. 이하에서, 관리자의 디바이스는 제2 사용자의 계정 user2을 선택하여, 제2 사용자의 계정에 대응하는 제2 비상키를 요청한 것으로 예를 들어 설명한다.According to an embodiment, the administrator's device selects one of the provided user accounts (eg, user 2 ) and requests the server for a second emergency key corresponding to the selected user's account (730) can do. Hereinafter, an example will be described in which the administrator's device selects the second user's account user 2 and requests the second emergency key corresponding to the second user's account.

관리자의 디바이스로부터 제2 사용자의 계정에 대응하는 제2 비상키의 요청을 수신한 서버는 제2 사용자의 계정에 대응하는 제2 비상키 user2_ekey2를 관리자의 디바이스에 제공(740)할 수 있다.Upon receiving the request for the second emergency key corresponding to the second user's account from the manager's device, the server may provide the second emergency key user 2_ekey 2 corresponding to the second user's account to the manager's device (740) there is.

관리자의 디바이스는 서버를 통해 제2 사용자의 디바이스에 교환 키를 전송(750)할 수 있다. 제2 사용자의 디바이스는 제2 사용자의 계정으로 로그인 된 디바이스를 의미할 수 있다. 일 예로, 관리자의 디바이스는 서버에 제2 비상키에 대응하는 사용자의 계정에 교환 키를 전송할 것을 요청할 수 있으며, 서버는 제2 사용자의 디바이스에 교환 키를 전송할 수 있다. The manager's device may transmit the exchange key to the second user's device through the server (750). The second user's device may refer to a device logged into the second user's account. For example, the administrator's device may request the server to transmit an exchange key to the user's account corresponding to the second emergency key, and the server may transmit the exchange key to the second user's device.

일 실시 예에 따르면, 교환 키는 유저 프라이빗 키를 암호화하기 위한 키로, 교환 키는 대칭 키 혹은 비대칭 키에 해당할 수 있다. 교환 키가 비대칭 키인 경우, 제2 사용자의 디바이스에 전달되는 교환 키는 교환 키의 암호화 키에 해당할 수 있다. 교환 키를 전송하는 동작(750)은 제2 사용자의 디바이스에 제2 사용자의 유저 프라이빗 키를 요청하는 동작을 포함할 수 있다. 다시 말해, 교환 키를 전송하는 것은 유저 프라이빗 키의 요청을 포함할 수 있다.According to an embodiment, the exchange key is a key for encrypting a user private key, and the exchange key may correspond to a symmetric key or an asymmetric key. If the exchange key is an asymmetric key, the exchange key transmitted to the device of the second user may correspond to an encryption key of the exchange key. Transmitting the exchange key (750) may include requesting the second user's user private key from the second user's device. In other words, sending the exchange key may include requesting the user's private key.

일 실시 예에 따르면, 관리자의 디바이스는 제2 사용자의 계정에 대응하는 제2 비상키를 서버에 요청할 때, 요청과 함께 교환 키를 서버에 전송할 수 있다. 다시 말해, 관리자의 디바이스의 제2 사용자의 계정에 대응하는 제2 비상키를 요청하는 동작(730)은 서버를 통해 교환 키를 제2 사용자의 디바이스에 전송하는 동작(750)을 포함할 수 있다.According to one embodiment, when the manager's device requests the server for the second emergency key corresponding to the account of the second user, the exchange key may be transmitted to the server along with the request. In other words, operation 730 of requesting the second emergency key corresponding to the account of the second user of the manager's device may include operation 750 of transmitting the exchange key to the device of the second user through the server. .

일 실시 예에 따르면, 제2 사용자의 디바이스는 수신된 교환 키로 제2 사용자의 유저 프라이빗 키를 암호화한 제3 암호문

Figure 112021143359710-pat00033
을 생성(760)할 수 있으며, 제3 암호문은 서버를 통해 관리자의 디바이스로 전달(770)될 수 있다.According to an embodiment, the second user's device uses the received exchange key to encrypt the second user's user private key and third ciphertext
Figure 112021143359710-pat00033
It can generate (760), and the third cipher text can be delivered to the manager's device through the server (770).

일 실시 예에 따르면, 제2 사용자의 디바이스는 제3 암호문을 전송하기에 앞서, 관리자의 디바이스를 인증하는 동작을 수행할 수 있다. 예를 들어, 제2 사용자의 디바이스는 교환 키를 전송한 관리자의 디바이스가 제2 사용자의 계정이 포함된 스페이스의 관리자로 지정된 계정인지 여부를 확인할 수 있으며, 관리자로 지정된 계정으로 확인된 경우, 제3 암호문을 전송할 수 있다.According to an embodiment, the device of the second user may perform an operation of authenticating the device of the administrator before transmitting the third password text. For example, the second user's device can check whether the manager's device that sent the exchange key is an account designated as the manager of the space that includes the second user's account. 3 ciphertext can be transmitted.

일 실시 예에 따르면, 제2 사용자의 디바이스로부터 제3 암호문을 수신한 관리자의 디바이스는 제3 암호문을 교환 키로 복호화하여 제2 사용자의 유저 프라이빗 키를 획득(780)할 수 있다. 교환 키가 비대칭 키인 경우, 관리자의 디바이스는 교환 키의 복호화 키를 이용하여 암호문을 복호화할 수 있다. According to an embodiment, the manager's device receiving the third encrypted text from the second user's device may decrypt the third encrypted text with an exchange key to obtain the user private key of the second user (780). If the exchange key is an asymmetric key, the administrator's device can decrypt the ciphertext using the decryption key of the exchange key.

관리자의 디바이스는 획득된 제2 사용자의 유저 프라이빗 키를 이용하여, 제2 비상키를 복호화함으로써, 제1 암호화 키를 획득(790)할 수 있다. 제1 암호화 키를 획득한 관리자의 디바이스는 제2 암호문을 제1 암호화 키로 복호화함으로써, 스페이스 프라이빗 키를 획득(791)할 수 있다. 다시 말해, 관리자의 디바이스에서 분실된 스페이스 프라이빗 키는 제2 비상키에 기초하여 복구될 수 있으며, 복구된 스페이스 프라이빗 키는 관리자의 디바이스에 저장될 수 있다.The manager's device may obtain the first encryption key by decrypting the second emergency key using the obtained user private key of the second user (790). The device of the administrator who has obtained the first encryption key may obtain the space private key by decrypting the second ciphertext with the first encryption key (791). In other words, the space private key lost in the manager's device can be restored based on the second emergency key, and the restored space private key can be stored in the manager's device.

도 8은 일 실시 예에 따른 관리자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법의 동작 흐름도이다.8 is an operation flowchart of a secure instant messaging method performed in a manager's device according to an embodiment.

도 8을 참조하면, 일 실시 예에 따른 관리자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법은 스페이스 프라이빗 키를 제1 암호화 키로 암호화한 제2 암호문을 생성하여 서버에 저장하는 단계(810), 스페이스 프라이빗 키의 복구를 위하여, 서버로부터 제2 비상키 및 제2 암호문을 수신하는 단계(820), 제2 비상키에 대응하는 제2 사용자의 계정으로 로그인 된 제2 사용자의 디바이스에 교환 키를 전송하는 단계(830), 교환 키에 기초하여, 제2 사용자의 유저 프라이빗 키를 획득하는 단계(840), 및 제1 암호화 키 및 제2 암호문에 기초하여, 스페이스 프라이빗 키를 복구하는 단계(850)를 포함할 수 있다.Referring to FIG. 8 , the secure instant messaging method performed on the administrator's device according to an embodiment includes generating a second ciphertext obtained by encrypting a space private key with a first encryption key and storing the second ciphertext in a server (810), the space private key Receiving a second emergency key and a second passphrase from the server for recovery (820), transmitting an exchange key to a device of a second user logged in with an account of the second user corresponding to the second emergency key. (830), based on the exchange key, obtaining (840) the user private key of the second user, and based on the first encryption key and the second ciphertext, recovering (850) the space private key. can do.

도 8에 도시된 관리자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법은 도 6 및 도 7을 통해 상술한 관리자의 디바이스의 동작에 대응될 수 있다. 일 예로, 단계(810)는 도 6에서 상술한 관리자의 디바이스의 동작에 대응될 수 있으며, 단계(820) 내지 단계(850)는 도 7에서 상술한 관리자의 디바이스의 동작에 대응될 수 있다. 적어도 하나의 사용자 및 관리자는 보안 인스턴트 메시징 서비스에서 제공하는 스페이스에 포함될 수 있다. 적어도 하나의 사용자는 제2 사용자를 포함할 수 있다.The secure instant messaging method performed in the manager's device shown in FIG. 8 may correspond to the operations of the manager's device described above with reference to FIGS. 6 and 7 . For example, step 810 may correspond to the operation of the manager's device described above with reference to FIG. 6 , and steps 820 to 850 may correspond to the operation of the manager's device described above with reference to FIG. 7 . At least one user and administrator may be included in a space provided by the secure instant messaging service. The at least one user may include a second user.

일 실시 예에 따른 단계(810)는 제2 암호문을 스페이스에 대응하여 서버에 저장하는 단계를 포함할 수 있다. 상술한 바와 같이, 스페이스 프라이빗 키를 암호화하기 위한 제1 암호화 키는 관리자의 디바이스에서 생성될 수 있다. 관리자의 디바이스는 제1 암호화 키를 복호화하기 위한 키를 저장할 수 있다. 예를 들어, 관리자의 디바이스는 제1 암호화 키가 대칭 키인 경우 제1 암호화 키를 저장할 수 있으며, 제1 암호화 키가 비대칭 키인 경우 제1 암호화 키와 쌍으로 생성된 복호화 키를 저장할 수 있다.Step 810 according to an embodiment may include storing the second ciphertext in a server corresponding to the space. As described above, the first encryption key for encrypting the space private key may be generated in the administrator's device. The manager's device may store a key for decrypting the first encryption key. For example, the manager's device may store the first encryption key when the first encryption key is a symmetric key, and may store a decryption key generated as a pair with the first encryption key when the first encryption key is an asymmetric key.

일 실시 예에 따른 단계(820)는 제1 암호화 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 암호문을 포함하는 제2 비상키를 획득하는 단계 및 단계(810)에서 저장된 제2 암호문을 획득하는 단계를 포함할 수 있다. 제2 비상키는 관리자의 디바이스에서 스페이스 프라이빗 키를 분실한 경우, 수행될 수 있다. 제1 비상키는 제1 암호화 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 암호문을 포함할 수 있으며, 제2 사용자의 유저 퍼블릭 키로 제1 암호화 키를 암호화한 암호문인 제2 사용자의 계정에 대응하는 제2 비상키를 포함할 수 있다. 관리자의 디바이스는 서버에 저장된 제2 사용자의 계정에 대응하는 제2 비상키를 요청할 수 있으며, 서버로부터 제2 사용자의 계정에 대응하는 제2 비상키를 획득할 수 있다. 일 예로, 관리자의 디바이스는 제2 비상키가 저장된 위치를 획득할 수 있으며, 서버에 제2 비상키를 요청할 수 있다.Step 820 according to an embodiment includes obtaining a second emergency key including at least one cipher text obtained by encrypting the first encryption key with the user public key of at least one user, and the second cipher text stored in step 810. It may include the step of obtaining. The second emergency key may be performed when the space private key is lost in the manager's device. The first emergency key may include at least one ciphertext obtained by encrypting the first encryption key with the user public key of at least one user, and the ciphertext obtained by encrypting the first encryption key with the user public key of the second user is the second user's ciphertext. A second emergency key corresponding to the account may be included. The manager's device may request a second emergency key corresponding to the second user's account stored in the server, and may obtain the second emergency key corresponding to the second user's account from the server. For example, the manager's device may obtain a location where the second emergency key is stored and may request the second emergency key from the server.

일 실시 예에 따른 단계(830)는 제2 사용자의 계정으로 로그인 된 제2 사용자의 디바이스에 제2 사용자의 유저 프라이빗 키를 암호화하기 위한 교환 키를 전송하는 단계를 포함할 수 있다. 상술한 바와 같이, 교환 키를 전송하는 단계(830)는 유저 프라이빗 키를 요청하는 단계를 포함할 수 있다.Step 830 according to an embodiment may include transmitting an exchange key for encrypting a user private key of the second user to a device of the second user logged in with an account of the second user. As described above, transmitting 830 the exchange key may include requesting a user private key.

일 실시 예에 따른 제2 사용자의 유저 프라이빗 키를 획득하는 단계(840)는 제2 사용자의 디바이스로부터 제2 사용자의 유저 프라이빗 키를 교환 키로 암호화한 제3 암호문을 수신하는 단계 및 교환 키로 제3 암호문을 복호화하여 제2 사용자의 유저 프라이빗 키를 획득하는 단계를 포함할 수 있다. 제2 사용자의 디바이스는 수신된 교환 키에 기초하여 제2 사용자의 유저 프라이빗 키를 암호화한 제3 암호문을 생성하여 관리자의 디바이스에 전송할 수 있으며, 관리자의 디바이스는 제3 암호문을 획득할 수 있다. 관리자의 디바이스에서 제3 암호문은 교환 키로 복호화될 수 있으며, 제3 암호문의 복호화 결과 제2 사용자의 유저 프라이빗 키가 획득될 수 있다.Obtaining the user private key of the second user according to an embodiment (840) includes receiving a third ciphertext obtained by encrypting the user private key of the second user with an exchange key from the second user's device, and using the exchange key as the third cipher text. Decrypting the ciphertext may include obtaining a user private key of the second user. The device of the second user may generate third cipher text obtained by encrypting the user private key of the second user based on the received exchange key, and transmit the third cipher text to the device of the manager, and the device of the manager may obtain the third cipher text. In the administrator's device, the third ciphertext may be decrypted with the exchange key, and as a result of decryption of the third ciphertext, the user private key of the second user may be obtained.

일 실시 예에 따른 제2 사용자의 유저 프라이빗 키를 획득하는 단계(840)는 제2 사용자의 디바이스에 관리자의 인증을 요청하는 단계 및 관리자의 인증에 기초하여, 제2 사용자의 유저 프라이빗 키를 획득하는 단계를 포함할 수 있다. 상술한 바와 같이, 제2 사용자의 디바이스는 유저 프라이빗 키의 요청의 발신자가 제2 사용자의 계정이 속한 스페이스의 관리자인지 여부를 확인할 수 있으며, 관리자로 확인된 경우, 유저 프라이빗 키를 암호화하여 전송할 수 있다.Obtaining the user private key of the second user according to an embodiment (840) includes requesting administrator authentication from the device of the second user and obtaining the user private key of the second user based on the administrator's authentication. steps may be included. As described above, the device of the second user may check whether the sender of the request for the user private key is the manager of the space to which the account of the second user belongs, and if the manager is identified, the user private key may be encrypted and transmitted. there is.

일 실시 예에 따른 단계(840)에서 관리자의 인증이 실패한 경우, 관리자의 디바이스는 제3 암호문을 획득하지 못할 수 있다.If the administrator's authentication fails in step 840 according to an embodiment, the administrator's device may not be able to obtain the third password text.

일 실시 예에 따른 단계(850)는 제2 비상키를 제2 사용자의 유저 프라이빗 키로 복호화하여 제1 암호화 키를 획득하는 단계를 더 포함할 수 있다. 다시 말해, 제1 암호화 키는 단계(820)에서 획득된 제2 사용자의 계정에 대응하는 제2 비상키를 단계(840)에서 획득된 제2 사용자의 유저 프라이빗 키로 복호화하여 획득될 수 있다.Step 850 according to an embodiment may further include obtaining a first encryption key by decrypting the second emergency key with the user private key of the second user. In other words, the first encryption key may be obtained by decrypting the second emergency key corresponding to the second user's account obtained in step 820 with the user private key of the second user obtained in step 840 .

일 실시 예에 따른 스페이스 프라이빗 키를 복구하는 단계(850)는 제1 암호화 키로 제2 암호문을 복호화하여 스페이스 프라이빗 키를 복구하는 단계를 포함할 수 있다. 관리자의 디바이스는 획득된 스페이스 프라이빗 키를 저장하거나, 관리자의 디바이스에서 접근 가능한 보안 매체에 저장함으로써, 스페이스 프라이빗 키에 대한 접근 권한을 획득할 수 있다.Step 850 of recovering the space private key according to an embodiment may include recovering the space private key by decrypting the second ciphertext using the first encryption key. The manager's device may acquire access rights to the space private key by storing the obtained space private key or storing it in a secure medium accessible from the manager's device.

도 9는 일 실시 예에 따른 서버에서 수행되는 보안 인스턴트 메시징 방법의 동작 흐름도이다.9 is an operation flowchart of a secure instant messaging method performed in a server according to an embodiment.

도 9를 참조하면, 일 실시 예에 따른 서버에서 수행되는 보안 인스턴트 메시징 방법은 관리자의 디바이스로부터 수신된 스페이스 프라이빗 키를 제1 암호화 키로 암호화한 제2 암호문을 저장하는 단계(910), 적어도 하나의 제2 비상키를 상기 적어도 하나의 사용자의 계정 각각에 대응하여 저장하는 단계(920), 제2 암호문 및 제2 비상키에 대응하는 사용자의 계정에 관한 정보를 관리자의 디바이스에 전송하는 단계(930), 및 제2 사용자의 계정에 대응하여 저장된 제2 비상키를 관리자의 디바이스에 전송하는 단계(940)를 포함할 수 있다.Referring to FIG. 9 , a secure instant messaging method performed in a server according to an embodiment includes storing a second cipher text obtained by encrypting a space private key received from a manager's device with a first encryption key (910), and at least one Storing a second emergency key corresponding to each of the at least one user's account (920), transmitting second password text and information about the user's account corresponding to the second emergency key to an administrator's device (930) ), and transmitting the second emergency key stored in correspondence to the account of the second user to the manager's device (940).

도 9에 도시된 서버에서 수행되는 보안 인스턴트 메시징 방법은 도 6 및 도 7을 통해 상술한 서버의 동작에 대응될 수 있다. 일 예로, 단계(910) 및 단계(920)는 도 6에서 상술한 서버의 동작에 대응될 수 있으며, 단계(930) 및 단계(940)는 도 7에서 상술한 서버의 동작에 대응될 수 있다.The secure instant messaging method performed by the server shown in FIG. 9 may correspond to the operation of the server described above with reference to FIGS. 6 and 7 . For example, steps 910 and 920 may correspond to the operation of the server described above in FIG. 6, and steps 930 and 940 may correspond to the operation of the server described above in FIG. 7 .

일 실시 예에 따른 단계(910)는 관리자의 디바이스에서 생성된 제2 암호문을 관리자가 속한 스페이스에 대응하여 저장하는 단계를 포함할 수 있다.Step 910 according to an embodiment may include storing the second passphrase generated by the manager's device in correspondence with the space to which the manager belongs.

일 실시 예에 따른 단계(920)는 적어도 하나의 사용자의 유저 퍼블릭 키로 제1 암호화 키를 암호화한 적어도 하나의 제2 비상키를 적어도 하나의 사용자의 계정 각각에 대응하여 저장하는 단계를 포함할 수 있다. 적어도 하나의 사용자 및 관리자는 보안 인스턴트 메시징 서비스에서 제공하는 스페이스에 포함될 수 있다.Step 920 according to an embodiment may include storing at least one second emergency key obtained by encrypting the first encryption key with the user public key of the at least one user in correspondence with each account of the at least one user. there is. At least one user and administrator may be included in a space provided by the secure instant messaging service.

일 실시 에에 따르면, 적어도 하나의 제2 비상키는 관리자의 디바이스로부터 수신될 수도 있으며, 스페이스에 포함된 관리자 외 다른 사용자(예를 들어, 제3 사용자)의 디바이스로부터 수신될 수도 있다. 예를 들어, 스페이스에 포함된 관리자 외 다른 사용자(예를 들어, 제3 사용자)의 디바이스는 관리자의 디바이스로부터 제1 암호화 키를 수신한 사용자의 디바이스에 해당할 수 있다. 다시 말해, 적어도 하나의 제2 비상키를 적어도 하나의 사용자의 계정 각각에 대응하여 저장하는 단계(920)는 관리자의 디바이스로부터, 적어도 하나의 사용자의 유저 퍼블릭 키로 제1 암호화 키를 암호화한 적어도 하나의 제2 비상키를 수신하는 단계 및 관리자의 디바이스로부터 제1 암호화 키를 수신한 사용자의 디바이스로부터, 적어도 하나의 사용자의 유저 퍼블릭 키로 제1 암호화 키를 암호화한 적어도 하나의 제2 비상키를 수신하는 단계 중 적어도 하나를 포함할 수 있다. 이하에서, 제2 비상키가 수신되는 관리자 외 다른 사용자의 디바이스는 제2 사용자의 디바이스인 경우를 예로 들어 설명한다.According to one embodiment, the at least one second emergency key may be received from a manager's device or may be received from a device of a user other than the manager included in the space (eg, a third user). For example, a device of a user other than the manager (eg, a third user) included in the space may correspond to a device of a user who has received the first encryption key from the manager's device. In other words, storing at least one second emergency key corresponding to each account of at least one user (920) includes at least one encryption key obtained by encrypting the first encryption key with the user public key of at least one user from the manager's device. Receiving a second emergency key of and receiving at least one second emergency key obtained by encrypting the first encryption key with the user public key of at least one user from the user's device that has received the first encryption key from the manager's device It may include at least one of the steps of Hereinafter, a case where a device of a user other than the manager receiving the second emergency key is a device of the second user will be described as an example.

상술한 바와 같이, 제3 사용자의 디바이스는 관리자의 디바이스로부터 제3 사용자의 유저 퍼블릭 키로 제1 암호화 키를 암호화한 제3 사용자의 계정에 대응하는 제2 비상키를 수신할 수 있으며, 수신된 제2 비상키를 제3 사용자의 유저 프라이빗 키로 복호화함으로써 제1 암호화 키를 획득할 수 있다.As described above, the device of the third user may receive the second emergency key corresponding to the account of the third user in which the first encryption key is encrypted with the user public key of the third user from the device of the manager, and the received 2 The first encryption key may be obtained by decrypting the emergency key with the user private key of the third user.

일 실시 예에 따른 단계(920)는 제2 비상키를 암호화한 유저 퍼블릭 키에 대응하는 사용자의 계정을 식별하기 위하여, 적어도 하나의 제2 비상키를 적어도 하나의 사용자의 계정 각각에 대응하여 저장하는 단계에 해당할 수 있다.Step 920 according to an embodiment stores at least one second emergency key corresponding to each of the at least one user account in order to identify a user account corresponding to the user public key that encrypts the second emergency key. It may correspond to the step of

일 예로, 적어도 하나의 제2 비상키를 적어도 하나의 사용자의 계정 각각에 대응하여 저장하는 단계(910)는 일정 주기로 수행될 수 있으며, 수신되는 제2 비상키의 개수는 미리 정해진 개수에 해당할 수 있다. 또 일 예로, 적어도 하나의 제2 비상키를 적어도 하나의 사용자의 계정 각각에 대응하여 저장하는 단계(910)는 스페이스에 새로운 사용자의 계정에 포함됨에 따라, 수행될 수 있다. For example, the step 910 of storing at least one second emergency key corresponding to each account of at least one user may be performed at regular intervals, and the number of received second emergency keys may correspond to a predetermined number. can As another example, the step 910 of storing at least one second emergency key corresponding to each of the at least one user's account may be performed as the new user's account is included in the space.

일 실시 예에 따른 단계(930)는 관리자의 디바이스로부터 수신된 스페이스 프라이빗 키의 복구 요청에 반응하여, 제2 암호문 및 제2 비상키에 대응하는 사용자의 계정에 관한 정보를 관리자의 디바이스에 제공하는 단계를 포함할 수 있다. 제2 비상키에 대응하는 적어도 하나의 사용자의 계정에 관한 정보는 서버에 스페이스에 대응하여 저장된 제2 비상키의 생성에 이용된 유저 퍼블릭 키에 대응하는 사용자의 계정의 목록을 포함할 수 있다.Step 930 according to an embodiment includes providing information about the user's account corresponding to the second passphrase and the second emergency key to the manager's device in response to the request for recovery of the space private key received from the manager's device. steps may be included. Information about at least one user account corresponding to the second emergency key may include a list of user accounts corresponding to the user public key used to generate the second emergency key stored in the server in correspondence with the space.

상술한 바와 같이, 관리자의 디바이스는 제2 암호문이 저장된 위치를 획득할 수 있어, 서버에 제2 암호문을 요청할 수 있다. 일 예로, 다른 사용자의 디바이스는 제2 암호문이 저장된 위치를 획득하지 못할 수 있으며, 이에 따라 서버에 제2 암호문을 요청할 수 없을 수 있다. 또 일 예로, 서버에 제2 암호문의 저장된 위치에 기초하지 않고, 제2 암호문을 요청할 수 있는 경우, 서버는 관리자가 아닌 다른 사용자로부터 제2 암호문의 요청이 수신되면, 제2 암호문을 전송하지 않을 수 있다. 다시 말해, 서버는 관리자의 디바이스로 확인된 디바이스로부터 수신된 제2 암호문의 요청에 반응하여, 제2 암호문을 전송하도록 동작할 수 있다.As described above, the administrator's device can obtain the location where the second cipher text is stored, and can request the second cipher text from the server. For example, another user's device may not be able to obtain a location where the second cipher text is stored, and thus may not be able to request the second cipher text from the server. As another example, when the second cipher text can be requested without based on the location where the second cipher text is stored in the server, the server may not transmit the second cipher text when a request for the second cipher text is received from a user other than the administrator. can In other words, the server may operate to transmit the second encrypted text in response to a request for the second encrypted text received from the device identified as the manager's device.

일 실시 예에 따른 단계(940)는 사용자의 계정에 관한 정보에 기초하여 적어도 하나의 사용자의 계정 중 제2 사용자의 계정을 선택하는 관리자의 입력에 반응하여, 제2 사용자의 계정에 대응하여 저장된 제2 비상키를 관리자의 디바이스에 전송하는 단계를 포함할 수 있다. 제2 사용자의 계정을 선택하는 입력은 관리자의 디바이스로부터 수신된 입력에 해당할 수 있다. 관리자의 디바이스는 서버로부터 제공된 사용자의 계정에 관한 정보에 기초하여, 제2 비상키의 생성에 이용된 유저 키에 대응하는 사용자의 계정 중 어느 하나를 선택할 수 있으며, 서버에 선택된 사용자의 계정에 대응하는 제2 비상키를 요청할 수 있다. 선택된 사용자의 계정에 대응하는 제2 비상키는 선택된 사용자의 유저 퍼블릭 키로 암호화된 제1 암호화 키에 해당할 수 있다.Step 940 according to an embodiment, in response to an administrator's input for selecting a second user's account from among at least one user's account based on information about the user's account, stored in correspondence with the second user's account and transmitting the second emergency key to the manager's device. The input for selecting the account of the second user may correspond to an input received from the manager's device. The administrator's device may select any one of the user accounts corresponding to the user key used to generate the second emergency key based on the user account information provided from the server, and correspond to the user account selected by the server. may request a second emergency key. The second emergency key corresponding to the account of the selected user may correspond to the first encryption key encrypted with the user public key of the selected user.

도 10은 일 실시 예에 따른 제3 사용자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법의 동작 흐름도이다.10 is an operation flowchart of a secure instant messaging method performed in a device of a third user according to an embodiment.

도 10을 참조하면, 일 실시 예에 따른 제3 사용자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법은 관리자의 디바이스로부터 제3 사용자의 계정에 대응하는 제2 비상키를 획득하는 단계(1010), 획득된 제2 비상키를 제3 사용자의 유저 프라이빗 키로 복호화하여 제1 암호화 키를 획득하는 단계(1020), 및 적어도 하나의 제2 비상키를 생성하여 서버에 저장하는 단계(1030)를 포함할 수 있다.Referring to FIG. 10 , a secure instant messaging method performed on a third user's device according to an embodiment includes acquiring a second emergency key corresponding to the third user's account from a manager's device (1010). It may include obtaining a first encryption key by decrypting the second emergency key with a user private key of a third user (1020), and generating and storing at least one second emergency key in a server (1030). .

도 10에 도시된 제3 사용자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법은 도 6을 통해 상술한 제3 사용자의 디바이스의 동작에 대응될 수 있다.The secure instant messaging method performed by the third user's device shown in FIG. 10 may correspond to the operation of the third user's device described above with reference to FIG. 6 .

일 실시 예에 따른 단계(1010)는 관리자의 디바이스로부터, 제1 암호화 키를 제3 사용자의 유저 퍼블릭 키로 암호화한 제3 사용자의 계정에 대응하는 제2 비상키를 획득하는 단계를 포함할 수 있다. 다시 말해, 제3 사용자의 계정에 대응하는 제2 비상키는 제3 사용자의 유저 퍼블릭 키로 제1 암호화 키를 암호화한 암호문에 해당할 수 있다.Step 1010 according to an embodiment may include acquiring a second emergency key corresponding to an account of a third user in which the first encryption key is encrypted with the user public key of the third user, from the manager's device. . In other words, the second emergency key corresponding to the account of the third user may correspond to cipher text obtained by encrypting the first encryption key with the user public key of the third user.

일 실시 예에 따른 단계(1020)를 통해 제3 사용자의 디바이스는 제1 암호화 키를 획득할 수 있으며, 획득된 제1 암호화 키는 단계(1030)를 통해 다른 사용자의 유저 퍼블릭 키로 암호화되어 제2 비상키로 서버에 저장될 수 있다. 제2 비상키는 제1 암호화 키를 적어도 하나의 다른 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 암호문을 포함할 수 있다. 다시 말해, 일 실시 예에 따른 단계(1030)는 제1 암호화 키를 적어도 하나의 다른 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 제2 비상키를 생성하여 서버에 저장하는 단계를 포함할 수 있다. 다른 사용자는 관리자 및 제3 사용자가 포함된 스페이스에 포함된 사용자에 해당할 수 있다. 다른 사용자의 유저 퍼블릭 키는 서버로부터 획득될 수 있다. 상술한 바와 같이, 제2 비상키는 관리자의 디바이스 뿐 아니라, 스페이스에 포함된 관리자 외 사용자인 제3 사용자의 디바이스에서 생성될 수 있다.The device of the third user may obtain a first encryption key through step 1020 according to an embodiment, and the obtained first encryption key is encrypted with the user public key of another user through step 1030 to obtain a second encryption key. It can be stored on the server as an emergency key. The second emergency key may include at least one ciphertext obtained by encrypting the first encryption key with at least one user public key of another user. In other words, step 1030 according to an embodiment may include generating at least one second emergency key obtained by encrypting the first encryption key with the user public key of at least one other user and storing the second emergency key in a server. The other user may correspond to a user included in a space including an administrator and a third user. The user public key of another user may be obtained from the server. As described above, the second emergency key can be generated not only in the manager's device, but also in the device of a third user who is a user other than the manager included in the space.

도 11은 일 실시 예에 따른 장치의 구성의 예시도이다.11 is an exemplary view of a configuration of a device according to an embodiment.

도 11을 참조하면, 장치(1100)는 프로세서(1101), 메모리(1103) 및 입출력 장치(1105)를 포함한다. 장치(1100)는 예를 들어, 사용자의 디바이스(예를 들어, 스마트폰, 퍼스널 컴퓨터, 태블릿 PC 등), 서버를 포함할 수 있다.Referring to FIG. 11 , an apparatus 1100 includes a processor 1101 , a memory 1103 and an input/output device 1105 . The apparatus 1100 may include, for example, a user's device (eg, a smart phone, a personal computer, a tablet PC, etc.) and a server.

일 실시 예에 따른 장치(1100)는 상술한 보안 인스턴트 메시징 방법을 수행하는 장치를 포함할 수 있다. 예를 들어, 장치(1100)는 도 1 내지 도 10을 통하여 상술한 보안 인스턴트 메시징 방법을 수행하는 서버, 관리자의 디바이스 및/또는 제3 사용자의 디바이스를 포함할 수 있다.Device 1100 according to an embodiment may include a device that performs the secure instant messaging method described above. For example, the device 1100 may include a server that performs the secure instant messaging method described above with reference to FIGS. 1 to 10 , an administrator's device, and/or a third user's device.

일 실시 예에 따른 프로세서(1101)는 도 1 내지 도 10을 통하여 전술한 적어도 하나의 방법을 수행할 수 있다. 예를 들어, 서버의 프로세서(1101)는 도 5 및/또는 도 9를 통해 상술한 서버에서 수행되는 보안 인스턴트 메시징 방법을 수행할 수 있고, 관리자의 디바이스의 프로세서(1101)는 도 4 및/또는 도 8을 통해 상술한 관리자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법을 수행할 수 있으며, 제3 사용자의 디바이스의 프로세서(1101)는 도 10을 통해 상술한 제3 사용자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법을 수행할 수 있다.The processor 1101 according to an embodiment may perform at least one method described above through FIGS. 1 to 10 . For example, the processor 1101 of the server may perform the secure instant messaging method performed in the server described above with reference to FIGS. 5 and/or 9, and the processor 1101 of the administrator's device may The secure instant messaging method performed on the manager's device described above with reference to FIG. 8 can be performed, and the processor 1101 of the third user's device can perform the secure instant messaging performed with the device of the third user described above with reference to FIG. 10 . way can be done.

일 실시 예에 따른 메모리(1103)는 상술한 보안 인스턴트 메시징 방법과 관련된 정보를 저장할 수 있으며, 상술한 보안 인스턴트 메시징 방법을 수행하기 위한 데이터를 저장할 수 있다. 메모리(1103)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.The memory 1103 according to an embodiment may store information related to the above-described secure instant messaging method and may store data for performing the above-described secure instant messaging method. Memory 1103 may be volatile memory or non-volatile memory.

일 측에 따른 장치(1100)는 입출력 장치(1105)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 또는 네트워크)에 연결되고, 데이터를 교환할 수 있다. 예를 들어, 장치(1100)는 입출력 장치(1105)를 통해 다른 장치로부터 전송된 요청을 수신할 수 있으며, 요청에 대응하는 데이터 혹은 신호를 출력할 수 있다.The device 1100 according to one side may be connected to an external device (eg, a personal computer or network) through the input/output device 1105 and exchange data. For example, the device 1100 may receive a request transmitted from another device through the input/output device 1105 and output data or a signal corresponding to the request.

일 실시 예에 따르면, 메모리(1103)는 상술한 보안 인스턴트 메시징 방법이 구현된 프로그램을 저장할 수 있다. 프로세서(1101)는 메모리(1103)에 저장된 프로그램을 실행하고, 장치(1100)를 제어할 수 있다. 프로세서(1101)에 의하여 실행되는 프로그램의 코드는 메모리(1103)에 저장될 수 있다.According to an embodiment, the memory 1103 may store a program in which the above-described secure instant messaging method is implemented. The processor 1101 may execute a program stored in the memory 1103 and control the device 1100 . Program codes executed by the processor 1101 may be stored in the memory 1103 .

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, the devices, methods and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), programmable logic units (PLUs), microprocessors, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. The device can be commanded. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on computer readable media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. A computer readable medium may store program instructions, data files, data structures, etc. alone or in combination, and program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in the art of computer software. there is. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.

위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware device described above may be configured to operate as one or a plurality of software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited drawings, those skilled in the art can apply various technical modifications and variations based on this. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.

Claims (21)

관리자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법에 있어서,
스페이스 프라이빗 키에 대응하는 제1 비상키- 상기 제1 비상키는 상기 스페이스 프라이빗 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 암호문을 포함함 -를 생성하여 서버에 저장하는 단계;
상기 스페이스 프라이빗 키의 복구를 위하여, 상기 서버로부터 제1 사용자의 계정에 대응하는 제1 비상키를 획득하는 단계;
상기 제1 사용자의 계정으로 로그인 된 상기 제1 사용자의 디바이스에 교환 키를 전송하는 단계;
상기 교환 키에 기초하여, 상기 제1 사용자의 유저 프라이빗 키를 획득하는 단계; 및
상기 획득된 제1 비상키를 상기 제1 사용자의 유저 프라이빗 키로 복호화하여 상기 스페이스 프라이빗 키를 복구하는 단계
를 포함하는,
보안 인스턴트 메시징 방법.
In the secure instant messaging method performed on the manager's device,
Generating and storing a first emergency key corresponding to the space private key, wherein the first emergency key includes at least one ciphertext obtained by encrypting the space private key with the user public key of at least one user, and storing the first emergency key in a server;
obtaining a first emergency key corresponding to an account of a first user from the server in order to recover the space private key;
transmitting an exchange key to a device of the first user logged in with an account of the first user;
obtaining a user private key of the first user based on the exchange key; and
recovering the space private key by decrypting the obtained first emergency key with a user private key of the first user;
including,
A secure instant messaging method.
제1항에 있어서,
상기 관리자 및 상기 적어도 하나의 사용자는 보안 인스턴트 메시징 서비스에서 제공하는 스페이스-상기 스페이스는 적어도 하나의 대화방 및 적어도 하나의 사용자를 포함하는 단위임-에 포함되는,
보안 인스턴트 메시징 방법.
According to claim 1,
The administrator and the at least one user are included in a space provided by a secure instant messaging service, wherein the space is a unit including at least one chat room and at least one user.
A secure instant messaging method.
제2항에 있어서,
상기 스페이스 프라이빗 키는
상기 스페이스를 관리하는 상기 관리자의 디바이스에서, 상기 스페이스에 대응하는 비대칭 키로 생성되는,
보안 인스턴트 메시징 방법.
According to claim 2,
The space private key is
In the device of the administrator who manages the space, generated with an asymmetric key corresponding to the space,
A secure instant messaging method.
제1항에 있어서,
상기 제1 사용자의 유저 프라이빗 키를 획득하는 단계는
상기 제1 사용자의 디바이스로부터 상기 제1 사용자의 유저 프라이빗 키를 상기 교환 키로 암호화한 제1 암호문을 수신하는 단계; 및
상기 교환 키로 상기 제1 암호문을 복호화하여 상기 제1 사용자의 유저 프라이빗 키를 획득하는 단계
를 포함하는,
보안 인스턴트 메시징 방법.
According to claim 1,
Obtaining the user private key of the first user
receiving a first cipher text obtained by encrypting the user private key of the first user with the exchange key from a device of the first user; and
obtaining a user private key of the first user by decrypting the first cipher text with the exchange key;
including,
A secure instant messaging method.
제1항에 있어서,
상기 제1 사용자의 유저 프라이빗 키를 획득하는 단계는
상기 제1 사용자의 디바이스에 상기 관리자의 인증을 요청하는 단계; 및
상기 관리자의 인증에 기초하여, 상기 제1 사용자의 유저 프라이빗 키를 획득하는 단계
를 포함하는
보안 인스턴트 메시징 방법.
According to claim 1,
Obtaining the user private key of the first user
requesting authentication of the administrator to the device of the first user; and
Obtaining a user private key of the first user based on the administrator's authentication.
containing
A secure instant messaging method.
서버에서 수행되는 보안 인스턴트 메시징 방법에 있어서,
관리자의 디바이스로부터, 스페이스 프라이빗 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 제1 비상키를 수신하는 단계;
상기 수신된 적어도 하나의 제1 비상키를 상기 적어도 하나의 사용자의 계정 각각에 대응하여 저장하는 단계;
상기 관리자의 디바이스로부터 수신된 상기 스페이스 프라이빗 키의 복구 요청에 반응하여, 상기 적어도 하나의 제1 비상키에 대응하는 상기 적어도 하나의 사용자의 계정에 관한 정보를 상기 관리자의 디바이스에 제공하는 단계; 및
상기 정보에 기초하여 상기 적어도 하나의 사용자의 계정 중 제1 사용자의 계정을 선택하는 입력에 반응하여, 상기 제1 사용자의 계정에 대응하여 저장된 제1 비상키를 상기 관리자의 디바이스에 전송하는 단계
를 포함하는,
보안 인스턴트 메시징 방법.
In the secure instant messaging method performed in the server,
receiving at least one first emergency key obtained by encrypting a space private key with a user public key of at least one user, from a manager's device;
storing the received at least one first emergency key corresponding to each account of the at least one user;
providing information about the account of the at least one user corresponding to the at least one first emergency key to the manager's device in response to a request for recovery of the space private key received from the manager's device; and
Transmitting a first emergency key stored in correspondence with the account of the first user to the device of the manager in response to an input for selecting an account of the first user from among the accounts of the at least one user based on the information.
including,
A secure instant messaging method.
관리자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법에 있어서,
스페이스 프라이빗 키를 제1 암호화 키로 암호화한 제2 암호문을 생성하여 서버에 저장하는 단계;
상기 스페이스 프라이빗 키의 복구를 위하여, 상기 서버로부터 제2 비상키- 상기 제2 비상키는 상기 제1 암호화 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 암호문을 포함함- 및 상기 제2 암호문을 획득하는 단계;
상기 제2 비상키에 대응하는 제2 사용자의 계정으로 로그인 된 상기 제2 사용자의 디바이스에 교환 키를 전송하는 단계;
상기 교환 키에 기초하여, 상기 제2 사용자의 유저 프라이빗 키를 획득하는 단계; 및
상기 제2 비상키를 상기 제2 사용자의 유저 프라이빗 키로 복호화하여 획득된 상기 제1 암호화 키 및 상기 제2 암호문에 기초하여, 상기 스페이스 프라이빗 키를 복구하는 단계
를 포함하는,
보안 인스턴트 메시징 방법.
In the secure instant messaging method performed on the manager's device,
generating a second ciphertext obtained by encrypting the space private key with the first encryption key and storing the second ciphertext in a server;
In order to recover the space private key, a second emergency key from the server—the second emergency key includes at least one cipher text obtained by encrypting the first encryption key with a user public key of at least one user—and the first 2 obtaining ciphertext;
transmitting an exchange key to a device of a second user logged in with an account of the second user corresponding to the second emergency key;
obtaining a user private key of the second user based on the exchange key; and
recovering the space private key based on the first encryption key and the second ciphertext obtained by decrypting the second emergency key with a user private key of the second user;
including,
A secure instant messaging method.
제7항에 있어서,
상기 관리자 및 상기 적어도 하나의 사용자는 보안 인스턴트 메시징 서비스에서 제공하는 스페이스-상기 스페이스는 적어도 하나의 대화방 및 적어도 하나의 사용자를 포함하는 단위임-에 포함되는,
보안 인스턴트 메시징 방법.
According to claim 7,
The administrator and the at least one user are included in a space provided by a secure instant messaging service, wherein the space is a unit including at least one chat room and at least one user.
A secure instant messaging method.
제8항에 있어서,
상기 스페이스 프라이빗 키는
상기 스페이스를 관리하는 상기 관리자의 디바이스에서, 상기 스페이스에 대응하는 비대칭 키로 생성되는,
보안 인스턴트 메시징 방법.
According to claim 8,
The space private key is
In the device of the administrator who manages the space, generated with an asymmetric key corresponding to the space,
A secure instant messaging method.
제7항에 있어서,
상기 제2 사용자의 유저 프라이빗 키를 획득하는 단계는
상기 제2 사용자의 디바이스로부터 상기 제2 사용자의 유저 프라이빗 키를 상기 교환 키로 암호화한 제3 암호문을 수신하는 단계; 및
상기 교환 키로 상기 제3 암호문을 복호화하여 상기 제2 사용자의 유저 프라이빗 키를 획득하는 단계
를 포함하는,
보안 인스턴트 메시징 방법.
According to claim 7,
Obtaining the user private key of the second user
receiving third ciphertext obtained by encrypting the user private key of the second user with the exchange key from the device of the second user; and
obtaining a user private key of the second user by decrypting the third cipher text with the exchange key;
including,
A secure instant messaging method.
제7항에 있어서,
상기 제2 사용자의 유저 프라이빗 키를 획득하는 단계는
상기 제2 사용자의 디바이스에 상기 관리자의 인증을 요청하는 단계; 및
상기 관리자의 인증에 기초하여, 상기 제2 사용자의 유저 프라이빗 키를 획득하는 단계
를 포함하는
보안 인스턴트 메시징 방법.
According to claim 7,
Obtaining the user private key of the second user
requesting authentication of the manager to the device of the second user; and
Obtaining a user private key of the second user based on the administrator's authentication.
containing
A secure instant messaging method.
제7항에 있어서,
상기 스페이스 프라이빗 키를 복구하는 단계는
상기 제1 암호화 키로 상기 제2 암호문을 복호화하여 상기 스페이스 프라이빗 키를 복구하는 단계
를 포함하는,
보안 인스턴트 메시징 방법.
According to claim 7,
Recovering the space private key
recovering the space private key by decrypting the second ciphertext with the first encryption key;
including,
A secure instant messaging method.
서버에서 수행되는 보안 인스턴트 메시징 방법에 있어서,
관리자의 디바이스로부터 수신된 스페이스 프라이빗 키를 제1 암호화 키로 암호화한 제2 암호문을 저장하는 단계;
적어도 하나의 사용자의 유저 퍼블릭 키로 상기 제1 암호화 키를 암호화한 적어도 하나의 제2 비상키를 상기 적어도 하나의 사용자의 계정 각각에 대응하여 저장하는 단계;
상기 관리자의 디바이스로부터 수신된 상기 스페이스 프라이빗 키의 복구 요청에 반응하여, 상기 제2 암호문 및 상기 제2 비상키에 대응하는 사용자의 계정에 관한 정보를 상기 관리자의 디바이스에 제공하는 단계; 및
상기 정보에 기초하여 상기 적어도 하나의 사용자의 계정 중 제2 사용자의 계정을 선택하는 상기 관리자의 입력에 반응하여, 상기 제2 사용자의 계정에 대응하여 저장된 상기 제2 비상키를 상기 관리자의 디바이스에 전송하는 단계
를 포함하는,
보안 인스턴트 메시징 방법.
In the secure instant messaging method performed in the server,
storing second cipher text obtained by encrypting the space private key received from the manager's device with the first encryption key;
storing at least one second emergency key obtained by encrypting the first encryption key with the user public key of at least one user in correspondence with each account of the at least one user;
providing information about the account of the user corresponding to the second passphrase and the second emergency key to the device of the administrator in response to a request for recovery of the space private key received from the device of the administrator; and
In response to the manager's input for selecting the second user's account from among the at least one user's account based on the information, the second emergency key stored in correspondence to the second user's account is stored in the manager's device. steps to transmit
including,
A secure instant messaging method.
제13항에 있어서,
상기 적어도 하나의 제2 비상키를 상기 적어도 하나의 사용자의 계정 각각에 대응하여 저장하는 단계는
상기 관리자의 디바이스로부터, 상기 적어도 하나의 사용자의 유저 퍼블릭 키로 상기 제1 암호화 키를 암호화한 적어도 하나의 제2 비상키를 수신하는 단계; 및
상기 관리자의 디바이스로부터 상기 제1 암호화 키를 획득한 제3 사용자의 디바이스로부터, 상기 적어도 하나의 사용자의 유저 퍼블릭 키로 상기 제1 암호화 키를 암호화한 적어도 하나의 제2 비상키를 수신하는 단계
중 적어도 하나를 포함하는,
보안 인스턴트 메시징 방법.
According to claim 13,
The step of storing the at least one second emergency key corresponding to each of the at least one user account
receiving, from the manager's device, at least one second emergency key obtained by encrypting the first encryption key with the user public key of the at least one user; and
Receiving at least one second emergency key obtained by encrypting the first encryption key with the user public key of the at least one user from a device of a third user who has obtained the first encryption key from the device of the manager.
including at least one of
A secure instant messaging method.
제3 사용자의 디바이스에서 수행되는 보안 인스턴트 메시징 방법에 있어서,
관리자의 디바이스로부터, 제1 암호화 키를 상기 제3 사용자의 유저 퍼블릭 키로 암호화한 상기 제3 사용자의 계정에 대응하는 제2 비상키를 획득하는 단계;
상기 획득된 제2 비상키를 상기 제3 사용자의 유저 프라이빗 키로 복호화하여 상기 제1 암호화 키를 획득하는 단계; 및
상기 제1 암호화 키를 적어도 하나의 다른 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 제2 비상키를 생성하여 서버에 저장하는 단계
를 포함하는,
보안 인스턴트 메시징 방법.
A secure instant messaging method performed on a device of a third user, comprising:
obtaining, from an administrator's device, a second emergency key corresponding to an account of the third user in which the first encryption key is encrypted with the user public key of the third user;
obtaining the first encryption key by decrypting the obtained second emergency key with a user private key of the third user; and
Generating at least one second emergency key obtained by encrypting the first encryption key with at least one user public key of another user and storing the second emergency key in a server.
including,
A secure instant messaging method.
하드웨어와 결합되어 제1항 내지 제15항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
A computer program stored in a medium to be combined with hardware to execute the method of any one of claims 1 to 15.
스페이스 프라이빗 키에 대응하는 제1 비상키- 상기 제1 비상키는 상기 스페이스 프라이빗 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 암호문을 포함함 -를 생성하여 서버에 저장하고,
상기 스페이스 프라이빗 키의 복구를 위하여, 상기 서버로부터 제1 사용자의 계정에 대응하는 제1 비상키를 획득하고,
상기 제1 사용자의 계정으로 로그인 된 상기 제1 사용자의 디바이스에 교환 키를 전송하고,
상기 교환 키에 기초하여, 상기 제1 사용자의 유저 프라이빗 키를 획득하며,
상기 획득된 제1 비상키를 상기 제1 사용자의 유저 프라이빗 키로 복호화하여 상기 스페이스 프라이빗 키를 복구하는,
적어도 하나의 프로세서
를 포함하는,
관리자의 디바이스.
A first emergency key corresponding to the space private key, wherein the first emergency key includes at least one ciphertext obtained by encrypting the space private key with the user public key of at least one user, is generated and stored in a server;
To recover the space private key, obtain a first emergency key corresponding to an account of a first user from the server;
Transmitting an exchange key to the device of the first user logged in with the account of the first user;
Obtaining a user private key of the first user based on the exchange key;
Decrypting the obtained first emergency key with a user private key of the first user to recover the space private key;
at least one processor
including,
The manager's device.
관리자의 디바이스로부터, 스페이스 프라이빗 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 제1 비상키를 수신하고,
상기 수신된 적어도 하나의 제1 비상키를 상기 적어도 하나의 사용자의 계정 각각에 대응하여 저장하고,
상기 관리자의 디바이스로부터 수신된 상기 스페이스 프라이빗 키의 복구 요청에 반응하여, 상기 적어도 하나의 제1 비상키에 대응하는 상기 적어도 하나의 사용자의 계정에 관한 정보를 상기 관리자의 디바이스에 제공하며,
상기 정보에 기초하여 상기 적어도 하나의 사용자의 계정 중 제1 사용자의 계정을 선택하는 입력에 반응하여, 상기 제1 사용자의 계정에 대응하여 저장된 제1 비상키를 상기 관리자의 디바이스에 전송하는,
적어도 하나의 프로세서
를 포함하는,
서버.
Receiving at least one first emergency key obtained by encrypting the space private key with the user public key of at least one user from the manager's device;
storing the received at least one first emergency key in correspondence with each account of the at least one user;
In response to a request for recovery of the space private key received from the manager's device, information about the account of the at least one user corresponding to the at least one first emergency key is provided to the manager's device,
In response to an input for selecting an account of a first user from among the accounts of the at least one user based on the information, transmitting a first emergency key stored in correspondence to the account of the first user to the device of the manager,
at least one processor
including,
server.
스페이스 프라이빗 키를 제1 암호화 키로 암호화한 제2 암호문을 생성하여 서버에 저장하고,
상기 스페이스 프라이빗 키의 복구를 위하여, 상기 서버로부터 제2 비상키- 상기 제2 비상키는 상기 제1 암호화 키를 적어도 하나의 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 암호문을 포함함- 및 상기 제2 암호문을 획득하고,
상기 제2 비상키에 대응하는 제2 사용자의 계정으로 로그인 된 상기 제2 사용자의 디바이스에 교환 키를 전송하고,
상기 교환 키에 기초하여, 상기 제2 사용자의 유저 프라이빗 키를 획득하며,
상기 제2 비상키를 상기 제2 사용자의 유저 프라이빗 키로 복호화하여 획득된 상기 제1 암호화 키 및 상기 제2 암호문에 기초하여, 상기 스페이스 프라이빗 키를 복구하는,
적어도 하나의 프로세서
를 포함하는,
관리자의 디바이스.
Generating and storing a second passphrase obtained by encrypting the space private key with the first encryption key in a server;
In order to recover the space private key, a second emergency key from the server—the second emergency key includes at least one cipher text obtained by encrypting the first encryption key with a user public key of at least one user—and the first 2 obtain the ciphertext;
Transmitting an exchange key to the second user's device logged in with the second user's account corresponding to the second emergency key;
Obtaining a user private key of the second user based on the exchange key;
Recovering the space private key based on the first encryption key and the second ciphertext obtained by decrypting the second emergency key with the user private key of the second user,
at least one processor
including,
The manager's device.
관리자의 디바이스로부터 수신된 스페이스 프라이빗 키를 제1 암호화 키로 암호화한 제2 암호문을 저장하고,
적어도 하나의 사용자의 유저 퍼블릭 키로 상기 제1 암호화 키를 암호화한 적어도 하나의 제2 비상키를 상기 적어도 하나의 사용자의 계정 각각에 대응하여 저장하고,
상기 관리자의 디바이스로부터 수신된 상기 스페이스 프라이빗 키의 복구 요청에 반응하여, 상기 제2 암호문 및 상기 제2 비상키에 대응하는 사용자의 계정에 관한 정보를 상기 관리자의 디바이스에 제공하며,
상기 정보에 기초하여 상기 적어도 하나의 사용자의 계정 중 제2 사용자의 계정을 선택하는 상기 관리자의 입력에 반응하여, 상기 제2 사용자의 계정에 대응하여 저장된 상기 제2 비상키를 상기 관리자의 디바이스에 전송하는,
적어도 하나의 프로세서
를 포함하는,
서버.
Stores a second ciphertext obtained by encrypting the space private key received from the administrator's device with the first encryption key;
storing at least one second emergency key obtained by encrypting the first encryption key with a user public key of at least one user corresponding to each account of the at least one user;
Responding to a request for recovery of the space private key received from the manager's device, providing information about the user's account corresponding to the second passphrase and the second emergency key to the manager's device;
In response to the manager's input for selecting the second user's account from among the at least one user's account based on the information, the second emergency key stored in correspondence to the second user's account is stored in the manager's device. transmitting,
at least one processor
including,
server.
관리자의 디바이스로부터, 제1 암호화 키를 제3 사용자의 유저 퍼블릭 키로 암호화한 상기 제3 사용자의 계정에 대응하는 제2 비상키를 획득하고,
상기 획득된 제2 비상키를 상기 제3 사용자의 유저 프라이빗 키로 복호화하여 상기 제1 암호화 키를 획득하며,
상기 제1 암호화 키를 적어도 하나의 다른 사용자의 유저 퍼블릭 키로 암호화한 적어도 하나의 제2 비상키를 생성하여 서버에 저장하는,
적어도 하나의 프로세서
를 포함하는,
제3 사용자의 디바이스.

obtaining, from an administrator's device, a second emergency key corresponding to an account of a third user in which a first encryption key is encrypted with a user public key of the third user;
Obtaining the first encryption key by decrypting the obtained second emergency key with a user private key of the third user;
Generating at least one second emergency key obtained by encrypting the first encryption key with a user public key of at least one other user and storing the second emergency key in a server,
at least one processor
including,
Third-Party User's Device.

KR1020210176460A 2021-12-10 2021-12-10 Secure instant messaging method and attaratus thereof KR102544084B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210176460A KR102544084B1 (en) 2021-12-10 2021-12-10 Secure instant messaging method and attaratus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210176460A KR102544084B1 (en) 2021-12-10 2021-12-10 Secure instant messaging method and attaratus thereof

Publications (1)

Publication Number Publication Date
KR102544084B1 true KR102544084B1 (en) 2023-06-15

Family

ID=86763552

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210176460A KR102544084B1 (en) 2021-12-10 2021-12-10 Secure instant messaging method and attaratus thereof

Country Status (1)

Country Link
KR (1) KR102544084B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140025553A (en) * 2011-06-03 2014-03-04 애플 인크. System and method for secure instant messaging
KR20160089616A (en) * 2015-01-20 2016-07-28 (주)텐저블소프트웨어그룹 The method of providing security chatting service
US20180278585A1 (en) * 2017-03-21 2018-09-27 Keeper Security, Inc. System and method for chat messaging in a zero-knowledge vault architecture
KR102293610B1 (en) * 2020-09-15 2021-08-25 주식회사 카카오엔터프라이즈 Secure instant messaging method and attaratus thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140025553A (en) * 2011-06-03 2014-03-04 애플 인크. System and method for secure instant messaging
KR20160089616A (en) * 2015-01-20 2016-07-28 (주)텐저블소프트웨어그룹 The method of providing security chatting service
US20180278585A1 (en) * 2017-03-21 2018-09-27 Keeper Security, Inc. System and method for chat messaging in a zero-knowledge vault architecture
KR102293610B1 (en) * 2020-09-15 2021-08-25 주식회사 카카오엔터프라이즈 Secure instant messaging method and attaratus thereof

Similar Documents

Publication Publication Date Title
CN106104562B (en) System and method for securely storing and recovering confidential data
US9537864B2 (en) Encryption system using web browsers and untrusted web servers
US9619667B2 (en) Methods, systems and computer program product for providing encryption on a plurality of devices
US11387999B2 (en) Access to secured information
CN109543443A (en) User data management, device, equipment and storage medium based on block chain
KR101648364B1 (en) Method for improving encryption/decryption speed by complexly applying for symmetric key encryption and asymmetric key double encryption
US20200358622A1 (en) Anonymous broadcast method, key exchange method, anonymous broadcast system, key exchange system, communication device, and program
US20160359822A1 (en) Sovereign share encryption protocol
Junghanns et al. Engineering of secure multi-cloud storage
US10699021B2 (en) Method and a device for secure storage of at least one element of digital information, and system comprising such device
CN115473655B (en) Terminal authentication method, device and storage medium for access network
US20220060321A1 (en) System and method for secure electronic data transfer
KR102544084B1 (en) Secure instant messaging method and attaratus thereof
KR102293610B1 (en) Secure instant messaging method and attaratus thereof
CN115412236A (en) Method for key management and password calculation, encryption method and device
KR102507864B1 (en) Secure instant messaging method and apparatus thereof
KR102387911B1 (en) Secure instant messaging method and attaratus thereof
Silde Challenges in E2E Encrypted Group Messaging
KR20230072387A (en) End-to-end Encryption Over Relay
KR20220154886A (en) Method and apparatus for digital content protection
JP2024510461A (en) Multi-factor authentication with connection resilience

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant