KR101933444B1 - Message server - Google Patents

Message server Download PDF

Info

Publication number
KR101933444B1
KR101933444B1 KR1020170113117A KR20170113117A KR101933444B1 KR 101933444 B1 KR101933444 B1 KR 101933444B1 KR 1020170113117 A KR1020170113117 A KR 1020170113117A KR 20170113117 A KR20170113117 A KR 20170113117A KR 101933444 B1 KR101933444 B1 KR 101933444B1
Authority
KR
South Korea
Prior art keywords
message
user terminal
key
file
user
Prior art date
Application number
KR1020170113117A
Other languages
Korean (ko)
Other versions
KR20170104426A (en
Inventor
신기빈
원종일
Original Assignee
라인 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 라인 가부시키가이샤 filed Critical 라인 가부시키가이샤
Priority to KR1020170113117A priority Critical patent/KR101933444B1/en
Publication of KR20170104426A publication Critical patent/KR20170104426A/en
Application granted granted Critical
Publication of KR101933444B1 publication Critical patent/KR101933444B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/08Annexed information, e.g. attachments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Abstract

본 실시예는 컴퓨터를 이용하여, 제1 첨부 파일을 포함하는 제1 메시지를 입력 받도록 제어하는 단계; 상기 제1 첨부 파일의 종류를 고려하여, 상기 제1 메시지를 암호화하는 암호화 키를 생성하는 단계; 상기 암호화 키를 이용하여 상기 제1 메시지의 제1 첨부 파일을 암호화하는 단계; 상기 제1 메시지에 상기 제1 메시지의 발신자 정보를 포함 시켜 메시지 서버로 전송하는 단계;를 포함하는 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램을 개시한다. This embodiment uses a computer to control to receive a first message including a first attachment file; Generating an encryption key for encrypting the first message in consideration of the kind of the first attachment file; Encrypting a first attachment of the first message using the encryption key; And transmitting the first message including the sender information of the first message to a message server. The computer program stored in the medium is executed to execute the method.

Description

메시지 서버{MESSAGE SERVER}Message server {MESSAGE SERVER}

본 발명은 메시지 서버에 관한 것으로 보다 구체적으로는 메시지를 암호화하거나 복호화하는데 이용되는 키 정보를 저장 관리하지 않고 암호화된 메시지를 그대로 전달하는 메시지 서버에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a message server, and more particularly, to a message server for delivering an encrypted message without storing and managing key information used for encrypting or decrypting a message.

메신저를 통한 커뮤니케이션은 단말기, 서버, 단말기의 형태로 메시지의 수발신이 진행된다. 제1 사용자가 단말기에 탑재된 메시지 애플리케이션에 글을 입력하면, 해당 메신저 서비스 업체의 서버를 거쳐 제2 사용자의 단말기에 탑재된 메시지 애플리케이션으로 전달된다. 대부분의 메시지 애플리케이션은 스마트폰과 서버 사이에 암호화 장치를 적용해 주는데, 서버에 도착한 메시지는 서버에 의해 복호화 즉 암호가 풀리게 되는 것이 일반적이였다. Communication through messenger is carried out in the form of terminal, server, and terminal. When the first user inputs a message into the message application installed in the terminal, the message is transmitted to the message application installed in the terminal of the second user via the server of the messenger service company. Most messaging applications apply a cryptographic device between the smartphone and the server, and messages arriving at the server are generally decrypted, or decrypted, by the server.

종래의 방식에 따르면, 서버에 의해 복호화가 가능하게 되며, 이는 서버를 해킹하게 되면 사용자들 간의 메시지들이 공개될 수 있는 위험이 있음을 의미한다. According to the conventional method, it is possible to decrypt by the server, which means that there is a risk that the messages between the users can be disclosed when the server is hacked.

이러한 종래 기술의 문제점을 해결하기 위해서, 사용자의 단말기들에서만 복호화되도록 하는 종단간 암호화(End to End Encryption) 기술을 적용하기 시작 했다. In order to solve the problems of the related art, an end-to-end encryption technique for decrypting only user terminals has been applied.

그러나, 종단간 암호화 기술을 적용하게 되는 경우, 수신자 또는 발신자에 따라서 동일한 메시지를 다르게 암호화 해야 하고, 서버는 사용자들 간의 메시지를 모두 개별적으로 관리해야 하는 문제점이 있었다. However, when the end-to-end encryption technique is applied, the same message must be encrypted differently according to the receiver or the sender, and the server has to manage all the messages between the users individually.

본 발명의 실시예들은 종단 간 암호화 기술을 활용하여 메시지를 수발신하거나 대화방의 대화를 처리하는 메시지 서버를 제공할 수 있다. Embodiments of the present invention may provide a message server that utilizes end-to-end encryption techniques to send and receive messages or handle chatting in a chat room.

본 발명의 실시예들에 따른 기록 매체에 저장된 컴퓨터 프로그램은 컴퓨터를 이용하여, 제1 첨부 파일을 포함하는 제1 메시지를 입력 받도록 제어하는 단계; 상기 제1 첨부 파일의 종류를 고려하여, 상기 제1 메시지를 암호화하는 암호화 키를 생성하는 단계; 상기 암호화 키를 이용하여 상기 제1 메시지의 제1 첨부 파일을 암호화하는 단계; 상기 제1 메시지에 상기 제1 메시지의 발신자 정보를 포함 시켜 메시지 서버로 전송하는 단계;를 포함하는 방법을 실행시킬 수 있다. The computer program stored in the recording medium according to the embodiments of the present invention may further include a step of controlling, using a computer, to receive a first message including a first attachment file; Generating an encryption key for encrypting the first message in consideration of the kind of the first attachment file; Encrypting a first attachment of the first message using the encryption key; And transmitting the first message including the sender information of the first message to a message server.

상기 암호화 키를 생성하는 단계는, 상기 제1첨부 파일의 크기가 기 설정된 임계 값 이상인 경우, 상기 제1 첨부 파일의 해쉬값을 상기 제1 첨부 파일의 암호화 키로 생성하는, 방법을 실행시킬 수 있다. The generating of the encryption key may generate a hash value of the first attachment file as an encryption key of the first attachment file when the size of the first attachment file is equal to or greater than a predetermined threshold value .

상기 암호화 키를 생성하는 단계는 상기 제1 첨부 파일의 종류가 동영상인 경우, 상기 제1 첨부 파일의 해쉬값을 상기 제1 첨부 파일의 암호화 키로 생성하는, 방법을 실행시킬 수 있다. The generating of the encryption key may generate a hash value of the first attachment file as an encryption key of the first attachment file when the first attachment file is a moving picture.

상기 암호화 키를 생성하는 단계는 복수의 사용자에게 전송되도록 설정된 메시지의 경우, 상기 메시지의 수신자 정보에 따라 상기 메시지의 암호화 키를 복수 개 생성하는, 방법을 실행시킬 수 있다. The generating of the encryption key may include generating a plurality of encryption keys of the message according to the recipient information of the message in the case of a message set to be transmitted to a plurality of users.

상기 컴퓨터 프로그램은 상기 메시지 서버로부터 제2 사용자 단말기로부터의 제2 첨부 파일을 포함하는 제2 메시지를 수신하는 단계; 상기 제2 첨부 파일에 대한 인덱스를 추출하고, 상기 인덱스와 대응되는 데이터를 호출하는 단계; 상기 제2 사용자 단말기로부터 수신한 복호화 키를 이용하여, 상기 데이터를 복호화하는 단계;를 더 포함하는 방법을 실행 시킬 수 있다.The computer program comprising: receiving a second message from the message server, the second message including a second attachment from a second user terminal; Extracting an index for the second attached file and calling data corresponding to the index; And decrypting the data using the decryption key received from the second user terminal.

상기 컴퓨터 프로그램은 제3 사용자 단말기를 통해 상기 메시지를 확인할 수 있도록 상기 제3 사용자 단말기에 의해 출력된 인증 키를 입력 받도록 제어하는 단계;를 더 포함하는 방법을 실행시킬 수 있다. And controlling the computer program to receive the authentication key output by the third user terminal so that the message can be confirmed through the third user terminal.

상기 인증 키를 입력 받도록 제어하는 단계는 상기 인증 키를 상기 메시지 서버로 전송하고, 상기 인증 키에 대한 응답으로, 상기 인증 키의 유효성을 수신하고, 상기 인증 키의 유효성에 따라 상기 제3 사용자 단말기로 상기 제1 메시지 및 상기 제2 메시지를 전송하도록 제어하는, 방법을 실행시킬 수 있다.The step of controlling to receive the authentication key may include transmitting the authentication key to the message server, receiving the validity of the authentication key in response to the authentication key, And to transmit the first message and the second message to the mobile station.

상기 인증 키를 입력 받도록 제어하는 단계는 상기 인증 키를 이용하여 상기 암호화 키를 암호화하고, 상기 암호화된 암호화 키를 상기 제3 사용자 단말기로 전송하는, 방법을 실행시킬 수 있다. The step of controlling to receive the authentication key may include the step of encrypting the encryption key using the authentication key, and transmitting the encrypted encryption key to the third user terminal.

본 발명의 실시예들에 따른 사용자 단말은 제어부, 통신부 및 메모리를 포함하고, 제1 첨부 파일을 포함하는 제1 메시지를 입력 받도록 제어하는 입력 제어부; 상기 제1 첨부 파일의 종류를 고려하여, 상기 제1 메시지를 암호화하는 암호화 키를 생성하는 키 생성부; 상기 암호화 키를 이용하여 상기 제1 메시지의 제1 첨부 파일을 암호화하는 암호화부; 상기 제1 메시지에 상기 제1 메시지의 발신자 정보를 포함 시켜 메시지 서버로 전송하는 메시지 전송부;를 포함할 수 있다. The user terminal according to embodiments of the present invention includes an input control unit including a control unit, a communication unit, and a memory, and controlling input of a first message including a first attachment file; A key generation unit for generating an encryption key for encrypting the first message in consideration of the type of the first attachment file; An encryption unit encrypting a first attachment file of the first message using the encryption key; And a message transmitter including the sender information of the first message in the first message and transmitting the message to the message server.

상기 키 생성부는 상기 제1첨부 파일의 크기가 기 설정된 임계 값 이상인 경우, 상기 제1 첨부 파일의 해쉬값을 상기 제1 첨부 파일의 암호화 키로 생성할 수 있다. The key generation unit may generate a hash value of the first attachment file as an encryption key of the first attachment file when the size of the first attachment file is greater than or equal to a preset threshold value.

상기 키 생성부는 상기 제1 첨부 파일의 종류가 동영상인 경우, 상기 제1 첨부 파일의 해쉬값을 상기 제1 첨부 파일의 암호화 키로 생성할 수 있다. The key generation unit may generate a hash value of the first attachment file as an encryption key of the first attachment file when the first attachment file is a moving picture.

상기 키 생성부는 복수의 사용자에게 전송되도록 설정된 메시지의 경우, 상기 메시지의 수신자 정보에 따라 상기 메시지의 암호화 키를 복수 개 생성할 수 있다. In the case of a message set to be transmitted to a plurality of users, the key generation unit may generate a plurality of encryption keys of the message according to recipient information of the message.

본 발명의 실시예들에 따른 사용자 단말은 상기 메시지 서버로부터 제2 사용자 단말기로부터의 제2 첨부 파일을 포함하는 제2 메시지를 수신하는 메시지 수신부; 상기 제2 첨부 파일에 대한 인덱스를 추출하고, 상기 인덱스와 대응되는 데이터를 호출하는 데이터 호출부; 상기 제2 사용자 단말기로부터 수신한 상기 복호화 키를 이용하여, 상기 데이터를 복호화하는 복호화부;를 더 포함할 수 있다. A user terminal according to embodiments of the present invention includes: a message receiver for receiving a second message including a second attachment file from a second user terminal from the message server; A data calling unit for extracting an index for the second attached file and calling data corresponding to the index; And a decryption unit for decrypting the data using the decryption key received from the second user terminal.

본 실시예에 따르면, 사용자 단말은 제3 사용자 단말기를 통해 상기 메시지를 확인할 수 있도록 상기 제3 사용자 단말기에 의해 출력된 인증 키를 입력 받도록 제어하는 인증 관리부;를 더 포함할 수 있다. According to an embodiment of the present invention, the user terminal may further include an authentication managing unit for controlling the user terminal to receive the authentication key output by the third user terminal so that the user can confirm the message through the third user terminal.

상기 인증 관리부는 상기 인증 키를 상기 메시지 서버로 전송하고, 상기 인증 키에 대한 응답으로, 상기 인증 키의 유효성을 수신하고, 상기 인증 키의 유효성에 따라 상기 제3 사용자 단말기로 상기 제1 메시지 및 상기 제2 메시지를 전송하도록 제어할 수 있다. Wherein the authentication management unit transmits the authentication key to the message server, receives the validity of the authentication key in response to the authentication key, and transmits the first message and the second message to the third user terminal according to the validity of the authentication key. And to transmit the second message.

상기 인증 관리부는 상기 인증 키를 이용하여 상기 암호화 키를 암호화하고, 상기 암호화된 암호화 키를 상기 제3 사용자 단말기로 전송할 수 있다. The authentication management unit may encrypt the encryption key using the authentication key, and transmit the encrypted encryption key to the third user terminal.

이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 더 제공된다. In addition to this, another method for implementing the present invention, another system, and a computer-readable recording medium for recording a computer program for executing the method are further provided.

전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해 질 것이다.Other aspects, features, and advantages other than those described above will become apparent from the following drawings, claims, and the detailed description of the invention.

본 발명의 메시지 서버는 종단 간 암호화 기술을 활용하여 메시지를 수발신하거나 대화방의 대화를 처리할 수 있다. The message server of the present invention can utilize the end-to-end encryption technique to send and receive messages or to handle conversations in chat rooms.

도 1은 본 발명의 실시예들에 따른 메시지 송수신 시스템을 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 메시지 서버의 구조를 나타내는 블록도이다.
도 3은 메시지 서버의 제어부의 구조를 나타내는 블록도이다.
도 4는 본 발명의 실시예들에 따른 사용자 단말기의 구조를 나타내는 블록도이다.
도 5는 사용자 단말기의 제어부의 구조를 나타내는 블록도이다.
도 6은 사용자 단말기의 인증 관리부의 구조를 나타내는 블록도이다.
도 7 내지 도 8은 본 발명의 실시예들에 따른 메시지 송수신 방법을 나타내는 흐름도이다.
도 9 내지 도 10은 사용자 단말기들 및 메시지 서버 사이의 데이터 송수신을 나타내는 흐름도이다.
도 11 내지 도 14는 본 발명의 실시예들에 따라 제공되는 사용자 인터페이스의 일 예를 나타내는 도면이다.
1 is a block diagram illustrating a message transmission / reception system according to embodiments of the present invention.
2 is a block diagram illustrating a structure of a message server according to embodiments of the present invention.
3 is a block diagram showing a structure of a control unit of a message server;
4 is a block diagram illustrating a structure of a user terminal according to embodiments of the present invention.
5 is a block diagram showing a structure of a control unit of a user terminal.
6 is a block diagram showing the structure of an authentication management unit of a user terminal.
7 to 8 are flowcharts illustrating a message transmission / reception method according to embodiments of the present invention.
9 to 10 are flowcharts showing data transmission / reception between user terminals and a message server.
11 to 14 are views showing an example of a user interface provided according to the embodiments of the present invention.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. BRIEF DESCRIPTION OF THE DRAWINGS The present invention is capable of various modifications and various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. The effects and features of the present invention and methods of achieving them will be apparent with reference to the embodiments described in detail below with reference to the drawings. However, the present invention is not limited to the embodiments described below, but may be implemented in various forms.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, wherein like reference numerals refer to like or corresponding components throughout the drawings, and a duplicate description thereof will be omitted .

이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. In the following embodiments, the terms first, second, and the like are used for the purpose of distinguishing one element from another element, not the limitative meaning.

이하의 실시예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는한, 복수의 표현을 포함한다. In the following examples, the singular forms "a", "an" and "the" include plural referents unless the context clearly dictates otherwise.

이하의 실시예에서, 포함하다 또는 가지다 등의 용어는 명세서 상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징을 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. In the following embodiments, terms such as inclusive or possessed mean that a feature or element described in the specification is present, and does not exclude the possibility that one or more other features or components are added in advance.

어떤 실시예가 달리 구현 가능한 경우에 특정한 공정 순서는 설명되는 순서와 다르게 수행될 수도 있다. 예를 들어, 연속하여 설명되는 두 공정이 실질적으로 동시에 수행될 수도 있고, 설명되는 순서와 반대의 순서로 진행될 수 있다. If certain embodiments are otherwise feasible, the particular process sequence may be performed differently from the sequence described. For example, two processes that are described in succession may be performed substantially concurrently, and may be performed in the reverse order of the order described.

이하의 실시예에서, "회로"는, 예를 들어, 프로그램가능한 회로에 의해 실행되는 인스트럭션을 저장하는 하드와이어드 회로, 프로그램가능한 회로, 상태 머신 회로, 및/또는 펌웨어를 단독으로 또는 임의의 조합으로 포함할 수 있다. 애플리케이션은 호스트 프로세서 또는 다른 프로그램가능한 회로와 같은 프로그램가능한 회로 상에서 실행될 수 있는 코드 또는 인스트럭션으로서 구현될 수 있다. 본원의 임의의 실시예에서 사용되는 바와 같은, 모듈은,회로로서 구현될 수 있다. 회로는 집적 회로 칩과 같은 집적 회로로서 구현될 수 있다.In the following embodiments, the term "circuit" refers to any circuitry, circuitry, and / or circuitry, including, for example, hardwired circuitry, programmable circuitry, state machine circuitry, and / or firmware that stores instructions executed by a programmable circuit, either alone or in any combination . The application may be implemented as code or instructions that may be executed on a programmable circuit, such as a host processor or other programmable circuit. A module, as used in any of the embodiments herein, may be implemented as a circuit. The circuitry may be implemented as an integrated circuit, such as an integrated circuit chip.

이하의 실시예에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In the following embodiments, when a component is referred to as "comprising ", it means that it can include other components as well, without excluding other components unless specifically stated otherwise. Also, the terms " part, "" module," and " module ", etc. in the specification mean a unit for processing at least one function or operation and may be implemented by hardware or software or a combination of hardware and software have.

도 1은 본 발명의 실시예에 따른 메시지 송수신 시스템(10)을 나타내는 도면이다. 1 is a block diagram of a message transmission / reception system 10 according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 실시예에 따른 메시지 송수신 시스템(10)은 메시지 서버(100), 사용자 단말기(200, 300), 통신망(400)을 포함할 수 있다. Referring to FIG. 1, a message transmission / reception system 10 according to an embodiment of the present invention may include a message server 100, user terminals 200 and 300, and a communication network 400.

메시지 서버(100)는 사용자 단말기(200, 300)로부터 수신된 메시지를 다른 사용자 단말기(200, 300)로 전송함으로써, 복수의 사용자 단말기 사이의 메시지를 송수신하는 기능을 수행한다. 메시지 서버(100)는 회원 가입, 로그인 등의 절차를 거친 복수의 사용자 단말기(200, 300)들 사이의 메시지를 수발신하는 기능을 제공할 수 있다. 메시지 서버(100)는 복수의 사용자 단말기(200, 300)들 사이의 대화를 가능하게 하는 대화방을 제공하는 기능을 제공할 수 있다. 메시지 서버(100)는 대화방에 입장한 각 사용자에 의해 입력된 또는 수신된 대화가 대화방을 통해, 대화방에 있는 복수의 사용자들과 공유될 수 있도록 제어할 수 있다. The message server 100 transmits a message received from the user terminals 200 and 300 to the other user terminals 200 and 300 to transmit and receive messages between the plurality of user terminals. The message server 100 may provide a function of sending and receiving messages between a plurality of user terminals 200 and 300 through procedures such as membership registration and login. The message server 100 may provide a function of providing a chat room that enables conversation between a plurality of user terminals 200 and 300. [ The message server 100 can control so that a dialog entered or received by each user who enters the chat room can be shared with a plurality of users in the chat room through the chat room.

메시지 서버(100)는 회원 가입, 로그인 등의 절차를 거치지 않은 사용자 단말기(200, 300)에게 대화방 초대 메시지를 전송할 수도 있다. The message server 100 may transmit a chat room invitation message to the user terminals 200 and 300 that have not undergone membership registration and login procedures.

메시지 서버(100)는 사용자 단말기(200, 300)들 사이의 메시지 또는 대화(chatting, talk)를 암호 또는 복호할 수 있도록 제어할 수 있다. 특히, 메시지 서버(100)는 종단 간 암호화 기술을 활용하여 메시지를 수발신하거나 대화방의 대화를 처리하는 기능을 제공할 수 있다. 좀더 구체적으로, 메시지 서버(100)는 암호화된 메시지를 각 사용자 단말기로 그대로 전달할 뿐이고, 각 암호화된 메시지를 해독 또는 복호화와 관련된 정보를 저장 관리하지 않는다. The message server 100 can control the encryption or decryption of messages or chatting between the user terminals 200 and 300. [ In particular, the message server 100 may utilize end-to-end encryption techniques to provide the ability to send and receive messages or to handle chat room conversations. More specifically, the message server 100 only delivers the encrypted message to each user terminal, and does not store and manage information related to decryption or decryption of each encrypted message.

또한, 메시지 서버(100)는 제1 사용자 단말기(201)로 전송되도록 설정된 메시지를 제1 사용자 단말기와 연계된 제2 사용자 단말기(202)로 전송하도록 제어할 수 있다. 메시지 서버(100)는 제1 사용자 단말기(201) 및 제2 사용자 단말기(202) 사이의 동일성을 확인하기 위해서 인증 과정을 수행하도록 제어할 수 있다. 인증 과정을 수행하기 전에는 제2 사용자 단말기(202)는 암호화된 메시지를 복호화하지 않고 제공할 수 있다. 또한, 메시지 서버(100)는 제1 사용자 단말기(201)가 메시지를 송수신하는데 이용하는 암호 키를 제1 사용자 단말기(201)와 연결된 제2 사용자 단말기(202)로 전송하도록 제어할 수 있다. 이때, 암호 키는 제1 사용자 단말기(201) 및 제2 사용자 단말기(202) 사이를 인증하는데 이용된 인증 키를 이용하여 암호화된 상태로 송수신될 수 있다. Also, the message server 100 may control to transmit a message set to be transmitted to the first user terminal 201 to the second user terminal 202 associated with the first user terminal. The message server 100 may control the authentication process to check the identity between the first user terminal 201 and the second user terminal 202. [ Before performing the authentication process, the second user terminal 202 may provide the encrypted message without decrypting it. In addition, the message server 100 may control the cryptographic key used by the first user terminal 201 to transmit and receive a message to be transmitted to the second user terminal 202 connected to the first user terminal 201. At this time, the encryption key can be transmitted and received in an encrypted state using the authentication key used for authentication between the first user terminal 201 and the second user terminal 202.

또한, 메시지 서버(100)는 메시지 송수신을 할 수 있도록 구현된 애플리케이션을 사용자 단말기(200, 300)로 배포하는 기능을 수행할 수 있다. In addition, the message server 100 may perform a function of distributing an application implemented to send and receive messages to the user terminals 200 and 300.

사용자는 사용자 단말기(200, 300)를 통해, 메시지 서버(100)에 접속할 수 있다. 사용자 단말기(200, 300)는 메시지 송수신에 대한 애플리케이션(또는 컴퓨터 프로그램)을 탑재하고, 상기 애플리케이션을 이용하여, 다른 사용자 단말기(200, 300)로 메시지를 전송하게 되고, 다른 사용자 단말기(200, 300)로부터 메시지를 수신하게 된다. The user can access the message server 100 through the user terminals 200 and 300. [ The user terminals 200 and 300 are installed with an application (or a computer program) for message transmission and reception and transmit messages to the other user terminals 200 and 300 using the application. ≪ / RTI >

또한, 사용자 단말기(200, 300)는 공개하고 싶지 않은 메시지를 암호화하여 전송할 수 있으며, 암호화 관련 정보를 메시지 서버(100)와 공유하지 않게 된다. 암호화된 메시지는 수신자 및 발신자의 단말기 내에서만 복호화되도록 설정될 수 있다. Also, the user terminals 200 and 300 can encrypt and transmit messages that they do not want to disclose, and do not share encryption-related information with the message server 100. The encrypted message may be set to be decrypted only within the recipient and originator's terminals.

복수 개의 사용자 단말기(200, 300)들은 유무선 통신 환경에서 웹 서비스를 이용할 수 있는 통신 단말기를 의미한다. 여기서, 사용자 단말기(200, 300)는 사용자의 퍼스널 컴퓨터(201, 301)일 수도 있고, 또는 사용자의 휴대용 단말(202)일 수도 있다. 도 1에서는 휴대용 단말기(202, 302)가 스마트폰으로 도시되었지만, 본 발명의 사상은 이에 제한되지 아니하며, 상술한 바와 같이 웹 브라우징이 가능한 애플리케이션을 탑재한 단말은 제한 없이 차용될 수 있다. The plurality of user terminals 200 and 300 refer to a communication terminal that can use a web service in a wired / wireless communication environment. Here, the user terminals 200 and 300 may be the personal computers 201 and 301 of the user, or may be the portable terminal 202 of the user. Although the portable terminals 202 and 302 are illustrated as smartphones in FIG. 1, the concept of the present invention is not limited thereto, and a terminal equipped with an application capable of web browsing as described above can be borrowed without limitation.

이를 더욱 상세히 설명하면, 사용자 단말기(200)는 컴퓨터(예를 들면, 데스크톱, 랩톱, 태블릿 등), 미디어 컴퓨팅 플랫폼(예를 들면, 케이블, 위성 셋톱박스, 디지털 비디오 레코더), 핸드헬드 컴퓨팅 디바이스(예를 들면, PDA, 이메일 클라이언트 등), 핸드폰의 임의의 형태, 또는 다른 종류의 컴퓨팅 또는 커뮤니케이션 플랫폼의 임의의 형태를 포함할 수 있으나, 본 발명이 이에 한정되는 것은 아니다. In more detail, the user terminal 200 may be a computer (e.g., a desktop, a laptop, a tablet, etc.), a media computing platform (e.g., a cable, a satellite set top box, a digital video recorder), a handheld computing device E. G., A PDA, an email client, etc.), any form of cellular telephone, or any other type of computing or communication platform, but the invention is not so limited.

한편, 통신망(400)은 복수 개의 사용자 단말기(200, 300)들과 메시지 서버(100)를 연결하는 역할을 수행한다. 즉, 통신망(400)은 사용자 단말기(200, 300)들이 메시지 서버(100)에 접속한 후 데이터를 송수신할 수 있도록 접속 경로를 제공하는 통신망을 의미한다. 통신망(400)은 예컨대 LANs(Local Area Networks), WANs(Wide Area Networks), MANs(Metropolitan Area Networks), ISDNs(Integrated Service Digital Networks) 등의 유선 네트워크나, 무선 LANs, CDMA, 블루투스, 위성 통신 등의 무선 네트워크를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. The communication network 400 connects the plurality of user terminals 200 and 300 to the message server 100. That is, the communication network 400 refers to a communication network that provides connection paths so that the user terminals 200 and 300 can access the message server 100 and then transmit and receive data. The communication network 400 may be a wired network such as LANs (Local Area Networks), WANs (Wide Area Networks), MANs (Metropolitan Area Networks), ISDNs (Integrated Service Digital Networks), wireless LANs, CDMA, Bluetooth, But the scope of the present invention is not limited thereto.

도 2는 본 발명의 실시예들에 따른 메시지 서버의 구조를 나타내는 블록도이다. 2 is a block diagram illustrating a structure of a message server according to embodiments of the present invention.

도 2를 참조하면, 본 발명의 실시예들에 따른 메시지 서버(100)는 통신부(110), 제어부(120), 데이터베이스(130)를 포함할 수 있다. 2, the message server 100 according to embodiments of the present invention may include a communication unit 110, a controller 120, and a database 130.

통신부(110)는 메시지 서버(100)와 적어도 하나의 사용자 단말기(200, 300) 간의 통신을 가능하게 하는 하나 이상의 구성요소를 포함할 수 있다. The communication unit 110 may include one or more components that enable communication between the message server 100 and the at least one user terminal 200,

여기서, 통신부(110)는 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다. Here, the communication unit 110 may be a device including hardware and software necessary for transmitting / receiving a signal such as a control signal or a data signal through a wired / wireless connection with another network device.

제어부(120)는, 통상적으로 메시지 서버(100)의 전반적인 동작을 제어한다. 예를 들어, 제어부(120)는, 데이터베이스(130)에 저장된 프로그램들을 실행함으로써, 통신부(110), 데이터베이스(130) 등을 전반적으로 제어할 수 있다. The control unit 120 typically controls the overall operation of the message server 100. For example, the control unit 120 can control the communication unit 110, the database 130, and the like in general by executing programs stored in the database 130. [

여기서, 제어부(120)는 프로세서(processor)와 같이 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 여기서, '프로세서(processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.Here, the control unit 120 may include all kinds of devices capable of processing data, such as a processor. Herein, the term " processor " may refer to a data processing apparatus embedded in hardware, for example, having a circuit physically structured to perform a function represented by a code or an instruction contained in the program. As an example of the data processing apparatus built in hardware, a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, an application-specific integrated circuit (ASIC) circuit, and a field programmable gate array (FPGA), but the scope of the present invention is not limited thereto.

데이터베이스(130)는, 제어부(120)의 처리 및 제어를 위한 프로그램을 저장할 수도 있고, 입/출력되는 데이터들(예컨대, 복수의 메뉴, 복수의 메뉴 각각에 대응하는 복수의 제 1 계층 서브 메뉴, 복수의 제 1 계층 서브 메뉴 각각에 대응하는 복수의 제 2 계층 서브 메뉴 등)을 저장할 수도 있다. The database 130 may store a program for processing and control of the control unit 120 and may store data to be input / output (e.g., a plurality of menus, a plurality of first hierarchical submenus corresponding to the plurality of menus, A plurality of second layer submenus corresponding to each of the plurality of first layer submenus, and the like).

데이터베이스(130)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 또한, 지식 공유 서비스 제공 장치(100)는 인터넷(internet)상에서 데이터베이스(130)의 저장 기능을 수행하는 웹 스토리지(web storage) 또는 클라우드 서버를 운영할 수도 있다.The database 130 may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (e.g., SD or XD memory), a RAM (Random Access Memory) SRAM (Static Random Access Memory), ROM (Read Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory) , An optical disc, and the like. Also, the knowledge sharing service providing apparatus 100 may operate a web storage or a cloud server that performs a storage function of the database 130 on the Internet.

데이터베이스(130)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류할 수 있는데, 예를 들어, UI 모듈, 터치 스크린 모듈, 알림 모듈 등으로 분류될 수 있다. Programs stored in the database 130 can be classified into a plurality of modules according to their functions, for example, a UI module, a touch screen module, a notification module, and the like.

메시지 서버(100)는 단문 메시지, 인스턴트 메시지, 이메일 등의 메시지를 사용자 단말기(200, 300)로 전송하는 기능을 수행할 수 있다. 메시지 서버(100)가 송수신하는 메시지의 종류는 다양하며, 하나의 종류에 한정되지 않는다. The message server 100 may transmit a message such as a short message, an instant message, or an e-mail to the user terminals 200 and 300. The types of messages sent and received by the message server 100 vary, and are not limited to one type.

도 3은 메시지 서버(100)의 제어부(120)의 구조를 나타내는 블록도이다. 3 is a block diagram showing the structure of the control unit 120 of the message server 100. As shown in FIG.

도 3을 참조하면, 메시지 서버(100)의 제어부(120)는 메시지 수신부(121), 메시지 처리부(122), 인덱스 생성부(123)를 포함할 수 있다. 3, the control unit 120 of the message server 100 may include a message receiving unit 121, a message processing unit 122, and an index generating unit 123.

메시지 수신부(121)는 사용자 단말기(200, 300)로부터 메시지를 수신하도록 제어한다. 여기서, 메시지는 메시지의 제목, 내용, 발신자 정보, 수신자 정보, 첨부 파일을 포함할 수 있다. 상기 메시지의 발신자 및 수신자 관련 정보는 사용자의 아이디 정보, 이메일 주소, 전화 번호 등을 포함할 수 있다. 첨부 파일은 이미지, 동영상, 음성 파일, 링크 정보 등을 포함할 수 있다. 메시지 서버(100)는 소정의 회원가입 과정을 거쳐 회원으로 등록된 사용자의 사용자 단말기(200, 300) 사이의 메시지를 송수신하도록 제어할 수 있다. The message receiving unit 121 controls to receive messages from the user terminals 200 and 300. Here, the message may include the title, contents, sender information, recipient information, and attachment of the message. The sender and recipient related information of the message may include a user's ID information, an e-mail address, a telephone number, and the like. The attachment file may include an image, a moving image, an audio file, link information, and the like. The message server 100 may control to transmit and receive messages between the user terminals 200 and 300 of the user registered as a member through a predetermined member registration process.

메시지 처리부(122)는 사용자 단말기(200, 300)로부터 수신한 하나 이상의 메시지를 각 메시지의 사용자 단말기(200, 300)로 전송하도록 제어할 수 있다. 이때, 첨부 파일을 포함하고 있는 메시지의 경우, 메시지 처리부(122)는 첨부 파일을 전송하지 않고, 첨부 파일의 인덱스 만을 사용자 단말기(200, 300)로 전송할 수 있다. 특히, 하나의 첨부 파일이 많은 사용자에 의해 전송 또는 공유되는 경우, 메시지 처리부(122)는 전송되거나 공유되는 수만큼 첨부 파일 또는 첨부 파일의 인덱스를 저장 관리 하지 않고, 하나의 인덱스로 첨부 파일이 전송 또는 공유되도록 처리할 수 있다. 예를 들어, 사람들에게 인기가 있는 동영상의 경우, 동일한 동영상을 매우 많은 사용자 사이에 주고 받는 이벤트가 발생하게 되는데 이런 경우, 메시지 서버(100)가 사용자에 의해 생성된 이벤트(메시지 송수신 등)마다 동영상 또는 동영상과 대응되는 인덱스를 생성하는 것은 리소스를 매우 낭비할 수 있다. 이런 경우, 메시지 처리부(122)는 수신된 메시지의 첨부 파일이 기존에 전송된 이력(history)이 있는지를 판단하여 첨부 파일에 대한 메타 데이터를 새롭게 생성할지 여부를 판단할 수 있다. The message processing unit 122 may control the one or more messages received from the user terminals 200 and 300 to be transmitted to the user terminals 200 and 300 of the respective messages. At this time, in the case of a message including the attached file, the message processing unit 122 can transmit only the index of the attached file to the user terminals 200 and 300 without transmitting the attached file. In particular, when one attached file is transmitted or shared by a large number of users, the message processing unit 122 does not store and manage the number of attached or attached file indexes transmitted or shared, Or shared. For example, in the case of a movie that is popular among people, an event occurs in which the same moving picture is exchanged among a very large number of users. In this case, the message server 100 displays, for each event (such as sending / Or generating an index corresponding to a moving picture can waste a lot of resources. In this case, the message processing unit 122 may determine whether an attached file of the received message has a previously transmitted history and determine whether to newly generate metadata for the attached file.

또한, 메시지 처리부(122)는 메시지의 수신자 정보에 따라 메시지를 수신하는 다른 서버로 전송하거나, 직접 사용자 단말기(200, 300)로 메시지를 전송할 수 있다. 메시지 처리부(122)는 메시지의 수신자 정보에 따라 사용자 단말기(200, 300)로 암호화된 메시지를 그대로 전달할 수 있다. In addition, the message processor 122 may transmit the message to another server receiving the message according to the recipient information of the message, or may transmit the message directly to the user terminal 200, 300. The message processing unit 122 may transmit the encrypted message to the user terminal 200 or 300 according to the recipient information of the message.

인덱스 생성부(123)는 메시지가 첨부 파일을 포함하고 있는 경우, 첨부 파일을 식별할 수 있는 인덱스를 생성하고, 상기 인덱스와 상기 첨부 파일이 서로 대응될 수 있도록 테이블을 생성할 수 있다. 인덱스 생성부(123)는 첨부 파일 또는 메시지와 대응되는 인덱스를 각각 생성할 수도 있다. If the message includes an attached file, the index generating unit 123 may generate an index for identifying the attached file, and may generate a table such that the index and the attached file correspond to each other. The index generating unit 123 may generate an index corresponding to an attached file or a message, respectively.

도 4는 본 발명의 실시예들에 따른 사용자 단말기(200, 300)의 구조를 나타내는 블록도이다. 4 is a block diagram illustrating a structure of a user terminal 200 or 300 according to embodiments of the present invention.

도 4를 참조하면, 본 발명의 일 실시예에 따른 사용자 단말기(200, 300)는, 크게 통신부(210), 제어부(250) 및 메모리(260)를 포함하며, 선택적으로 출력부(230), 사용자 입력부(240)를 더 포함할 수 있다. 4, the user terminals 200 and 300 according to an exemplary embodiment of the present invention include a communication unit 210, a controller 250, and a memory 260. The user terminals 200 and 300 may selectively include an output unit 230, And may further include a user input unit 240.

통신부(210)는 사용자 단말기(200, 300) 간의 통신 또는 사용자 단말기(200, 300)와 메시지 서버(100) 간의 통신을 가능하게 하는 하나 이상의 구성요소를 포함할 수 있다. 예를 들어, 통신부(210)는, 근거리 통신부(211), 이동 통신부(212)를 포함할 수 있다. The communication unit 210 may include at least one component that enables communication between the user terminals 200 and 300 or communication between the user terminals 200 and 300 and the message server 100. For example, the communication unit 210 may include a short-range communication unit 211 and a mobile communication unit 212.

근거리 통신부(short-range wireless communication unit)(211)는, 블루투스 통신부, BLE(Bluetooth Low Energy) 통신부, 근거리 무선 통신부(Near Field Communication unit), WLAN(와이파이) 통신부, 지그비(Zigbee) 통신부, 적외선(IrDA, infrared Data Association) 통신부, WFD(Wi-Fi Direct) 통신부, UWB(ultra wideband) 통신부, Ant+ 통신부 등을 포함할 수 있으나, 이에 한정되는 것은 아니다. The short-range wireless communication unit 211 includes a Bluetooth communication unit, a Bluetooth low energy (BLE) communication unit, a near field communication unit, a WLAN communication unit, a Zigbee communication unit, IrDA, an infrared data association) communication unit, a WFD (Wi-Fi Direct) communication unit, an UWB (ultra wideband) communication unit, an Ant + communication unit, and the like.

이동 통신부(212)는, 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다. 여기에서, 무선 신호는, 음성 호 신호, 화상 통화 호 신호 또는 문자/멀티미디어 메시지 송수신에 따른 다양한 형태의 데이터를 포함할 수 있다.The mobile communication unit 212 transmits and receives a radio signal to at least one of a base station, an external terminal, and a server on a mobile communication network. Here, the wireless signal may include various types of data depending on a voice call signal, a video call signal, or a text / multimedia message transmission / reception.

통신부(210)는, 메시지 서버(100) 또는 다른 사용자 단말기(200, 300)로부터의 메시지를 획득한다. The communication unit 210 acquires a message from the message server 100 or other user terminals 200 and 300. [

출력부(230)에는, 디스플레이부(231)와 음향 출력부(232), 진동 모터(233) 등이 포함될 수 있다. The output unit 230 may include a display unit 231, an acoustic output unit 232, a vibration motor 233, and the like.

디스플레이부(231)는 사용자 단말기(200, 300)에서 처리되는 정보를 출력한다. 예를 들어, 디스플레이부(231)는, 메시지 송수신 애플리케이션 실행 시 제공되는 사용자 인터페이스를 출력할 수 있다. 디스플레이부(231)는 탑재된 메시지 송수신 애플리케이션에 따라 메시지 생성 또는 메시지 수신과 관련된 사용자 인터페이스를 표시할 수 있다. 디스플레이부(231)는 탑재된 메시지 송수신 애플리케이션의 버전에 따라 변경된 사용자 인터페이스를 표시할 수 있다. 디스플레이부(231)는 수신된 메시지가 암호화된 메시지인 경우, 사용자 인증 등의 과정이 필요하다는 화면을 표시할 수 있다. 디스플레이부(231)는 사용자로부터 입력된 사용자 입력에 따라 사용자 인터페이스를 변경하여 제공할 수 있다. The display unit 231 outputs information processed by the user terminals 200 and 300. For example, the display unit 231 may output a user interface provided when executing a message transmission / reception application. The display unit 231 may display a user interface related to message generation or message reception according to the installed message transmission / reception application. The display unit 231 may display the changed user interface according to the version of the installed message transmission / reception application. If the received message is an encrypted message, the display unit 231 may display a screen indicating that a process such as user authentication is required. The display unit 231 may change and provide a user interface according to a user input inputted from a user.

한편, 디스플레이부(231)와 터치패드가 레이어 구조를 이루어 터치 스크린으로 구성되는 경우, 디스플레이부(231)는 출력 장치 이외에 입력 장치로도 사용될 수 있다. 디스플레이부(231)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나를 포함할 수 있다. 그리고 디바이스(100)의 구현 형태에 따라 디바이스(100)는 디스플레이부(231)를 2개 이상 포함할 수도 있다. 이때, 2개 이상의 디스플레이부(231)는 힌지(hinge)를 이용하여 마주보게 배치될 수 있다. Meanwhile, when the display unit 231 and the touch pad have a layer structure and are configured as a touch screen, the display unit 231 can be used as an input device in addition to the output device. The display unit 231 may be a liquid crystal display, a thin film transistor-liquid crystal display, an organic light-emitting diode, a flexible display, a three-dimensional display A 3D display, and an electrophoretic display. The device 100 may include two or more display units 231 according to the implementation of the device 100. [ At this time, the two or more display units 231 may be arranged to face each other using a hinge.

음향 출력부(232)는 통신부(220)로부터 수신되거나 메모리(270)에 저장된 오디오 데이터를 출력한다. 또한, 음향 출력부(232)는 사용자 단말기(200, 300)에서 수행되는 기능(예를 들어, 메시지 애플리케이션 실행시 출력되는 배경음, 메시지 애플리케이션에서 동작을 수행할 때마다 발생되는 효과음)과 관련된 음향 신호를 출력한다. 이러한 음향 출력부(232)에는 스피커(speaker), 버저(Buzzer) 등이 포함될 수 있다.The audio output unit 232 outputs audio data received from the communication unit 220 or stored in the memory 270. [ The sound output unit 232 may output sound signals related to the functions performed by the user terminals 200 and 300 (for example, a background sound outputted when a message application is executed, . The sound output unit 232 may include a speaker, a buzzer, and the like.

진동 모터(233)는 진동 신호를 출력할 수 있다. 예를 들어, 진동 모터(233)는 오디오 데이터 또는 이미지 데이터(예컨대, 게임 애플리케이션에서 동작을 수행할 때마다 발생되는 효과음, 게임 애플리케이션에서 동작을 수행한 결과 변경되는 이미지)의 출력에 대응하는 진동 신호를 출력할 수 있다. 또한, 진동 모터(233)는 터치스크린에 터치가 입력되는 경우 진동 신호를 출력할 수도 있다.The vibration motor 233 can output a vibration signal. For example, the vibration motor 233 generates vibration signals corresponding to outputs of audio data or image data (for example, an effect sound generated each time an action is performed in a game application, an image changed as a result of performing an action in a game application) Can be output. In addition, the vibration motor 233 may output a vibration signal when a touch is input to the touch screen.

제어부(250)는, 통상적으로 사용자 단말기(200, 300)의 전반적인 동작을 제어한다. 예를 들어, 제어부(250)는, 메모리(270)에 저장된 프로그램들을 실행함으로써, 센싱부(210), 통신부(220), 출력부(230), 사용자 입력부(240), A/V 입력부(260), 메모리(270) 등을 전반적으로 제어할 수 있다. The control unit 250 typically controls the overall operation of the user terminals 200 and 300. For example, the control unit 250 may include a sensing unit 210, a communication unit 220, an output unit 230, a user input unit 240, an A / V input unit 260 ), The memory 270, and the like.

제어부(250)는 메모리(270)에 미리 저장된 메시지 송수신 애플리케이션에 관한 메타데이터를 이용하여, 사용자 입력 및 사용자 단말기(200, 300)의 상태 정보에 대응되는 동작을 결정할 수 있다. The control unit 250 can determine the operation corresponding to the user input and the state information of the user terminals 200 and 300 using the metadata related to the message sending / receiving application stored in the memory 270 in advance.

사용자 입력부(240)는, 사용자가 사용자 단말기(200, 300)를 제어하기 위한 데이터를 입력하는 수단을 의미한다. 예를 들어, 사용자 입력부(240)에는 키 패드(key pad), 돔 스위치 (dome switch), 터치 패드(접촉식 정전 용량 방식, 압력식 저항막 방식, 적외선 감지 방식, 표면 초음파 전도 방식, 적분식 장력 측정 방식, 피에조 효과 방식 등), 조그 휠, 조그 스위치 등이 있을 수 있으나 이에 한정되는 것은 아니다.The user input unit 240 means a means for the user to input data for controlling the user terminals 200 and 300. For example, the user input unit 240 may include a key pad, a dome switch, a touch pad (a contact type capacitance type, a pressure type resistive type, an infrared ray detection type, a surface ultrasonic wave conduction type, A tension measuring method, a piezo effect method, etc.), a jog wheel, a jog switch, and the like, but is not limited thereto.

메모리(260)는, 제어부(250)의 처리 및 제어를 위한 프로그램을 저장할 수도 있고, 입/출력되는 데이터들(예컨대, 복수의 메뉴, 복수의 메뉴 각각에 대응하는 복수의 제 1 계층 서브 메뉴, 복수의 제 1 계층 서브 메뉴 각각에 대응하는 복수의 제 2 계층 서브 메뉴 등)을 저장할 수도 있다. The memory 260 may store a program for processing and control of the controller 250 and may store data to be input / output (e.g., a plurality of menus, a plurality of first hierarchical submenus corresponding to each of the plurality of menus, A plurality of second layer submenus corresponding to each of the plurality of first layer submenus, and the like).

메모리(260)는 메시지 송수신 애플리케이션에 관한 메타데이터를 미리 저장할 수 있다. The memory 260 may store the metadata relating to the message transmission / reception application in advance.

메모리(260)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다. 또한, 사용자 단말기(200, 300)는 인터넷(internet)상에서 메모리(260)의 저장 기능을 수행하는 웹 스토리지(web storage) 또는 클라우드 서버를 운영할 수도 있다.The memory 260 may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (e.g., SD or XD memory), a RAM (Random Access Memory) SRAM (Static Random Access Memory), ROM (Read Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory) , An optical disc, and the like. Also, the user terminals 200 and 300 may operate a web storage or a cloud server that performs a function of storing the memory 260 on the Internet.

도 5는 사용자 단말기(200, 300)의 제어부(250)의 구조를 나타내는 블록도이다. 5 is a block diagram showing the structure of the control unit 250 of the user terminals 200 and 300. Referring to FIG.

도 5를 참조하면, 사용자 단말기(200, 300)의 제어부(250)는 입력 제어부(251), 메시지 수신부(252), 메시지 전송부(253), 데이터 호출부(254), 암호화부(255), 복호화부(256), 키 생성부(257), 인증 관리부(258)를 포함할 수 있다. 먼저, 메시지 전송과 관련된 실시예들을 중심으로 사용자 단말기(200, 300)의 구조를 설명하겠다. 5, the control unit 250 of the user terminals 200 and 300 includes an input control unit 251, a message receiving unit 252, a message transmitting unit 253, a data calling unit 254, an encryption unit 255, A decryption unit 256, a key generation unit 257, and an authentication management unit 258. First, the structure of the user terminals 200 and 300 will be described with reference to embodiments related to message transmission.

입력 제어부(251)는 제1 메시지를 입력하도록 제어한다. 입력 제어부(251)는 사용자 입력부(240)에 의해 입력된 입력 신호에 따라 제1 메시지가 생성될 수 있도록 제어한다. 입력 제어부(251)는 사용자에 의해 입력된 입력 신호와 대응하여, 제1 메시지의 제목, 내용, 발신자 정보, 수신자 정보, 첨부 파일 등을 포함하는 제1 메시지를 생성할 수 있다. The input control unit 251 controls to input the first message. The input control unit 251 controls the first message to be generated according to the input signal input by the user input unit 240. The input control unit 251 may generate a first message including a title, content, sender information, recipient information, attachment file, and the like of the first message in correspondence with the input signal input by the user.

메시지 전송부(253)는 제1 메시지를 제1 메시지의 수신자인 제2 사용자 단말기(200, 300)로 전송하도록 제어한다. 메시지 전송부(253)는 제1 메시지와 관련된 프로토콜에 따라 제1 메시지의 포맷을 변경하는 기능을 수행할 수 있다. 예를 들어, 제1 메시지가 TCP/IP, 또는 NFC 등의 통신망을 통해 송수신 되는 경우, 메시지 전송부(253)는 각 통신 규약에 맞게 제1 메시지의 구조를 변경할 수 있다. 또한, 사용자의 설정에 따라, 메시지 전송부(253)는 제1 메시지의 각 파라미터를 암호화하는 과정을 더 수행하도록 제어할 수 있다. 즉, 사용자의 보안 관련 설정에 따라, 메시지 전송부(253)는 메시지를 암호화하거나 메시지를 그대로 전송할 수 있다. The message transmission unit 253 controls the first message to be transmitted to the second user terminal 200 or 300, which is a receiver of the first message. The message transmission unit 253 may change the format of the first message according to the protocol associated with the first message. For example, when the first message is transmitted / received through a communication network such as TCP / IP or NFC, the message transmission unit 253 can change the structure of the first message according to each communication protocol. Also, according to the setting of the user, the message transmission unit 253 may control to further encrypt each parameter of the first message. That is, the message transmission unit 253 can encrypt the message or transmit the message as it is according to the security-related setting of the user.

키 생성부(257)는 제1 메시지를 암호화하는 암호화 키를 생성할 수 있다. 키 생성부(257)는 제1 메시지를 암호화하는 암호화 키(private key) 및 상기 암호화 키와 대응되는 복호화 키(public key)를 생성할 수 있다. 여기서, 암호화 키 및 복호화 키의 관계는 대칭키 또는 비대칭키 중 하나 일 수 있다. The key generation unit 257 may generate an encryption key for encrypting the first message. The key generation unit 257 may generate an encryption key for encrypting the first message and a decryption key corresponding to the encryption key. Here, the relationship between the encryption key and the decryption key may be either a symmetric key or an asymmetric key.

키 생성부(257)는 메시지의 내용 및 첨부 파일을 암호화하는 키를 각각 생성할 수 있다. 먼저 첨부 파일의 암호화 키를 생성하는 과정을 설명하면, 키 생성부(257)는 메시지의 첨부 파일의 크기를 고려하여, 메시지의 첨부 파일의 암호화 키를 생성할 수 있다. 예를 들어, 메시지의 첨부 파일의 용량이 미리 설정된 임계 크기 보다 작은 경우, 키 생성부(257)는 첨부 파일과 관련 없이 랜덤한 값을 첨부 파일의 암호화 키로 생성할 수 있다. The key generation unit 257 can generate the contents of the message and the key for encrypting the attachment file, respectively. First, the process of generating the encryption key of the attached file will be described. The key generation unit 257 can generate the encryption key of the attached file of the message in consideration of the size of the attached file of the message. For example, when the capacity of the attached file of the message is smaller than a preset threshold size, the key generation unit 257 can generate a random value as an encryption key of the attached file without regard to the attached file.

메시지의 첨부 파일의 용량이 상기 임계 크기 보다 큰 경우, 또는 동일한 첨부 파일이 대량으로 발송되는 경우, 키 생성부(257)는 첨부 파일의 해쉬값을 첨부 파일의 암호화 키로 생성할 수 있다. 랜덤한 값을 첨부 파일의 암호화 키로 생성하는 경우, 사용자 단말기(200, 300)를 통해 메시지 수발신을 제공하는 메시지 서버(100)는 동일한 내용의 첨부 파일을 서로 다른 내용으로 암호화하고, 각 첨부 파일을 저장 및 관리하기 위한 리소스를 많이 필요로 한다. 그에 반해, 해쉬 값을 첨부 파일의 암호화 키로 생성하는 경우, 본 발명의 실시예들에 따른 사용자 단말기(200, 300)를 통해 메시지를 수발신 하도록 제어하는 메시지 서버(100)는 동일한 파일에 대해서는 하나의 원본 만을 관리하면 된다. 즉, 이미 저장되어 있는 특정 원본 파일과 헤쉬 값이 동일한 파일이 메시지 서버(100)에 전송된 경우, 상기 원본 파일과 전송된 파일이 동일한 파일이라고 판단하고, 추가로 원본 파일을 메시지 서버(100)에 저장하는 처리 없이 해당 파일을 수신자에게 전달한다.The key generation unit 257 may generate the hash value of the attached file with the encryption key of the attached file when the capacity of the attached file of the message is larger than the threshold size or when the same attached file is sent in a large amount. In the case where a random value is generated using an encryption key of an attached file, the message server 100 that provides message reception / reception via the user terminals 200 and 300 encrypts the same contents with different contents, Storage, and management resources. On the other hand, when a hash value is generated with an encryption key of an attachment file, the message server 100 controlling to send and receive a message through the user terminals 200 and 300 according to the embodiments of the present invention, You only need to manage the original. That is, when a file having the same hash value as the specific original file already stored is transmitted to the message server 100, it is determined that the original file and the transmitted file are the same file, And transfers the file to the recipient without processing.

키 생성부(257)는 메시지의 첨부 파일의 종류를 고려하여, 메시지의 첨부 파일의 암호화 키를 생성할 수 있다. 예를 들어, 메시지의 첨부 파일이 동영상인 경우, 키 생성부(257)는 첨부 파일의 해쉬값을 첨부 파일의 암호화 키로 생성할 수 있다. 메시지의 첨부 파일이 음성 파일 또는 이미지인 경우, 키 생성부(257)는 첨부 파일과 관련 없이 랜덤한 값을 첨부 파일의 암호화 키로 생성할 수 있다. The key generation unit 257 can generate the encryption key of the attached file of the message in consideration of the type of the attached file of the message. For example, when the attached file of the message is a moving image, the key generation unit 257 can generate the hash value of the attached file with the encryption key of the attached file. If the attachment of the message is a voice file or an image, the key generation unit 257 can generate a random value with an encryption key of the attachment file, regardless of the attachment file.

선택적 실시예에서, 키 생성부(257)는 메시지의 수신자의 수 또는 공유되는 수를 고려하여, 메시지의 첨부 파일의 암호화 키를 생성할 수 있다. 예를 들어, 하나의 메시지가 많은 사용자들에게 전송되도록 입력되는 경우, 즉, 메시지의 수신자의 수가 소정의 임계 수량 이상인 경우, 키 생성부(257)는 메시지의 수신자 정보에 따라 각각 첨부 파일을 암호화하는 키를 생성하기 보다는 첨부 파일의 해쉬값을 메시지의 수신자들을 위한 첨부 파일의 암호화 키로 생성할 수 있다. 또한, 하나의 메시지가 많은 사용자들에 의해 또 다른 사용자들에게 공유되도록 입력되는 경우, 메시지가 공유되는 수가 소정의 임계 수량 이상인 경우, 키 생성부(257)는 메시지의 발신자 또는 수신자와 무관하게, 첨부 파일의 해쉬값을 첨부 파일의 암호화 키로 생성할 수 있다. 다음으로 메시지의 내용을 암호화하는 암호화 키를 생성하는 과정을 설명하면, 키 생성부(257)는 메시지의 내용을 암호화하는 암호화 키를 랜덤하게 생성할 수 있다. 이때, 암호화 키는 수신자 정보, 발신자 정보, 발신 시간, 발신 날짜 등을 고려하여 랜덤하게 생성될 수 있다. In an alternative embodiment, the key generation unit 257 may generate the encryption key of the attachment of the message, taking into account the number of recipients or the number of recipients of the message. For example, when a message is input to be transmitted to a large number of users, that is, when the number of recipients of a message is equal to or greater than a predetermined threshold value, the key generation unit 257 encrypts the attachment file The hash value of the attachment can be generated as the encryption key of the attachment for the recipients of the message. In addition, when one message is input by many users to be shared with another user, if the number of messages shared is equal to or greater than a predetermined threshold number, the key generation unit 257 generates, The hash value of the attachment can be generated with the encryption key of the attachment. Next, the process of generating an encryption key for encrypting the contents of the message will be described. The key generation unit 257 can randomly generate an encryption key for encrypting the contents of the message. At this time, the encryption key can be randomly generated in consideration of the recipient information, the sender information, the transmission time, the transmission date, and the like.

다른 실시예에서, 키 생성부(257)는 복수의 수신자들의 사용자 단말기(200, 300)로 전송하도록 생성된 제1 메시지의 경우, 각 수신자 별로 다른 암호화 키를 생성할 수 있다. 제2 사용자 단말기(301) 및 제3 사용자 단말기(302)로 전송되어야 하는 제1 메시지의 경우, 키 생성부(257)는 제2 사용자 단말기(301)로 전송되는데 이용되는 제1 암호화 키 및 제3 사용자 단말기(302)로 전송되는데 이용되는 제2 암호화 키를 각각 생성할 수 있다. In another embodiment, the key generation unit 257 may generate a different encryption key for each recipient in the case of the first message generated to be transmitted to the user terminals 200 and 300 of the plurality of recipients. In the case of the first message to be transmitted to the second user terminal 301 and the third user terminal 302, the key generating unit 257 generates the first encryption key and the second encryption key used for transmission to the second user terminal 301, 3 user terminal 302, as shown in FIG.

여기서, 해쉬 값에 대해서 좀더 구체적으로 설명하면, 파일의 해쉬 값은 파일의 데이터를 해쉬 함수(hash function) 또는 해쉬 알고리즘(hash algorithm)을 통해 계산하여 산출된 값으로, 해당 파일의 고유한 값이다. 해쉬 값은 파일의 고유한 값이기 때문에 서로 다른 두 파일의 해쉬 값이 같다는 것은 두 파일이 거의 일치하는 동일한 파일임을 의미한다. 해쉬 함수의 종류로는 CRC32, md5, SHA-1, RIPEMD-128, Tiger 등이 있다. More specifically, the hash value of a file is a value calculated by calculating a file's data through a hash function or a hash algorithm, and is a unique value of the file . Because the hash value is a unique value in the file, the fact that two files have the same hash value means that the two files are almost identical files. Types of hash functions include CRC32, md5, SHA-1, RIPEMD-128, and Tiger.

암호화 방법에 대해서 좀더 구체적으로 설명하면, 본 발명의 실시예들에 따른 사용자 단말기(200, 300)는 메시지를 송수신하는데 송신자 및 수신자 이외의 제3자에 의해 해독되는 것을 방지 하기 위해서, 비대칭키를 활용한 암호화 방법을 이용할 수 있다. 즉, 본 발명의 실시예들에 따른 사용자 단말기(200, 300)는 메시지를 전송하는 제1 사용자 단말기(200) 또는 메시지를 수신하는 제2 사용자 단말기(300)에 의해 메시지를 암호화하는 개인 키 또는 메시지를 복호화하는 공개 키를 생성할 수 있다. 제1 개인 키로 암호화된 메시지는 제1 개인 키와 대응되는 제1 공개 키를 이용하여 복호화되고, 제1 공개 키로 암호화된 메시지는 제1 개인 키를 이용하여 복호화될 수도 있다. 즉, 개인 키 및 상기 개인 키와 대응되는 공개 키는 서로 대응되는 관계를 가지며, 복호화 또는 암호화의 기능을 각각 수행하게 된다. 대칭 키 암호 알고리즘(symmetric cryptography)의 경우, 암호화하거나 복호하는데 있어서 동일한 암호 키(개인 키)를 사용하는데 반해서, 비 대칭 키 암호 알고리즘(asymmetric cryptography)은 암호화의 개인 키 및 복호화의 공개 키가 서로 열쇠(key) 및 자물쇠(lock)의 관계 있으면서, 개인 키로부터 공개 키를 해독할 수 없는 장점이 있다. 대칭 키 암호 알고리즘의 예로는 DES, 2중 DES, 3중 DES, AES, IDEA, SEED, Blowfish, ARIA 등이 있을 수 있으며, 비 대칭 키 암호 알고리즘의 예로는 RSA, DSA, ECC, EIGamal, Rabin 등이 있을 수 있다. 또한, 본 발명의 실시예들에 따른 사용자 단말기(200, 300)는 메시지를 대칭키 알고리즘을 이용하여 암호화할 수 있다. In order to prevent a third party other than the sender and the receiver from decrypting a message, the user terminal 200 or 300 according to embodiments of the present invention transmits an asymmetric key The utilized encryption method can be used. That is, each of the user terminals 200 and 300 according to embodiments of the present invention includes a first user terminal 200 that transmits a message or a private key that encrypts a message by a second user terminal 300 that receives a message, A public key that decrypts the message may be generated. The message encrypted with the first private key may be decrypted using the first public key corresponding to the first private key, and the message encrypted with the first public key may be decrypted using the first private key. That is, the private key, the public key corresponding to the private key, and the public key corresponding to each other have a corresponding relationship and perform decryption or encryption, respectively. In the case of symmetric cryptography, asymmetric cryptography uses the same cryptographic key (private key) in encrypting or decrypting, whereas the asymmetric cryptography uses the private key of encryption and the public key of decryption as keys there is an advantage in that the public key can not be decrypted from the private key while being related to the key and the lock. Examples of symmetric key cryptography algorithms are DES, Double DES, Triple DES, AES, IDEA, SEED, Blowfish, and ARIA. Examples of symmetric key cryptography algorithms are RSA, DSA, ECC, EIGamal, Rabin This can be. In addition, the user terminals 200 and 300 according to the embodiments of the present invention can encrypt a message using a symmetric key algorithm.

암호화부(255)는 키 생성부(257)에 의해 생성된 암호화 키들을 이용하여 제1 메시지의 내용 및 첨부 파일을 각각 암호화하는 기능을 수행한다. 암호화부(255)는 하나 이상의 암호화 키를 이용하여, 제1 메시지의 내용 및 첨부 파일을 암호화할 수 있다. 암호화부(255)는 복수의 수신인에게 전송되도록 설정된 제1 메시지를 수신인 별로 생성된 암호화 키를 이용하여 각각 암호화할 수 있다. The encryption unit 255 encrypts the content of the first message and the attached file using the encryption keys generated by the key generation unit 257. [ The encryption unit 255 can encrypt the contents of the first message and the attachment using one or more encryption keys. The encryption unit 255 can encrypt the first message, which is set to be transmitted to a plurality of recipients, using an encryption key generated for each recipient.

본 발명의 실시예들에 따른 사용자 단말기(200, 300)는 메시지의 내용이 공개되지 않도록 하기 위해서, 메시지의 내용을 랜덤하게 생성된 암호화 키를 이용하여 암호화하여 전송하도록 제어할 수 있고, 메시지의 첨부 파일의 종류 또는 크기를 고려하여 생성된 암호화 키를 이용하여 암호화하여 전송하도록 제어할 수 있다. In order to prevent the contents of the message from being disclosed, the user terminals 200 and 300 according to the embodiments of the present invention can control to encrypt and transmit the contents of the message using a randomly generated encryption key, It can be controlled to encrypt and transmit the encryption key using the generated encryption key considering the type or size of the attached file.

다음으로, 메시지 수신과 관련된 실시예들을 중심으로 사용자 단말기(200, 300)의 구조를 설명하겠다. Next, the structure of the user terminals 200 and 300 will be described focusing on embodiments related to message reception.

메시지 수신부(252)는 메시지 서버(100)로부터 제2 사용자 단말기(200, 300)로부터의 제2 메시지 또는 제2 메시지와 대응되는 인덱스를 수신하도록 제어한다. 메시지 수신부(252)는 제2 메시지 또는 제2 메시지와 대응되는 인덱스와 함께, 제2 메시지의 복호화를 위한 복호화 키를 수신하도록 제어할 수 있다. 본 발명의 실시예들에 따른 사용자 단말기(200, 300)는 제2 메시지에 대한 응답 메시지를 전송하는데 있어서, 상기 복호화 키를 활용할 수 있다. 여기서, 인덱스는 본 발명의 실시예들에 따른 메시지 서버(200)에 의해 생성되어 관리되는 정보로서, 메시지를 송수신하는 것보다는 인덱스를 송수신하는 것이 좀더 적은 리소스를 이용하여 가능할 수 있기 때문에 메시지 자체를 송수신하지 않고 메시지와 대응되는 인덱스를 전송할 수 있다. The message receiving unit 252 controls the message server 100 to receive the index corresponding to the second message or the second message from the second user terminal 200 or 300. [ The message receiving unit 252 may control to receive the decryption key for decrypting the second message together with the index corresponding to the second message or the second message. The user terminals 200 and 300 according to the embodiments of the present invention may utilize the decryption key in transmitting the response message for the second message. Here, since the index is information generated and managed by the message server 200 according to the embodiments of the present invention, it is possible to transmit and receive indexes by using fewer resources than to transmit and receive messages, It is possible to transmit an index corresponding to a message without transmitting and receiving.

메시지 자체를 송수신하는 경우에는 데이터 호출이 필요 없을 수 있으나, 그렇지 않고 메시지, 및 첨부 파일과 대응되는 인덱스들을 송수신하는 경우에는 데이터 호출부(254)는 제2 메시지에 포함된 첨부 파일과 대응되는 인덱스를 이용하여, 상기 첨부 파일을 호출할 수 있다. 데이터 호출부(254)는 메시지의 내용과 관련하여서도, 바로 메시지의 내용을 전달 받지 못하는 경우, 메시지와 대응되는 인덱스를 이용하여, 메시지의 내용을 호출할 수 있다. 데이터 호출부(254)는 메시지에 포함된 하나 이상의 항목을 인덱스를 이용하여 호출할 수 있다. In the case of transmitting and receiving the message itself, the data call unit 254 may not need the data call, but if the message and the indexes corresponding to the attached file are transmitted / received, the data calling unit 254 transmits the index corresponding to the attached file included in the second message Can be used to invoke the attachment. The data calling unit 254 can invoke the contents of the message using the index corresponding to the message if the contents of the message are not directly received in relation to the contents of the message. The data calling unit 254 can call one or more items included in the message using the index.

복호화부(256)는 수신한 인덱스, 메시지의 내용 및 첨부 파일 등을 복호화 키를 이용하여 복호화할 수 있다. The decryption unit 256 can decrypt the received index, the content of the message, the attached file, etc. using the decryption key.

마지막으로 동일한 사용자가 보유 또는 사용하는 복수의 단말기, 즉 제1 사용자 단말기(201) 및 제3 사용자 단말기(202)를 이용하여, 메시지 송수신 서비스를 이용하는 방법과 관련된 구성을 설명하겠다. Lastly, a configuration related to a method of using a message transmission / reception service using a plurality of terminals owned or used by the same user, i.e., the first user terminal 201 and the third user terminal 202 will be described.

인증 관리부(258)는 제1 사용자 단말기(201)를 통한 메시지 송수신을 하는 사용자가 제1 사용자 단말기(201)을 통한 송수신 내역을 제3 사용자 단말기(202)를 통해 공유할 수 있도록 제3 사용자 단말기(202)에 대한 인증 과정을 수행할 수 있다. The authentication management unit 258 manages the communication between the third user terminal 202 and the third user terminal 202 so that a user who transmits and receives a message through the first user terminal 201 can share transmission and reception details through the first user terminal 201 through the third user terminal 202. [ It is possible to perform an authentication process for the authentication server 202.

인증 관리부(258)는 도 5에 도시된 바와 같이, 인증 키 수신부(2581), 인증 키 처리부(2582), 암호화부(2583), 키 전송부(2584)를 포함할 수 있다. 5, the authentication management unit 258 may include an authentication key receiving unit 2581, an authentication key processing unit 2582, an encryption unit 2583, and a key transmission unit 2584.

우선, 사용자가 제3 사용자 단말기(202)를 이용하여, 메시지 송수신을 하기 위해서는 메시지 송수신 애플리케이션을 통해 로그인 과정을 거쳐야 한다. 로그인 과정을 통해, 사용자 아이디 및 패스워드가 제1 사용자 단말기(201)를 통한 사용자 정보와 일치하는 경우, 메시지 서버(100)는 제1 사용자 단말기 및 제3 사용자 단말기를 통해 메시지 송수신을 할 수 있도록 제어할 수 있다. First, a user must go through a login procedure through a message sending / receiving application to send / receive a message using the third user terminal 202. When the user ID and the password match the user information through the first user terminal 201, the message server 100 controls the first user terminal and the third user terminal to transmit and receive messages, can do.

제1 사용자 단말기(201)를 통해 메시지 송수신을 하는 경우, 상기 제1 사용자 단말기와 다른 제3 사용자 단말기(202)의 인증 키 수신부(2581)는 메시지 공유 및 송수신을 위한 제1 인증 키를 메시지 서버(100)로부터 수신한다. When transmitting / receiving a message through the first user terminal 201, the authentication key receiving unit 2581 of the third user terminal 202 different from the first user terminal transmits a first authentication key for message sharing and transmission / (100).

제3 사용자 단말기(202)는, 수신한 인증 키를 입력하도록 제어되는 인증 키 처리부(2582)를 포함할 수 있다. 인증 키 처리부(2582)는 제1 사용자 단말기(201)를 통해 수신된 인증 키를 입력받도록 제어한다. 인증 키 처리부(2582)는 입력된 제2 인증 키를 메시지 서버(100)로 전송하는 기능을 수행한다. 인증 키 처리부(2582)는 인증 키 전송의 응답으로, 제2 인증 키의 유효성 판단 결과를 수신받을 수 있다. 즉, 제1 인증 키 및 제2 인증 키가 동일한 경우, 인증 키 처리부(2582)는 인증이 완료되었다는 메시지를 수신하고, 이에 따라 제1 사용자 단말기(201)를 통해 송수신된 하나 이상의 메시지를 공유하게 된다. The third user terminal 202 may include an authentication key processing unit 2582 controlled to input the received authentication key. The authentication key processing unit 2582 controls the first user terminal 201 to receive the authentication key received. The authentication key processing unit 2582 transmits the input second authentication key to the message server 100. The authentication key processing unit 2582 can receive the result of the validity determination of the second authentication key in response to the authentication key transmission. That is, when the first authentication key and the second authentication key are identical, the authentication key processing unit 2582 receives the message indicating that the authentication is completed, and accordingly, shares one or more messages transmitted and received through the first user terminal 201 do.

또한, 인증 키 처리부(2582)는 인증 키를 이용하여, 암호화 키 또는 복호화 키를 제1 사용자 단말기(201)로부터 수신하도록 제어한다. 인증 과정을 통해 메시지 송수신이 가능하게 되었다면, 인증 키 처리부(2582)는 암호화 키 또는 복호화 키를 공유하도록 제어함으로써, 메시지의 해독 및 암호화가 가능하도록 한다. 이때, 암호화 키 또는 복호화 키는 인증 키를 이용하여 암호화되어 제1 사용자 단말기(201)로부터 제3 사용자 단말기(202)로 송수신된다. The authentication key processing unit 2582 controls the first user terminal 201 to receive the encryption key or the decryption key using the authentication key. If the message transmission / reception becomes possible through the authentication process, the authentication key processing unit 2582 controls the encryption key or the decryption key to be shared so that the message can be decrypted and encrypted. At this time, the encryption key or the decryption key is encrypted using the authentication key and transmitted / received from the first user terminal 201 to the third user terminal 202.

암호화부(2583)는 인증 키 처리부(2582)를 통해 수신한 암호화 키를 이용하여 메시지를 암호화한다. The encryption unit 2583 encrypts the message using the encryption key received through the authentication key processing unit 2582.

이를 통해, 사용자는 제1 사용자 단말기(201) 뿐만 아니라 제3 사용자 단말기(202)를 이용하여 메시지를 송수신할 수 있고, 제1 사용자 단말기(201)를 통해 송수신된 메시지를 제3 사용자 단말기(202)를 통해 확인할 수 있다. In this way, the user can send and receive messages using the third user terminal 202 as well as the first user terminal 201, and send and receive messages sent through the first user terminal 201 to the third user terminal 202 ).

도 7 내지 도 8은 본 발명의 실시예들에 따른 메시지 송수신 방법을 나타내는 흐름도이다. 7 to 8 are flowcharts illustrating a message transmission / reception method according to embodiments of the present invention.

도 7에 도시된 바와 같이, 본 발명의 실시예들에 따른 메시지 송수신 방법은 메시지 입력 단계(S110), 키 생성 단계(S120), 암호화 단계(S130), 전송 단계(S140)를 포함할 수 있다. 7, the message transmission / reception method according to embodiments of the present invention may include a message input step S110, a key generation step S120, an encryption step S130, and a transmission step S140 .

S110에서는 제1 사용자 단말기(201)는 제1 메시지를 입력하도록 제어한다. 제1 사용자 단말기(201)는 사용자 입력부(240)에 의해 입력된 입력 신호에 따라 제1 메시지가 생성될 수 있도록 제어한다. 제1 사용자 단말기(201)는 사용자에 의해 입력된 입력 신호와 대응하여, 제1 메시지의 제목, 내용, 발신자 정보, 수신자 정보, 첨부 파일 등을 포함하는 제1 메시지를 생성할 수 있다. In step S110, the first user terminal 201 controls to input the first message. The first user terminal 201 controls the first message to be generated according to the input signal input by the user input unit 240. The first user terminal 201 may generate a first message including a title, content, sender information, recipient information, attachment file, etc. of the first message in correspondence with the input signal input by the user.

S120에서는 제1 사용자 단말기(201)는 제1 메시지를 암호화하는 암호화 키를 생성할 수 있다. 제1 사용자 단말기(201)는 제1 메시지를 암호화하는 암호화 키(private key) 및 상기 암호화 키와 대응되는 복호화 키(public key)를 생성할 수 있다. In S120, the first user terminal 201 may generate an encryption key for encrypting the first message. The first user terminal 201 may generate a private key for encrypting the first message and a decryption key corresponding to the encryption key.

제1 사용자 단말기(201)는 메시지의 내용 및 첨부 파일을 암호화하는 키를 각각 생성할 수 있다. 먼저 첨부 파일의 암호화 키를 생성하는 과정을 설명하면, 제1 사용자 단말기(201)는 메시지의 첨부 파일의 크기를 고려하여, 메시지의 첨부 파일의 암호화 키를 생성할 수 있다. 예를 들어, 메시지의 첨부 파일의 용량이 미리 설정된 임계 크기 보다 작은 경우, 제1 사용자 단말기(201)는 첨부 파일과 관련 없이 랜덤한 값을 첨부 파일의 암호화 키로 생성할 수 있다. 메시지의 첨부 파일의 용량이 상기 임계 크기 보다 큰 경우, 제1 사용자 단말기(201)는 첨부 파일의 해쉬값을 첨부 파일의 암호화 키로 생성할 수 있다. The first user terminal 201 may generate a key for encrypting the content of the message and the attachment file, respectively. First, a process of generating an encryption key of an attached file will be described. The first user terminal 201 can generate an encryption key of an attached file of a message, taking into account the size of the attached file of the message. For example, if the size of the attached file of the message is smaller than the predetermined threshold size, the first user terminal 201 can generate a random value as an encryption key of the attachment file, regardless of the attached file. If the capacity of the attached file of the message is larger than the critical size, the first user terminal 201 may generate the hash value of the attached file with the encryption key of the attached file.

제1 사용자 단말기(201)는 메시지의 첨부 파일의 종류를 고려하여, 메시지의 첨부 파일의 암호화 키를 생성할 수 있다. 예를 들어, 메시지의 첨부 파일이 동영상인 경우, 제1 사용자 단말기(201)는 첨부 파일의 해쉬값을 첨부 파일의 암호화 키로 생성할 수 있다. 메시지의 첨부 파일이 음성 파일 또는 이미지인 경우, 제1 사용자 단말기(201)는 첨부 파일과 관련 없이 랜덤한 값을 첨부 파일의 암호화 키로 생성할 수 있다.The first user terminal 201 may generate an encryption key of an attached file of the message in consideration of the type of the attached file of the message. For example, when the attached file of the message is a moving image, the first user terminal 201 may generate the hash value of the attached file with the encryption key of the attached file. If the attachment of the message is a voice file or an image, the first user terminal 201 may generate a random value with the encryption key of the attachment without regard to the attachment.

다음으로 메시지의 내용을 암호화하는 암호화 키를 생성하는 과정을 설명하면, 제1 사용자 단말기(201)는 메시지의 내용을 암호화하는 암호화 키를 랜덤하게 생성할 수 있다. 이때, 암호화 키는 수신자 정보, 발신자 정보, 발신 시간, 발신 날짜 등을 고려하여 랜덤하게 생성될 수 있다. Next, a process of generating an encryption key for encrypting the contents of the message will be described. The first user terminal 201 can randomly generate an encryption key for encrypting the contents of the message. At this time, the encryption key can be randomly generated in consideration of the recipient information, the sender information, the transmission time, the transmission date, and the like.

다른 실시예에서, 제1 사용자 단말기(201)는 복수의 수신자들의 사용자 단말기(200, 300)로 전송하도록 생성된 제1 메시지의 경우, 각 수신자 별로 다른 암호화 키를 생성할 수 있다. 제2 사용자 단말기(301) 및 제3 사용자 단말기(302)로 전송되어야 하는 제1 메시지의 경우, 제1 사용자 단말기(201)는 제2 사용자 단말기(301)로 전송되는데 이용되는 제1 암호화 키 및 제3 사용자 단말기(302)로 전송되는데 이용되는 제2 암호화 키를 각각 생성할 수 있다. In another embodiment, the first user terminal 201 may generate a different encryption key for each recipient in the case of a first message that is generated to be transmitted to the user terminals 200, 300 of a plurality of recipients. In the case of a first message to be transmitted to the second user terminal 301 and the third user terminal 302, the first user terminal 201 may include a first encryption key used to be transmitted to the second user terminal 301, And a second encryption key used to be transmitted to the third user terminal 302, respectively.

S130에서는 제1 사용자 단말기(201)는 키 생성부(257)에 의해 생성된 암호화 키들을 이용하여 제1 메시지의 내용 및 첨부 파일을 각각 암호화하는 기능을 수행한다. 제1 사용자 단말기(201)는 하나 이상의 암호 키(또는 암호화 키)를 이용하여, 제1 메시지의 내용 및 첨부 파일을 암호화할 수 있다. 제1 사용자 단말기(201)는 복수의 사용자에게 전송되도록 설정된 제1 메시지를 사용자 별로 생성된 암호화 키를 이용하여 각각 암호화할 수 있다. In step S130, the first user terminal 201 encrypts the content of the first message and the attached file using the encryption keys generated by the key generation unit 257, respectively. The first user terminal 201 may encrypt the contents of the first message and the attachment using one or more encryption keys (or encryption keys). The first user terminal 201 can encrypt the first message set to be transmitted to a plurality of users using an encryption key generated for each user.

S140에서는 제1 사용자 단말기(201)는 암호화된 제1 메시지를 제1 메시지의 수신자인 제2 사용자 단말기로 전송하도록 메시지 서버(100)로 전송한다. 메시지 서버(100)는 제1 사용자 단말기(201)로부터 수신한 암호화된 제1 메시지를 수신자인 제2 사용자 단말기로 전송한다. In S140, the first user terminal 201 transmits the encrypted first message to the message server 100 to transmit the encrypted first message to the second user terminal, which is the recipient of the first message. The message server 100 transmits the encrypted first message received from the first user terminal 201 to the second user terminal as the receiver.

도 8에 도시된 바와 같이, 본 발명의 실시예들에 따른 메시지 송수신 방법은 메시지 수신 단계(S210), 데이터 호출 단계(S220), 데이터 복호화 단계(S230)를 포함할 수 있다. As shown in FIG. 8, the message transmission / reception method according to embodiments of the present invention may include a message reception step S210, a data call step S220, and a data decryption step S230.

S210에서는 제1 사용자 단말기(201)는 메시지 서버(100)로부터 제2 사용자 단말기(200, 300)로부터의 제2 메시지 또는 제2 메시지와 대응되는 인덱스를 수신하도록 제어한다. 메시지 서버는 제2 사용자 단말기로부터의 제2 메시지 또는 제2 메시지와 대응되는 인덱스, 제2 메시지의 복호화를 위한 복호화 키를 제1 사용자 단말기로 전송한다. 제1 사용자 단말기(201)는 제2 메시지 또는 제2 메시지와 대응되는 인덱스와 함께, 제2 메시지의 복호화를 위한 복호화 키를 수신하도록 제어할 수 있다.In step S210, the first user terminal 201 controls the message server 100 to receive the index corresponding to the second message or the second message from the second user terminal 200 or 300. [ The message server transmits a decryption key for decrypting the second message or the second message from the second user terminal to the first user terminal. The first user terminal 201 may control to receive a decryption key for decryption of the second message together with an index corresponding to the second message or the second message.

S220에서는 메시지 자체를 송수신하는 경우에는 데이터 호출이 필요 없을 수 있으나, 그렇지 않고 메시지, 및 첨부 파일과 대응되는 인덱스들을 송수신하는 경우에는 제1 사용자 단말기(201)는 제2 메시지에 포함된 첨부 파일과 대응되는 인덱스를 이용하여, 상기 첨부 파일을 호출할 수 있다. 제1 사용자 단말기(201)는 메시지의 내용과 관련하여서도, 바로 메시지의 내용을 전달 받지 못하는 경우, 메시지와 대응되는 인덱스를 이용하여, 메시지의 내용을 호출할 수 있다. 제1 사용자 단말기(201)는 메시지에 포함된 하나 이상의 항목을 인덱스를 이용하여 호출할 수 있다. 메시지 서버는 메시지에 포함된 첨부 파일과 대응되는 인덱스를 이용하여 상기 첨부 파일을 호출 시킨다. 메시지 서버는 메시지와 대응되는 인덱스를 이용하여 메시지의 내용을 호출 시킨다. 메시지 서버는 메시지에 포함된 하나 이상의 항목을 인덱스를 이용하여 호출 시킨다. In S220, when the message itself is transmitted and received, the data call may be unnecessary. Otherwise, when transmitting and receiving the indexes corresponding to the message and the attached file, the first user terminal 201 transmits the attached file included in the second message Using the corresponding index, the attachment file can be called. The first user terminal 201 can call the contents of the message using the index corresponding to the message if the contents of the message are not directly received. The first user terminal 201 may call one or more items included in the message using an index. The message server calls the attachment using the index corresponding to the attachment included in the message. The message server calls the contents of the message using the index corresponding to the message. The message server calls one or more items included in the message using an index.

S230에서는 제1 사용자 단말기(201)는 수신한 인덱스, 메시지의 내용 및 첨부 파일 등을 복호화 키를 이용하여 복호화할 수 있다. 제1 사용자 단말기(201)는 복호화가 실패한 경우, 해당 메시지에 대한 보안을 요청하는 내용을 포함하는 화면을 표시하도록 제어할 수 있다. In S230, the first user terminal 201 can decrypt the received index, the content of the message, and the attached file using the decryption key. The first user terminal 201 may control to display a screen including a content requesting security for the message if the decryption has failed.

도 9는 제1 사용자 단말기 및 제2 사용자 단말기 사이의 메시지 송수신 과정을 설명하기 위한 흐름도이다. 9 is a flowchart illustrating a process of transmitting and receiving a message between a first user terminal and a second user terminal.

제1 사용자 단말기(201)는 입력한 메시지를 암호화하기 위한 암호화 키를 생성하고, 상기 암호화 키와 대응되는 복호화 키를 생성할 수 있다. 암호화 키 및 복호화 키 사이의 관계는 상술하였으므로, 자세한 설명을 생략한다(S901). 여기서, 암호화 키는 메시지의 내용 및 메시지의 첨부 파일을 암호화하기 위해서 각각 생성될 수 있다. The first user terminal 201 may generate an encryption key for encrypting the input message and generate a decryption key corresponding to the encryption key. Since the relationship between the encryption key and the decryption key has been described above, the detailed description is omitted (S901). Here, the encryption key can be generated to encrypt the contents of the message and the attachment of the message, respectively.

제1 사용자 단말기(201)는 첨부 파일을 포함하는 메시지를 생성하는 사용자 입력을 입력 받는다(S902). 제1 사용자 단말기(201)는 상기 첨부 파일 및 메시지의 내용을 상기 암호화 키를 이용하여 암호화한다(S903). 제1 사용자 단말기(201)는 복호화 키 및 암호화된 파일 및 메시지를 메시지 서버로 전송한다(S904, S905). 메시지 서버는 제1 사용자 단말기로부터 복호화 키 및 암호화된 파일 및 메시지를 수신한다. 여기서, 복호화 키는 메시지 및 메시지에 포함된 첨부 파일 각각을 위해서 복수 개가 생성될 수 있다. 메시지에 포함된 수신자의 제2 사용자 단말기(300)로 전송하도록 생성된 메시지는 제2 사용자 단말기(300)로 전송된다(S905, S906). 메시지 서버는 각 메시지의 수신자인 제2 사용자 단말기(300)로 암호화된 파일 및 메시지, 복호화 키를 전송한다. 복호화 키 및 암호화된 파일 및 메시지를 수신한 제2 사용자 단말기(300)는 메시지 및 메시지에 포함된 파일을 복호화 키로 복호화 한다(S908).The first user terminal 201 receives a user input for generating a message including an attachment file (S902). The first user terminal 201 encrypts the contents of the attached file and the message using the encryption key (S903). The first user terminal 201 transmits the decryption key and the encrypted file and message to the message server (S904, S905). The message server receives the decryption key and the encrypted file and message from the first user terminal. Here, a plurality of decryption keys may be generated for each of the message and the attached file included in the message. The message generated to be transmitted to the second user terminal 300 of the receiver included in the message is transmitted to the second user terminal 300 (S905, S906). The message server transmits the encrypted file, the message, and the decryption key to the second user terminal 300, which is the receiver of each message. Upon receiving the decryption key and the encrypted file and message, the second user terminal 300 decrypts the message and the file included in the message using the decryption key (S908).

도 10은 제1 사용자 단말기 및 제3 사용자 단말기 사이의 메시지 공유 과정을 설명하기 위한 흐름도이다. 10 is a flowchart illustrating a message sharing process between the first user terminal and the third user terminal.

제1 사용자 단말기(201) 및 제3 사용자 단말기(202)를 모두 보유 또는 소유하고 있는 사용자는 제3 사용자 단말기(202)를 통해 메시지 송수신을 위한 로그인 정보를 입력 할 수 있다(S1001). 제3 사용자 단말기(202)는 로그인 정보를 메시지 서버(100)로 전송한다(S1002). 메시지 서버(100)는 로그인 정보의 유효성을 판단한다(S1003). 즉, 메시지 서버(100)는 로그인 정보에 포함되는 아이디 정보 및 패스워드 정보가 서로 대응되는지 여부를 판단한다. 메시지 서버(100)는 제1 사용자 아이디 및 제1 사용자의 패스워드가 포함되어 있는지 여부를 판단한다. 로그인 정보가 유효한 경우, 메시지 서버(100)는 랜덤하게 생성된 제1 인증 번호를 제3 사용자 단말기(202)로 전송한다(S1004). 이후, 사용자가 보유 또는 소유하고 있는 제1 사용자 단말기(201)로 인증 번호를 입력하도록 하는 신호를 전송한다. 상기 신호와 대응하여, 제1 사용자 단말기(201)은 인증 번호를 입력하도록 하는 사용자 인터페이스를 표시한다(S1005). 상기 사용자 인터페이스에 따라 제1 사용자 단말기(201)은 제2 인증 번호를 입력 받는다(S1006). 제1 사용자 단말기(201)는 입력된 제2 인증 번호를 메시지 서버(100)로 전송한다(S1007). 메시지 서버(100)는 제1 인증 번호 및 제2 인증 번호 사이의 일치 여부를 판단하고(S1008), 일치한 경우, 제3 사용자 단말기에 대한 인증 과정, 처리를 완료한다(S1009). S1001 내지 S1009 단계를 수행한 다음 부터는 메시지 서버(100)는 제1 사용자 단말기(201)에 의해 수신되거나 송신된 메시지를 제3 사용자 단말기(202)로 전달하고, 반대로 제3 사용자 단말기(202)에 의해 수신되거나 송신된 메시지를 제1 사용자 단말기(201)로 전달하게 된다. 즉, 제1 사용자 단말기(201) 및 제3 사용자 단말기(202)는 동일한 메시지 송수신 이력을 공유하게 된다. A user possessing or possessing both the first user terminal 201 and the third user terminal 202 may input login information for sending and receiving messages through the third user terminal 202 (S1001). The third user terminal 202 transmits the login information to the message server 100 (S1002). The message server 100 determines the validity of the login information (S1003). That is, the message server 100 determines whether the ID information and the password information included in the login information correspond to each other. The message server 100 determines whether the first user ID and the password of the first user are included. If the login information is valid, the message server 100 transmits the randomly generated first authentication number to the third user terminal 202 (S1004). Thereafter, a signal is sent to the first user terminal 201, which the user owns or owns, to input the authentication number. In response to the signal, the first user terminal 201 displays a user interface for inputting the authentication number (S1005). The first user terminal 201 receives the second authentication number according to the user interface (S1006). The first user terminal 201 transmits the input second authentication number to the message server 100 (S1007). The message server 100 determines whether the first authentication number matches the second authentication number (S1008). If the first authentication number matches the second authentication number, the message server 100 completes the authentication process for the third user terminal (S1009). After step S1001 to step S1009, the message server 100 transmits a message received or transmitted by the first user terminal 201 to the third user terminal 202, And transmits the message received or transmitted by the first user terminal 201 to the first user terminal 201. That is, the first user terminal 201 and the third user terminal 202 share the same message transmission / reception history.

선택적 실시예에서, 각 메시지에 대한 확인 정보는 제1 사용자 단말기(201) 및 제3 사용자 단말기(202) 간에 차이가 있을 수 있다. 예를 들어, 제1 사용자 단말기(201)를 통해 확인된 메시지는 제3 사용자 단말기(202)에서는 미확인 메시지로 표시될 수 있다. In an alternate embodiment, the confirmation information for each message may be different between the first user terminal 201 and the third user terminal 202. For example, a message identified through the first user terminal 201 may be displayed as an unacknowledged message in the third user terminal 202.

도 11 내지 도 14는 본 발명의 실시예들에 따른 사용자 단말기에 제공되는 사용자 인터페이스의 예시들을 설명하기 위한 도면이다. 11 to 14 are diagrams illustrating examples of a user interface provided to a user terminal according to embodiments of the present invention.

도 11에 도시된 1101은 제1 사용자 단말기(201)에 표시되는 사용자 인터페이스로서, 제3 사용자 단말기(202)로 전송된 인증 번호를 입력 받도록 하는 화면이다. 사용자는 도 11에 도시된 바와 같이 6자리의 인증 번호를 입력하고, 본인 확인 버튼(1102)를 클릭함으로써, 제1 사용자 단말기(201)는 인증 처리를 수행할 수 있다.  Reference numeral 1101 shown in FIG. 11 is a user interface displayed on the first user terminal 201, and is a screen for receiving an authentication number transmitted to the third user terminal 202. 11, the first user terminal 201 can perform the authentication process by inputting the 6-digit authentication number and clicking the identity confirmation button 1102. [

도 12에 도시된 1201은 사용자 단말기(200, 300)에 메시지를 표시하는 사용자 인터페이스이다. 본인 인증을 거치지 않은 사용자 단말기(200, 300)은 메시지를 암호화된 상태로 보여주게 되며(1202), 본인 확인을 위한 버튼(1203)을 클릭함으로써, 별도의 본인 확인을 수행해야 한다. Reference numeral 1201 shown in FIG. 12 is a user interface for displaying a message on the user terminals 200 and 300. The user terminals 200 and 300 that have not authenticated themselves will display the message in an encrypted state 1202 and perform a separate identity verification by clicking the button 1203 for identity verification.

도 13에 도시된 바와 같이, 1301은 사용자에 의해 생성된 하나 이상의 대화방을 리스트로 표시하는 화면과 각 대화방에서 이루어진 대화를 표시하는 화면을 함께 표시할 수 있다(1301). 상대방이 추가적인 보안 과정을 필요로 하는 메시지(1302)를 전송한 경우, 이미 본인 확인을 한 사용자라 하더라도 상기 메시지를 표시하지 않고, 사용자는 상기 메시지의 내용을 확인하기 위해서 별도의 인증 과정을 거치도록 제어할 수 있다(S1303). As shown in FIG. 13, 1301 can display a screen displaying a list of one or more chat rooms created by a user and a screen displaying a dialog made in each chat room (1301). When the other party transmits a message 1302 requiring an additional security process, the user does not display the message even if the user has already confirmed the identity, and the user performs a separate authentication process to confirm the content of the message (S1303).

도 14에 도시된 바와 같이, 1401은 대화방 리스트를 표시할 수 있고, 대화방 리스트에서 암호화된 메시지가 표시되지 않도록 한다(1402). As shown in FIG. 14, 1401 can display a chat room list, and prevents an encrypted message from being displayed in the chat room list (1402).

이상 설명된 본 발명에 따른 실시예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 나아가, 매체는 네트워크 상에서 전송 가능한 형태로 구현되는 무형의 매체를 포함할 수 있으며, 예를 들어 소프트웨어 또는 애플리케이션 형태로 구현되어 네트워크를 통해 전송 및 유통이 가능한 형태의 매체일 수도 있다. The embodiments of the present invention described above can be embodied in the form of a computer program that can be executed on various components on a computer, and the computer program can be recorded on a computer-readable medium. At this time, the medium may be a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, an optical recording medium such as CD-ROM and DVD, a magneto-optical medium such as a floptical disk, , A RAM, a flash memory, and the like, which are specifically configured to store and execute program instructions. Further, the medium may include an intangible medium that is implemented in a form that can be transmitted over a network, and may be, for example, a medium in the form of software or an application that can be transmitted and distributed through a network.

한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.Meanwhile, the computer program may be designed and configured specifically for the present invention or may be known and used by those skilled in the computer software field. Examples of computer programs may include machine language code such as those produced by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like.

본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.The specific acts described in the present invention are, by way of example, not intended to limit the scope of the invention in any way. For brevity of description, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of such systems may be omitted. Also, the connections or connecting members of the lines between the components shown in the figures are illustrative of functional connections and / or physical or circuit connections, which may be replaced or additionally provided by a variety of functional connections, physical Connection, or circuit connections. Also, unless explicitly mentioned, such as " essential ", " importantly ", etc., it may not be a necessary component for application of the present invention.

본 발명의 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.The use of the terms " above " and similar indication words in the specification of the present invention (particularly in the claims) may refer to both singular and plural. In addition, in the present invention, when a range is described, it includes the invention to which the individual values belonging to the above range are applied (unless there is contradiction thereto), and each individual value constituting the above range is described in the detailed description of the invention The same. Finally, the steps may be performed in any suitable order, unless explicitly stated or contrary to the description of the steps constituting the method according to the invention. The present invention is not necessarily limited to the order of description of the above steps. The use of all examples or exemplary language (e.g., etc.) in this invention is for the purpose of describing the present invention only in detail and is not to be limited by the scope of the claims, It is not. It will also be appreciated by those skilled in the art that various modifications, combinations, and alterations may be made depending on design criteria and factors within the scope of the appended claims or equivalents thereof.

10: 메시지 송수신 시스템
100: 메시지 서버
200, 300: 사용자 단말기
400: 통신망
10: Message sending / receiving system
100: message server
200, 300: user terminal
400: communication network

Claims (7)

메시지 서버에 있어서,
제1 사용자 단말기로부터 암호화 키로 암호화된 메시지의 첨부 파일 및 복호화 키를 수신하고, 상기 복호화 키를 저장 관리하지 않고, 상기 암호화 키로 암호화된 메시지의 첨부 파일 및 복호화 키를 그대로 수신자인 제2 사용자 단말기로 전송되도록 제어하되,
상기 메시지 서버는
상기 메시지의 첨부 파일의 인덱스를 기초로 상기 첨부 파일이 기존에 전송된 이력이 있는지를 판단하여,
상기 첨부 파일의 원본 파일의 추가 저장 여부를 결정하되,
하나의 첨부 파일이 전송되거나 공유되는 수 만큼 첨부 파일 또는 첨부 파일의 인덱스를 저장 관리하지 않고, 하나의 인덱스를 이용하여 첨부 파일이 전송 공유되도록 처리하는 메시지 처리부를 포함하고,
상기 첨부 파일이 이미 저장되어 있는 원본 파일과 동일한 파일인 것으로 판단된 경우, 상기 첨부 파일을 추가로 저장하는 처리 없이 상기 제1 사용자 단말기에 의해 암호화된 메시지의 첨부 파일을 상기 제2 사용자 단말기로부터의 인덱스를 이용한 호출에 의해 상기 제2 사용자 단말기로 전달하는 점을 특징으로 하는, 메시지 서버.
In a message server,
Receiving an attaching file and a decryption key of a message encrypted with an encryption key from a first user terminal and storing an attachment file and a decryption key of a message encrypted with the encryption key without directly storing and managing the decryption key, To be transmitted,
The message server
Determining whether the attached file has a past history based on the index of the attached file of the message,
Determining whether to additionally store the original file of the attachment file,
And a message processing unit for processing the attached file to be transmitted and shared using one index without storing and managing the index of the attached file or the attached file as many times as one attached file is transmitted or shared,
If the attached file is determined to be the same file as the original file in which the attached file is already stored, the attachment of the message encrypted by the first user terminal from the second user terminal without further storing the attached file To the second user terminal by a call using an index.
제1항에 있어서,
상기 첨부 파일을 암호화하는 암호화 키는
랜덤한 값 또는 해쉬 값인 점을 특징으로 하는, 메시지 서버.
The method according to claim 1,
The encryption key for encrypting the attachment is
A random value or a hash value.
제1항에 있어서,
상기 첨부 파일은
메시지와 함께 수신된 복호화 키를 이용하여 복호화하는 점을 특징으로 메시지 서버.
The method according to claim 1,
The attachment
And decrypting the message using the decryption key received together with the message.
삭제delete 삭제delete 제1항에 있어서,
상기 제1 사용자 단말기와 연계된 제3 사용자 단말기로부터 메시지 송수신을 위한 로그인 정보를 수신한 경우,
상기 제1 사용자 단말기로 인증 번호를 입력하도록 하는 사용자 인터페이스를 제공하는 점을 특징으로 하는, 메시지 서버.
The method according to claim 1,
Receiving login information for message transmission / reception from a third user terminal associated with the first user terminal,
Wherein the first user terminal provides a user interface for inputting an authentication number to the first user terminal.
제6항에 있어서,
상기 제3 사용자 단말기에 대한 인증 과정을 완료한 이후에,
상기 제1 사용자 단말기에 의해 수신되거나 송신된 메시지를 상기 제3 사용자 단말기로 전달하는 점을 특징으로 하는, 메시지 서버.
The method according to claim 6,
After completing the authentication process for the third user terminal,
Characterized in that the message server is adapted to deliver a message received or transmitted by the first user terminal to the third user terminal.
KR1020170113117A 2017-09-05 2017-09-05 Message server KR101933444B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170113117A KR101933444B1 (en) 2017-09-05 2017-09-05 Message server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170113117A KR101933444B1 (en) 2017-09-05 2017-09-05 Message server

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020150149491A Division KR101777698B1 (en) 2015-10-27 2015-10-27 User terminal, method and computer for receiving and sending messages

Publications (2)

Publication Number Publication Date
KR20170104426A KR20170104426A (en) 2017-09-15
KR101933444B1 true KR101933444B1 (en) 2018-12-28

Family

ID=59926972

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170113117A KR101933444B1 (en) 2017-09-05 2017-09-05 Message server

Country Status (1)

Country Link
KR (1) KR101933444B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102538230B1 (en) * 2021-05-14 2023-05-31 주식회사 카카오엔터프라이즈 Method and apparatus for digital content protection

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008262282A (en) * 2007-04-10 2008-10-30 Hitachi Software Eng Co Ltd Encryption/decryption device and electronic mail system
JP2009026014A (en) * 2007-07-18 2009-02-05 Canon Inc Document output device, control method thereof and document output system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008262282A (en) * 2007-04-10 2008-10-30 Hitachi Software Eng Co Ltd Encryption/decryption device and electronic mail system
JP2009026014A (en) * 2007-07-18 2009-02-05 Canon Inc Document output device, control method thereof and document output system

Also Published As

Publication number Publication date
KR20170104426A (en) 2017-09-15

Similar Documents

Publication Publication Date Title
KR101777698B1 (en) User terminal, method and computer for receiving and sending messages
US11687920B2 (en) Facilitating a fund transfer between user accounts
US11115393B2 (en) Message server, method for operating message server and computer-readable recording medium
CN106716914B (en) Secure key management for roaming protected content
CN107113286B (en) Cross-device roaming content erase operation
US9521097B2 (en) System and method for management of persistent and irrefutable instant messages
US11456872B2 (en) Offline protection of secrets
CN104270517A (en) Information encryption method and mobile terminal
US10708237B2 (en) System and method for chat messaging in a zero-knowledge vault architecture
WO2018018726A1 (en) Group file management method, user terminal, and group chat system
KR102507113B1 (en) Method, Appratus and System of Monitoring Supporting for Encrypted Communication Session
US20170142578A1 (en) System and method for providing secure and anonymous device-to-device communication
EP2978161A2 (en) METHOD FOR SAVING A USERýS SECRET AND METHOD FOR RESTORING A USERýS SECRET
CN109120576B (en) Data sharing method and device, computer equipment and storage medium
KR101933444B1 (en) Message server
CN113243093A (en) System and method for message transmission and retrieval using blockchains
US11582028B1 (en) Sharing grouped data in an organized storage system
US11431492B2 (en) Mutable encrypted system
US11652612B2 (en) Sharing access to data
CN114765595B (en) Chat message display method, chat message sending device, electronic equipment and media
US11201856B2 (en) Message security
US11829610B2 (en) Sharing data in an organized storage system
Aziz et al. SIMSSP: Secure Instant Messaging System for Smart Phones
Kammourieh et al. BumpChat: A Secure Mobile Communication System
CN114285632A (en) Block chain data transmission method, device and equipment and readable storage medium

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
AMND Amendment
X701 Decision to grant (after re-examination)