KR102216869B1 - Apparatus and method for decrypting end-to-end encrypted files - Google Patents

Apparatus and method for decrypting end-to-end encrypted files Download PDF

Info

Publication number
KR102216869B1
KR102216869B1 KR1020190062397A KR20190062397A KR102216869B1 KR 102216869 B1 KR102216869 B1 KR 102216869B1 KR 1020190062397 A KR1020190062397 A KR 1020190062397A KR 20190062397 A KR20190062397 A KR 20190062397A KR 102216869 B1 KR102216869 B1 KR 102216869B1
Authority
KR
South Korea
Prior art keywords
encrypted file
decryption
encrypted
file
user account
Prior art date
Application number
KR1020190062397A
Other languages
Korean (ko)
Other versions
KR20200136629A (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 KR1020190062397A priority Critical patent/KR102216869B1/en
Publication of KR20200136629A publication Critical patent/KR20200136629A/en
Application granted granted Critical
Publication of KR102216869B1 publication Critical patent/KR102216869B1/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/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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 종단간 암호화가 적용된 파일에 대한 복호화 장치 및 방법에 관한 것으로, 상기 복호화 장치는 사용자 계정에 관한 개인키 및 공개키를 저장하는 제1 암호화 파일을 복호화하는 제1 암호화 파일 복호화부, 상기 제1 암호화 파일에 대한 복호화 결과를 기초로 상기 사용자 계정의 메시지를 암호화하기 위한 대칭키를 저장하는 제2 암호화 파일을 복호화하는 제2 암호화 파일 복호화부 및 상기 제2 암호화 파일에 대한 복호화 결과를 기초로 상기 사용자 계정의 메시지를 저장하는 제3 암호화 파일을 복호화하는 제3 암호화 파일 복호화부를 포함한다.The present invention relates to a decryption apparatus and method for a file to which end-to-end encryption is applied, wherein the decryption apparatus is a first encrypted file decryption unit for decrypting a first encrypted file storing a private key and a public key for a user account, the Based on the decryption result for the first encrypted file, a second encrypted file decryption unit for decrypting a second encrypted file that stores a symmetric key for encrypting the message of the user account and the decryption result for the second encrypted file And a third encrypted file decryption unit for decrypting a third encrypted file storing the message of the user account.

Description

종단간 암호화가 적용된 파일에 대한 복호화 장치 및 방법{APPARATUS AND METHOD FOR DECRYPTING END-TO-END ENCRYPTED FILES}Decryption device and method for files with end-to-end encryption applied {APPARATUS AND METHOD FOR DECRYPTING END-TO-END ENCRYPTED FILES}

본 발명은 종단간 암호화가 적용된 파일에 대한 복호화 기술에 관한 것으로, 더욱 상세하게는 사용자들 간의 메시지에 대한 암호화 과정에서 사용되는 중요 정보를 획득할 수 있는 종단간 암호화가 적용된 파일에 대한 복호화 장치 및 방법에 관한 것이다.The present invention relates to a decryption technology for a file to which end-to-end encryption is applied, and more particularly, a decryption apparatus for a file to which end-to-end encryption is applied, capable of obtaining important information used in an encryption process for messages between users, and It's about how.

모바일 인스턴트 메신저 애플리케이션은 사용자의 개인정보 보호를 위하여 모든 데이터를 암호화하고 메시지 전송 시에는 종단간 암호화(End-to-end encryption)을 제공하고 있다. 메시지 암호화에 사용되는 비밀키는 공개키 시스템을 통해 정당한 이용자들만 생성할 수 있으며, 생성된 비밀키들은 다시 한번 자신만의 패스워드에 의해 암호화되어 애플리케이션이 작동한 기기 내에 저장되거나 매회 공개키 시스템을 이용하여 유도된다.The mobile instant messenger application encrypts all data to protect users' personal information and provides end-to-end encryption when sending messages. The private key used for message encryption can only be generated by legitimate users through the public key system, and the generated private keys are once again encrypted by their own password and stored in the device where the application is run, or use the public key system every time. Is induced by

디지털 포렌식 관점에서 암호화된 데이터의 정보를 알 수 없거나 또는 증거의 획득이 불가능한 경우 악의적인 범죄자들에 의해 악용될 소지가 다분하다. 따라서 암호화된 메신저에 대한 복호화 프로그램은 포렌식 수사에 도움이 될 수 있다.From a digital forensic point of view, if the information of the encrypted data is unknown or it is impossible to obtain evidence, it is highly likely to be exploited by malicious criminals. Therefore, a decryption program for an encrypted messenger can be helpful for forensic investigation.

한국등록특허 제10-0666708(2007.01.03)호Korean Patent Registration No. 10-0666708 (2007.01.03)

본 발명의 일 실시예는 사용자들 간의 메시지에 대한 암호화 과정에서 사용되는 중요 정보를 획득할 수 있는 종단간 암호화가 적용된 파일에 대한 복호화 장치 및 방법을 제공하고자 한다.An embodiment of the present invention is to provide an apparatus and method for decrypting a file to which end-to-end encryption is applied, capable of acquiring important information used in an encryption process for messages between users.

본 발명의 일 실시예는 원본 데이터의 훼손없이 증거 수집 및 사건 재구성이 가능하며 용의자가 패스워드를 제공하지 않는 경우에도 증거 수집이 가능한 종단간 암호화가 적용된 파일에 대한 복호화 장치 및 방법을 제공하고자 한다.An embodiment of the present invention is to provide an apparatus and method for decrypting a file to which end-to-end encryption is applied, enabling collection of evidence and reconstruction of events without damaging original data, and collecting evidence even when a suspect does not provide a password.

본 발명의 일 실시예는 사용자의 민감한 데이터를 순차적으로 복구하고 이를 토대로 사용자 패스워드를 최종 복구할 수 있는 종단간 암호화가 적용된 파일에 대한 복호화 장치 및 방법을 제공하고자 한다.An embodiment of the present invention is to provide an apparatus and method for decrypting a file to which end-to-end encryption is applied, capable of sequentially recovering user's sensitive data and finally recovering a user password based on this.

실시예들 중에서, 종단간(end to end) 암호화가 적용된 파일에 대한 복호화 장치는 사용자 계정에 관한 개인키 및 공개키를 저장하는 제1 암호화 파일을 복호화하는 제1 암호화 파일 복호화부, 상기 제1 암호화 파일에 대한 복호화 결과를 기초로 상기 사용자 계정의 메시지를 암호화하기 위한 대칭키를 저장하는 제2 암호화 파일을 복호화하는 제2 암호화 파일 복호화부 및 상기 제2 암호화 파일에 대한 복호화 결과를 기초로 상기 사용자 계정의 메시지를 저장하는 제3 암호화 파일을 복호화하는 제3 암호화 파일 복호화부를 포함한다.Among the embodiments, the apparatus for decrypting a file to which end-to-end encryption is applied includes a first encrypted file decryption unit for decrypting a first encrypted file storing a private key and a public key for a user account, and the first Based on the decryption result for the encrypted file, a second encrypted file decryption unit for decrypting a second encrypted file storing a symmetric key for encrypting the message of the user account and the decryption result for the second encrypted file. And a third encrypted file decryption unit for decrypting a third encrypted file storing a message of a user account.

상기 제1 및 제2 암호화 파일들은 상기 사용자 계정의 패스워드(password)와 적어도 하나의 중간값을 기초로 각각 생성된 비밀키를 이용하여 암호화된 데이터를 포함하고, 상기 암호화된 데이터는 상기 적어도 하나의 중간값과 순서대로 연접하여 저장될 수 있다.The first and second encrypted files include data encrypted using a secret key each generated based on a password of the user account and at least one intermediate value, and the encrypted data is the at least one It can be stored concatenated in order with the median value.

상기 제1 암호화 파일은 상기 제1 암호화 파일이 저장되는 위치에 따라 결정되는 아이덴티티(identity) 값 및 상기 사용자 계정의 패스워드를 연접한 후 상기 적어도 하나의 중간값과 함께 해시 함수를 반복 적용함으로써 생성된 비밀키를 이용하여 암호화된 데이터를 포함할 수 있다.The first encrypted file is generated by concatenating an identity value determined according to the location where the first encrypted file is stored and the password of the user account, and then repeatedly applying a hash function with the at least one intermediate value. It may contain data encrypted using a secret key.

상기 제2 암호화 파일은 상기 사용자 계정의 패스워드를 상기 적어도 하나의 중간값과 함께 해시 함수를 반복 적용함으로써 생성된 비밀키를 이용하여 암호화된 데이터를 포함하고, 상기 반복 적용의 횟수는 상기 제1 암호화 파일에 관한 반복 적용의 횟수와 상이할 수 있다.The second encryption file contains data encrypted using a secret key generated by repeatedly applying a hash function to the password of the user account with the at least one intermediate value, and the number of times of the repeated application is the first encryption It can be different from the number of iterations on the file.

상기 제2 암호화 파일 복호화부는 상기 제2 암호화 파일이 존재하지 않는 경우 상기 제1 암호화 파일의 복호화를 통해 획득한 상기 사용자 계정의 개인키와 상기 사용자 계정과 연관된 상대방의 공개키를 기초로 산출된 중간값에 해시 함수를 적용하여 상기 대칭키를 획득할 수 있다.When the second encrypted file does not exist, the second encrypted file decryption unit is an intermediate calculated based on the private key of the user account obtained through decryption of the first encrypted file and the public key of the other party associated with the user account. The symmetric key can be obtained by applying a hash function to a value.

상기 제2 암호화 파일 복호화부는 상기 제2 암호화 파일에 대한 복호화를 통해 해시맵(hashmap) 객체를 획득하는 단계, 상기 해시맵 객체를 파싱하여 키(key)의 시작지점을 결정하는 단계 및 키와 밸류(value)를 분리하는 구분자(seperator)를 검색하여 사용자 계정별 대칭키를 획득하는 단계를 수행할 수 있다.The second encrypted file decryption unit obtains a hashmap object through decryption of the second encrypted file, parsing the hashmap object to determine a starting point of a key, and a key and value A step of acquiring a symmetric key for each user account may be performed by searching for a separator that separates (value).

상기 제3 암호화 파일 복호화부는 상기 제3 암호화 파일에 저장된 메시지의 타입(type)을 판별하고 상기 메시지의 타입에 따라 암호화된 메시지를 복호화하여 원본 데이터를 획득할 수 있다.The third encrypted file decryption unit may determine a type of a message stored in the third encrypted file, and may obtain original data by decrypting an encrypted message according to the type of the message.

상기 제3 암호화 파일 복호화부는 상기 메시지의 타입이 미디어(media)인 경우 데이터 링크(link)를 통해 상기 암호화된 메시지를 다운로드한 후 복호화를 수행하고, 상기 메시지의 타입이 지아이에프(gif)인 경우 상기 암호화된 메시지를 복호화한 결과로서 획득한 데이터 링크를 통해 상기 원본 데이터를 다운로드할 수 있다.When the third encrypted file decryption unit downloads the encrypted message through a data link and then decrypts the message when the message type is media, and the message type is gif The original data may be downloaded through a data link obtained as a result of decrypting the encrypted message.

상기 종단간 암호화가 적용된 파일에 대한 복호화 장치는 상기 제1 암호화 파일 또는 상기 제2 암호화 파일을 이용하여 상기 사용자 계정의 패스워드를 복구하는 패스워드 복구부를 더 포함할 수 있다.The decryption apparatus for a file to which the end-to-end encryption is applied may further include a password recovery unit for recovering a password of the user account using the first encrypted file or the second encrypted file.

상기 패스워드 복구부는 후보 패스워드를 추정하는 단계, 추정된 상기 후보 패스워드를 기초로 후보키를 생성하는 단계, 상기 후보키를 대체 암호 알고리즘에 적용하여 상기 제1 암호화 파일 또는 상기 제2 암호화 파일의 특정 블록을 복호화하는 단계 및 상기 특정 블록에 대한 복호화 결과로서 획득한 데이터가 상기 제1 암호화 파일 또는 상기 제2 암호화 파일에 관한 고정 데이터와 일치하는 경우 상기 후보 패스워드를 상기 사용자 계정의 패스워드로 결정하는 단계를 수행할 수 있다.The password recovery unit estimating a candidate password, generating a candidate key based on the estimated candidate password, applying the candidate key to an alternative encryption algorithm, and applying the candidate key to a specific block of the first encrypted file or the second encrypted file Decrypting and determining the candidate password as the password of the user account when the data obtained as a result of decrypting the specific block matches fixed data related to the first encrypted file or the second encrypted file. Can be done.

실시예들 중에서, 종단간 암호화가 적용된 파일에 대한 복호화 방법은 사용자 계정에 관한 개인키 및 공개키를 저장하는 제1 암호화 파일을 복호화하는 단계, 상기 제1 암호화 파일에 대한 복호화 결과를 기초로 상기 사용자 계정의 메시지를 암호화하기 위한 대칭키를 저장하는 제2 암호화 파일을 복호화하는 단계 및 상기 제2 암호화 파일에 대한 복호화 결과를 기초로 상기 사용자 계정의 메시지를 저장하는 제3 암호화 파일을 복호화하는 단계를 포함한다.Among embodiments, the decryption method for a file to which end-to-end encryption is applied includes decrypting a first encrypted file storing a private key and a public key for a user account, based on the decryption result of the first encrypted file. Decrypting a second encrypted file storing a symmetric key for encrypting a message of a user account, and decrypting a third encrypted file storing a message of the user account based on the decryption result of the second encrypted file Includes.

개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technology can have the following effects. However, since it does not mean that a specific embodiment should include all of the following effects or only the following effects, it should not be understood that the scope of the rights of the disclosed technology is limited thereby.

본 발명의 일 실시예에 따른 종단간 암호화가 적용된 파일에 대한 복호화 장치 및 방법은 원본 데이터의 훼손없이 증거 수집 및 사건 재구성이 가능하며 용의자가 패스워드를 제공하지 않는 경우에도 패스워드를 복구하여 증거 수집이 가능할 수 있다.The apparatus and method for decrypting a file to which end-to-end encryption according to an embodiment of the present invention is capable of collecting evidence and reconfiguring events without damaging the original data, and recovering the password even if the suspect does not provide the password to collect evidence. It can be possible.

본 발명의 일 실시예에 따른 종단간 암호화가 적용된 파일에 대한 복호화 장치 및 방법은 사용자의 민감한 데이터를 순차적으로 복구하고 이를 토대로 사용자 패스워드를 최종 복구할 수 있다.The apparatus and method for decrypting a file to which end-to-end encryption is applied according to an embodiment of the present invention may sequentially recover user's sensitive data and finally recover a user password based on this.

도 1은 본 발명에 따른 종단간 암호화가 적용된 파일에 대한 복호화 시스템의 구성을 설명하는 도면이다.
도 2는 도 1에 있는 복호화 장치의 물리적 구성을 설명하는 블록도이다.
도 3은 도 1에 있는 복호화 장치의 기능적 구성을 설명하는 블록도이다.
도 4는 도 1에 있는 복호화 장치에서 수행되는 종단간 암호화가 적용된 파일에 대한 복호화 과정을 설명하는 순서도이다.
도 5는 암호화 파일의 고정 데이터 및 패스워드 복구 알고리즘의 일 실시예를 설명하는 예시도이다.
도 6은 본 발명의 일 실시예에 따른 종단간 암호화가 적용된 파일에 대한 복호화 과정을 설명하는 순서도이다.
1 is a diagram illustrating a configuration of a decryption system for a file to which end-to-end encryption is applied according to the present invention.
FIG. 2 is a block diagram illustrating a physical configuration of the decoding apparatus in FIG. 1.
3 is a block diagram illustrating a functional configuration of the decoding apparatus in FIG. 1.
4 is a flowchart illustrating a decryption process for a file to which end-to-end encryption is applied, performed by the decryption apparatus of FIG. 1.
5 is an exemplary diagram illustrating an embodiment of a password recovery algorithm and fixed data of an encrypted file.
6 is a flowchart illustrating a decryption process for a file to which end-to-end encryption is applied according to an embodiment of the present invention.

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.Since the description of the present invention is merely an embodiment for structural or functional description, the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, since the embodiments can be variously changed and have various forms, the scope of the present invention should be understood to include equivalents capable of realizing the technical idea. In addition, since the object or effect presented in the present invention does not mean that a specific embodiment should include all of them or only those effects, the scope of the present invention should not be understood as being limited thereto.

한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of terms described in the present application should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as "first" and "second" are used to distinguish one component from other components, and the scope of rights is not limited by these terms. For example, a first component may be referred to as a second component, and similarly, a second component may be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" to another component, it should be understood that although it may be directly connected to the other component, another component may exist in the middle. On the other hand, when it is mentioned that a certain component is "directly connected" to another component, it should be understood that no other component exists in the middle. On the other hand, other expressions describing the relationship between the constituent elements, that is, "between" and "just between" or "neighboring to" and "directly neighboring to" should be interpreted as well.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions are to be understood as including plural expressions unless the context clearly indicates otherwise, and terms such as “comprise” or “have” refer to implemented features, numbers, steps, actions, components, parts, or It is to be understood that it is intended to designate that a combination exists and does not preclude the presence or addition of one or more other features or numbers, steps, actions, components, parts, or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (for example, a, b, c, etc.) is used for convenience of explanation, and the identification code does not describe the order of each step, and each step has a specific sequence clearly in context. Unless otherwise stated, it may occur differently from the stated order. That is, each of the steps may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be embodied as computer-readable codes on a computer-readable recording medium, and the computer-readable recording medium includes all types of recording devices storing data that can be read by a computer system. . Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. Further, the computer-readable recording medium is distributed over a computer system connected by a network, so that the computer-readable code can be stored and executed in a distributed manner.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the field to which the present invention belongs, unless otherwise defined. Terms defined in commonly used dictionaries should be construed as having meanings in the context of related technologies, and cannot be construed as having an ideal or excessive formal meaning unless explicitly defined in the present application.

도 1은 본 발명에 따른 종단간 암호화가 적용된 파일에 대한 복호화 시스템의 구성을 설명하는 도면이다.1 is a diagram illustrating a configuration of a decryption system for a file to which end-to-end encryption is applied according to the present invention.

도 1을 참조하면, 종단간 암호화가 적용된 파일에 대한 복호화 시스템(100)은 사용자 단말(110), 복호화 장치(130) 및 데이터베이스(150)를 포함할 수 있다.Referring to FIG. 1, a decryption system 100 for a file to which end-to-end encryption is applied may include a user terminal 110, a decryption device 130, and a database 150.

사용자 단말(110)은 메신저를 통해 상대방과 메시지를 주고 받을 수 있는 컴퓨팅 장치에 해당할 수 있고, 스마트폰, 노트북 또는 컴퓨터로 구현될 수 있으며, 반드시 이에 한정되지 않고, 태블릿 PC 등 다양한 디바이스로도 구현될 수 있다. 사용자 단말(110)은 복호화 장치(130)와 네트워크를 통해 연결될 수 있고, 복수의 사용자 단말(110)들은 복호화 장치(130)와 동시에 연결될 수 있다. The user terminal 110 may correspond to a computing device capable of exchanging messages with a counterpart through a messenger, and may be implemented as a smartphone, a laptop computer, or a computer, and is not necessarily limited thereto, and may also be used with various devices such as a tablet PC. Can be implemented. The user terminal 110 may be connected to the decoding device 130 through a network, and a plurality of user terminals 110 may be connected to the decoding device 130 at the same time.

복호화 장치(130)는 사용자 단말(110) 간의 메시지 통신 과정에서 암호화되는 중요 정보를 복호화할 수 있는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 복호화 장치(130)는 사용자 단말(110)과 블루투스, WiFi, 통신망 등을 통해 무선으로 연결될 수 있고, 네트워크를 통해 사용자 단말(110)과 데이터를 주고 받을 수 있다.The decryption apparatus 130 may be implemented as a computer or a server corresponding to a program capable of decrypting important information encrypted during a message communication process between the user terminals 110. The decoding device 130 may be wirelessly connected to the user terminal 110 through Bluetooth, WiFi, a communication network, and the like, and may exchange data with the user terminal 110 through a network.

일 실시예에서, 복호화 장치(130)는 데이터베이스(150)와 연동하여 암호화된 파일을 복호화 하기 위하여 필요한 정보를 저장할 수 있다. 한편, 복호화 장치(130)는 도 1과 달리, 데이터베이스(150)를 내부에 포함하여 구현될 수 있다. 또한, 복호화 장치(130)는 프로세서, 메모리, 사용자 입출력부 및 네트워크 입출력부를 포함하여 구현될 수 있으며, 이에 대해서는 도 2에서 보다 자세히 설명한다.In an embodiment, the decryption device 130 may store information necessary for decrypting an encrypted file in conjunction with the database 150. Meanwhile, unlike FIG. 1, the decoding apparatus 130 may be implemented including the database 150 therein. In addition, the decoding apparatus 130 may be implemented including a processor, a memory, a user input/output unit, and a network input/output unit, which will be described in more detail with reference to FIG. 2.

데이터베이스(150)는 사용자 간에 주고 받은 메시지를 암호화하고 이를 기초로 중요 데이터를 복구하는 과정에서 필요한 다양한 정보들을 저장하는 저장장치에 해당할 수 있다. 데이터베이스(150)는 사용자 단말(110)로부터 상대방과 주고 받은 메시지 정보, 개인 정보 및 암호화에 사용된 대칭키 정보를 저장할 수 있고, 반드시 이에 한정되지 않고, 복호화 장치(130)가 암호화된 파일로부터 복호화하여 원본 메시지를 복구하는 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.The database 150 may correspond to a storage device that stores various information necessary in a process of encrypting messages exchanged between users and restoring important data based on this. The database 150 may store message information, personal information, and symmetric key information used for encryption from the user terminal 110, and is not limited thereto, and the decryption device 130 decrypts it from the encrypted file. Thus, information collected or processed in various forms can be stored in the process of recovering the original message.

도 2는 도 1에 있는 복호화 장치의 물리적 구성을 설명하는 블록도이다.FIG. 2 is a block diagram illustrating a physical configuration of the decoding apparatus in FIG. 1.

도 2를 참조하면, 복호화 장치(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함하여 구현될 수 있다.Referring to FIG. 2, the decoding apparatus 130 may include a processor 210, a memory 230, a user input/output unit 250, and a network input/output unit 270.

프로세서(210)는 사용자들 간의 메시지를 복호화하거나 또는 패스워드를 복구하는 과정에서의 각 동작들을 처리하는 각 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(230)를 관리할 수 있으며, 메모리(230)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄할 수 있다. 프로세서(210)는 복호화 장치(130)의 동작 전반을 제어할 수 있고, 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(210)는 복호화 장치(130)의 CPU(Central Processing Unit)로 구현될 수 있다.The processor 210 can execute each procedure for processing each operation in the process of decrypting messages between users or recovering passwords, and can manage the memory 230 that is read or written throughout the process. , It is possible to schedule a synchronization time between the volatile memory in the memory 230 and the nonvolatile memory. The processor 210 can control the overall operation of the decoding device 130, and is electrically connected to the memory 230, the user input/output unit 250, and the network input/output unit 270 to control data flow between them. have. The processor 210 may be implemented as a CPU (Central Processing Unit) of the decoding device 130.

메모리(230)는 SSD(Solid State Drive) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 복호화 장치(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.The memory 230 may include an auxiliary memory device that is implemented as a nonvolatile memory such as a solid state drive (SSD) or a hard disk drive (HDD), and is used to store all data required for the decryption device 130, and RAM A main memory device implemented with volatile memory such as (Random Access Memory) may be included.

사용자 입출력부(250)는 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함할 수 있다. 예를 들어, 사용자 입출력부(250)는 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(250)는 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 복호화 장치(130)는 서버로서 수행될 수 있다.The user input/output unit 250 may include an environment for receiving a user input and an environment for outputting specific information to a user. For example, the user input/output unit 250 may include an input device including an adapter such as a touch pad, a touch screen, an on-screen keyboard, or a pointing device, and an output device including an adapter such as a monitor or a touch screen. In one embodiment, the user input/output unit 250 may correspond to a computing device connected through a remote connection, and in such a case, the decryption device 130 may be performed as a server.

네트워크 입출력부(270)은 네트워크를 통해 외부 장치 또는 시스템과 연결하기 위한 환경을 포함하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다.The network input/output unit 270 includes an environment for connecting to an external device or system through a network, and includes, for example, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), and a VAN ( Value Added Network) may include an adapter for communication.

도 3은 도 1에 있는 복호화 장치의 기능적 구성을 설명하는 블록도이다.3 is a block diagram illustrating a functional configuration of the decoding apparatus in FIG. 1.

도 3을 참조하면, 복호화 장치(130)는 제1 암호화 파일 복호화부(310), 제2 암호화 파일 복호화부(330), 제3 암호화 파일 복호화부(350), 패스워드 복구부(370) 및 제어부(390)를 포함할 수 있다.3, the decryption device 130 includes a first encrypted file decryption unit 310, a second encrypted file decryption unit 330, a third encrypted file decryption unit 350, a password recovery unit 370, and a control unit. (390) may be included.

제1 암호화 파일 복호화부(310)는 사용자 계정에 관한 개인키 및 공개키를 저장하는 제1 암호화 파일을 복호화할 수 있다. 즉, 제1 암호화 파일 복호화부(310)는 제1 암호화 파일을 복호화하여 사용자 계정별로 고유한 개인키와 공개키를 획득할 수 있다. 제1 암호화 파일 복호화부(310)는 제1 암호화 파일로부터 데이터를 분리하고 복호화키를 생성하여 원본 데이터를 획득할 수 있다.The first encrypted file decryption unit 310 may decrypt a first encrypted file storing a private key and a public key for a user account. That is, the first encrypted file decryption unit 310 may decrypt the first encrypted file to obtain a unique private key and public key for each user account. The first encrypted file decryption unit 310 may obtain original data by separating data from the first encrypted file and generating a decryption key.

또한, 제1 암호화 파일은 사용자 간에 메시지를 주고 받는 애플리케이션에 따라 특정 형식의 파일 이름을 가질 수 있다. 예를 들어, 제1 암호화 파일은 사용자 계정에 연관된 로그인 ID를 파일 이름으로 포함할 수 있다. 또한, 개인키 및 공개키는 메시지 암호화에 사용되는 대칭키, 즉 비밀키를 생성하는데 사용될 수 있다.In addition, the first encrypted file may have a file name of a specific format according to an application that exchanges messages between users. For example, the first encryption file may include a login ID associated with a user account as a file name. In addition, the private key and the public key can be used to generate a symmetric key, that is, a secret key used for message encryption.

제2 암호화 파일 복호화부(330)는 제1 암호화 파일에 대한 복호화 결과를 기초로 사용자 계정의 메시지를 암호화하기 위한 대칭키를 저장하는 제2 암호화 파일을 복호화할 수 있다. 즉, 제2 암호화 파일 복호화부(330)는 제2 암호화 파일을 복호화하여 사용자 계정별로 고유한 대칭키를 획득할 수 있다. 대칭키는 메시지 암호화에 사용되는 비밀키에 해당할 수 있다. 제2 암호화 파일 복호화부(330)는 제2 암호화 파일로부터 데이터를 분리하고 복호화키를 재구성하여 원본 데이터를 획득할 수 있다.The second encrypted file decryption unit 330 may decrypt a second encrypted file storing a symmetric key for encrypting a message of a user account based on the decryption result of the first encrypted file. That is, the second encrypted file decryption unit 330 may obtain a unique symmetric key for each user account by decrypting the second encrypted file. The symmetric key may correspond to a secret key used for message encryption. The second encrypted file decryption unit 330 may obtain original data by separating data from the second encrypted file and reconstructing the decryption key.

일 실시예에서, 제1 및 제2 암호화 파일들은 사용자 계정의 패스워드(password)와 적어도 하나의 중간값을 기초로 각각 생성된 비밀키를 이용하여 암호화된 데이터를 포함하고, 암호화된 데이터는 적어도 하나의 중간값과 순서대로 연접하여 저장될 수 있다. In one embodiment, the first and second encrypted files include data encrypted using a secret key each generated based on a password of a user account and at least one intermediate value, and the encrypted data is at least one It can be concatenated and stored in order with the median value of.

예를 들어, Username.ssi(즉, 제1 암호화 파일)의 원본 데이터는 사용자의 로그인 패스워드를 기반으로 암호화된 후 GNU-Zip에 의해 압축되어 저장될 수 있다. 이 때, 사용된 암호 알고리즘은 AES-256-GCM이며 다음의 수학식 1과 같이 표현될 수 있다.For example, the original data of Username.ssi (ie, the first encrypted file) may be encrypted based on the user's login password and then compressed and stored by GNU-Zip. In this case, the encryption algorithm used is AES-256-GCM and can be expressed as Equation 1 below.

[수학식 1][Equation 1]

Encrypted_Username.ssi = GNU-Zip(AES-256-GCMsecrets-key(Username.ssi))Encrypted_Username.ssi = GNU-Zip(AES-256-GCM secrets-key (Username.ssi))

암호화에 사용된 비밀키(secrets-key)는 사용자의 로그인 패스워드에 특정 값을 연접한 후 PBKDF2-HMAC-SHA256을 1000회 돌려 생성될 수 있고, 다음의 수학식 2로 표현될 수 있다.The secrets-key used for encryption may be generated by concatenating a specific value to the user's login password and then rotating PBKDF2-HMAC-SHA256 1000 times, and may be expressed by Equation 2 below.

[수학식 2][Equation 2]

Secrets-key = PBKDF2((password||identity), salt, iter=1000, HMAC-SHA256)Secrets-key = PBKDF2((password||identity), salt, iter=1000, HMAC-SHA256)

여기에서, 수학식 1에 사용되는 iv값과 수학식 2에 사용되는 salt값은 암호화에 사용되는 중간값으로서 모두 랜덤하게 생성된 16 bytes에 해당할 수 있고, 암호화가 완료된 후 암호화된 데이터의 앞부분에 연접되어 저장될 수 있으며, 다음의 수학식 3과 같이 표현될 수 있다.Here, the iv value used in Equation 1 and the salt value used in Equation 2 are intermediate values used for encryption and may correspond to 16 bytes randomly generated, and the front part of the encrypted data after encryption is completed. It may be connected to and stored, and may be expressed as Equation 3 below.

[수학식 3][Equation 3]

Username.ssi = iv||salt||encrypted_Username.ssiUsername.ssi = iv||salt||encrypted_Username.ssi

또한, Secrets.sss(즉, 제2 암호화 파일)의 원본 데이터는 다음의 수학식 4 내지 6과 같이 표현되는 암호화 과정을 통해 암호화되어 저장될 수 있다.In addition, the original data of Secrets.sss (that is, the second encrypted file) may be encrypted and stored through an encryption process expressed as in Equations 4 to 6 below.

[수학식 4][Equation 4]

Encrypted_secrets.sss = AES-256-GCMsecrets-key(Secrets.sss)Encrypted_secrets.sss = AES-256-GCMsecrets-key(Secrets.sss)

[수학식 5][Equation 5]

Secrets-key = PBKDF2(password, salt, iter=5000, HMAC-SHA256)Secrets-key = PBKDF2(password, salt, iter=5000, HMAC-SHA256)

[수학식 6][Equation 6]

Secrets.sss = iv||salt||encrypted_Secrets.sssSecrets.sss = iv||salt||encrypted_Secrets.sss

따라서, 제2 암호화 파일은 제1 암호화 파일과 비교하여 GNU-zip이 존재하지 않고, 수학식 2의 identity가 존재하지 않고, PBKDF2의 반복 횟수가 다를 수 있다.Accordingly, the second encrypted file may have no GNU-zip, no identity of Equation 2, and a different number of repetitions of PBKDF2 compared to the first encrypted file.

일 실시예에서, 제1 암호화 파일은 제1 암호화 파일이 저장되는 위치에 따라 결정되는 아이엔티티(identity) 값 및 사용자 계정의 패스워드를 연접한 후 적어도 하나의 중간값과 함께 해시 함수를 반복 적용함으로써 생성된 비밀키를 이용하여 암호화된 데이터를 포함할 수 있다. 즉, 수학식 2에서 identity 값은 데이터가 저장되는 위치에 따라 다른 값을 가질 수 있다. 예를 들어, username.ssi 파일이 기기 스토리지 내부에 저장되는 경우 identity = _cache_identity에 해당될 수 있고, 애플리케이션 내부에서 백업 기능을 이용하여 추출한 경우 identity = _export_identity에 해당될 수 있다.In one embodiment, the first encrypted file is concatenated with an identity value determined according to a location where the first encrypted file is stored and a password of a user account, and then repeatedly applied a hash function with at least one median value. Encrypted data may be included using the generated secret key. That is, in Equation 2, the identity value may have a different value depending on the location where data is stored. For example, if the username.ssi file is stored inside the device storage, it may correspond to identity = _cache_identity, and if it is extracted using the backup function inside the application, it may correspond to identity = _export_identity.

일 실시예에서, 제2 암호화 파일은 사용자 계정의 패스워드를 적어도 하나의 중간값과 함께 해시 함수를 반복 적용함으로써 생성된 비밀키를 이용하여 암호화된 데이터를 포함하고, 반복 적용의 횟수는 제1 암호화 파일에 관한 반복 적용의 횟수와 상이할 수 있다. 즉, 제2 암호화 파일은 수학식 5를 통해 비밀키를 생성할 수 있고, 이를 이용하여 수학식 4를 통해 암호화된 데이터를 생성할 수 있다. 특히, 수학식 5에서 비밀키 생성을 위해 해시 함수가 적용되는 반복 횟수는 수학식 2에서 적용되는 반복 횟수와 서로 다를 수 있다.In one embodiment, the second encryption file includes data encrypted using a secret key generated by repeatedly applying a hash function to a password of a user account with at least one intermediate value, and the number of repeated applications is the first encryption It can be different from the number of iterations on the file. That is, the second encrypted file may generate a secret key through Equation 5, and use this to generate encrypted data through Equation 4. In particular, the number of repetitions to which the hash function is applied to generate the secret key in Equation 5 may be different from the number of repetitions applied in Equation 2.

일 실시예에서, 제2 암호화 파일 복호화부(330)는 제2 암호화 파일이 존재하지 않는 경우 제1 암호화 파일의 복호화를 통해 획득한 사용자 계정의 개인키와 사용자 계정과 연관된 상대방의 공개키를 기초로 산출된 중간값에 해시 함수를 적용하여 대칭키를 획득할 수 있다. 예를 들어, Secrets.sss(제2 암호화 파일)에 저장되어 있는 메시지 암호화 용의 비밀키는 자기 자신의 개인키와 대화를 나누는 상대방의 공개키를 ECDH알고리즘을 통해 생성 후 SHA256으로 해싱한 값에 해당할 수 있으며, 다음의 수학식 7 및 8과 같이 표현될 수 있다.In one embodiment, the second encrypted file decryption unit 330 is based on the private key of the user account obtained through decryption of the first encrypted file and the public key of the other party associated with the user account when the second encrypted file does not exist. The symmetric key can be obtained by applying a hash function to the median value calculated by. For example, the secret key for message encryption stored in Secrets.sss (the second encryption file) is the value of the hashed value with SHA256 after generating the public key of the other party with whom the conversation is made through the ECDH algorithm. It may correspond to, and may be expressed as Equations 7 and 8 below.

[수학식 7][Equation 7]

Sharing-secrets = MyPrivateKey * OtherPublicKeySharing-secrets = MyPrivateKey * OtherPublicKey

[수학식 8][Equation 8]

Message-Enc/Decrypt-Key = SHA256(sharing-secrets)Message-Enc/Decrypt-Key = SHA256 (sharing-secrets)

일 실시예에서, 제2 암호화 파일 복호화부(330)는 제2 암호화 파일에 대한 복호화를 통해 해시맵(hashmap) 객체를 획득하는 단계, 해시맵 객체를 파싱하여 키(key)의 시작지점을 결정하는 단계 및 키와 밸류(value)를 분리하는 구분자(seperator)를 검색하여 사용자 계정별 대칭키를 획득하는 단계를 수행할 수 있다.In one embodiment, the second encrypted file decryption unit 330 obtains a hashmap object through decryption of the second encrypted file, parses the hashmap object to determine the starting point of the key A step of obtaining a symmetric key for each user account by searching for a separator separating a key and a value may be performed.

예를 들어, 제2 암호화 파일 복호화부(330)에 의해 획득된 데이터는 JAVA Hashmap Object의 형식으로 생성될 수 있으며, 그 Key 값은 사용자 id와 상대방 id, 각 사용자의 애플리케이션 버전 등 복합적인 데이터로 구성될 수 있으며, 그에 해당하는 Value 값은 메시지 암호화에 사용되는 비밀키에 해당할 수 있다. 제2 암호화 파일 복호화부(330) JAVA Hashmap Object의 key의 시작 지점을 모두 파싱할 수 있고, key와 value를 구분하는 값을 찾아(예를 들어, 0x00000020) 사용자 별로 메시지 암호화에 사용하는 키를 획득할 수 있다.For example, the data obtained by the second encrypted file decryption unit 330 may be generated in the form of a JAVA Hashmap Object, and the key value is a complex data such as a user id, a counterpart id, and an application version of each user. It can be configured, and the corresponding Value value can correspond to a secret key used for message encryption. The second encryption file decryption unit 330 can parse all the starting points of the keys of the JAVA Hashmap Object, find a value that separates the key and the value (for example, 0x00000020) to obtain a key used for message encryption for each user can do.

제3 암호화 파일 복호화부(350)는 제2 암호화 파일에 대한 복호화 결과를 기초로 사용자 계정의 메시지를 저장하는 제3 암호화 파일을 복호화할 수 있다. 즉, 제3 암호화 파일 복호화부(350)는 제2 암호화 파일 복호화부(330)에 의해 획득한 대칭키를 이용하여 암호화 과정의 역순으로 동작하는 복호화를 수행함으로써 사용자 계정에 의해 주고 받은 원본 메시지에 관한 정보를 획득할 수 있다.The third encrypted file decryption unit 350 may decrypt the third encrypted file storing the message of the user account based on the decryption result of the second encrypted file. That is, the third encrypted file decryption unit 350 uses the symmetric key obtained by the second encrypted file decryption unit 330 to perform decryption that operates in the reverse order of the encryption process, so that the original message sent and received by the user account You can get information about it.

예를 들어, Message.sss(즉, 제3 암호화 파일)은 GNU-zip에 의해 압축되어 있는 파일로 압축 해제시 메시지인 Data를 제외한 모든 데이터가 평문으로 존재할 수 있다. 다만, 복호화에 필요한 IV값은 Base64Encoded되어 저장될 수 있다. 암호화된 메시지(Data)는 (암호화된 메시지||인증자)를 Base64로 인코딩한 데이터로 원본 데이터 획득 방법은 다음의 수학식 9와 같이 표현될 수 있다.For example, Message.sss (that is, the third encrypted file) is a file compressed by GNU-zip, and when decompressed, all data except for the message, Data, may exist in plain text. However, the IV value required for decoding may be Base64 Encoded and stored. The encrypted message (Data) is Base64-encoded data of (encrypted message || authenticator), and a method of obtaining the original data may be expressed as Equation 9 below.

[수학식 9][Equation 9]

Original-Message=AES-256-GCMkey(Base64Decode(Data), Base64Decode(IV), mode=decryption)Original-Message=AES-256-GCM key (Base64Decode(Data), Base64Decode(IV), mode=decryption)

일 실시예에서, 제3 암호화 파일 복호화부(350)는 제3 암호화 파일에 저장된 메시지의 타입(type)을 판별하고 메시지의 타입에 따라 암호화된 메시지를 복호화하여 원본 데이터를 획득할 수 있다. 예를 들어, 제3 암호화 파일 복호화부(350)는 제3 암호화 파일 내에 같이 저장되어 있는 MimeType 변수를 통해 메시지 타입을 판별할 수 있다.In an embodiment, the third encrypted file decryption unit 350 may determine the type of a message stored in the third encrypted file and obtain original data by decrypting the encrypted message according to the message type. For example, the third encrypted file decryption unit 350 may determine the message type through the MimeType variable stored in the third encrypted file.

일 실시예에서, 제3 암호화 파일 복호화부(350)는 메시지의 타입이 미디어(media)인 경우 데이터 링크(link)를 통해 암호화된 메시지를 다운로드한 후 복호화를 수행하고, 메시지의 타입이 지아이에프(gif)인 경우 암호화된 메시지를 복호화한 결과로서 획득한 데이터 링크를 통해 원본 데이터를 다운로드할 수 있다.In one embodiment, the third encrypted file decryption unit 350 downloads the encrypted message through a data link and then performs decryption when the message type is media, and the message type is GIF. In the case of (gif), the original data can be downloaded through the data link obtained as a result of decrypting the encrypted message.

보다 구체적으로, 제3 암호화 파일 복호화부(350)는 사진 및 음성녹음의 경우 Data에 URL이 저장되어 있으므로 해당 URL로부터 데이터를 다운로드한 후 수학식 9를 통해 복호화를 수행할 수 있고, GIF 이미지의 경우 Data를 복호화하면 URL이 나타나며 URL로부터 데이터를 다운로드함으로써 원본 파일을 획득할 수 있다.More specifically, in the case of photo and voice recording, since the URL is stored in the data, the third encrypted file decryption unit 350 may perform decryption through Equation 9 after downloading the data from the corresponding URL. In this case, when the data is decrypted, the URL appears, and the original file can be obtained by downloading the data from the URL.

패스워드 복구부(370)는 제1 암호화 파일 또는 제2 암호화 파일을 이용하여 사용자 계정의 패스워드를 복구할 수 있다. 예를 들어, 로그인 패스워드를 복구하기 위해서는 암호화된 Username.s냐 또는 Secrets.sss가 필요하며 Username.ssi를 사용시 Secrets.sss에 비해 약 5배 빠른 복구가 가능할 수 있다.The password recovery unit 370 may recover the password of the user account by using the first encrypted file or the second encrypted file. For example, an encrypted Username.s or Secrets.sss is required to recover a login password, and when Username.ssi is used, recovery may be about 5 times faster than Secrets.sss.

일 실시예에서, 패스워드 복구부(370)는 후보 패스워드를 추정하는 단계, 추정된 후보 패스워드를 기초로 후보키를 생성하는 단계, 후보키를 대체 암호 알고리즘에 적용하여 제1 암호화 파일 또는 제2 암호화 파일의 특정 블록을 복호화하는 단계 및 특정 블록에 대한 복호화 결과로서 획득한 데이터가 제1 암호화 파일 또는 제2 암호화 파일에 관한 고정 데이터와 일치하는 경우 후보 패스워드를 사용자 계정의 패스워드로 결정하는 단계를 수행할 수 있다. 이에 대해서는 도 5에서 보다 자세히 설명한다.In one embodiment, the password recovery unit 370 includes estimating a candidate password, generating a candidate key based on the estimated candidate password, applying the candidate key to an alternative encryption algorithm to encrypt a first encrypted file or a second encryption. Decrypting a specific block of the file and determining a candidate password as the password of the user account when the data obtained as a result of decrypting the specific block matches fixed data related to the first encrypted file or the second encrypted file can do. This will be described in more detail in FIG. 5.

제어부(390)는 복호화 장치(130)의 전체적인 동작을 제어하고, 제1 암호화 파일 복호화부(310), 제2 암호화 파일 복호화부(330), 제3 암호화 파일 복호화부(350) 및 패스워드 복구부(370) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.The control unit 390 controls the overall operation of the decryption device 130, and the first encrypted file decryption unit 310, the second encrypted file decryption unit 330, the third encrypted file decryption unit 350, and the password recovery unit Control flow or data flow between 370 may be managed.

도 4는 도 1에 있는 복호화 장치에서 수행되는 종단간 암호화가 적용된 파일에 대한 복호화 과정을 설명하는 순서도이다.4 is a flowchart illustrating a decryption process for a file to which end-to-end encryption is applied, performed by the decryption apparatus of FIG. 1.

도 4를 참조하면, 복호화 장치(130)는 제1 암호화 파일 복호화부(310)를 통해 사용자 계정에 관한 개인키 및 공개키를 저장하는 제1 암호화 파일을 복호화할 수 있다(단계 S410). 복호화 장치(130)는 제2 암호화 파일 복호화부(330)를 통해 제1 암호화 파일에 대한 복호화 결과를 기초로 사용자 계정의 메시지를 암호화하기 위한 대칭키를 저장하는 제2 암호화 파일을 복호화할 수 있다(단계 S430).Referring to FIG. 4, the decryption device 130 may decrypt a first encrypted file storing a private key and a public key for a user account through the first encrypted file decryption unit 310 (step S410). The decryption device 130 may decrypt a second encrypted file storing a symmetric key for encrypting a message of a user account based on the decryption result of the first encrypted file through the second encrypted file decryption unit 330 (Step S430).

또한, 복호화 장치(130)는 제3 암호화 파일 복호화부(350)를 통해 제2 암호화 파일에 대한 복호화 결과를 기초로 사용자 계정의 메시지를 저장하는 제3 암호화 파일을 복호화할 수 있다(단계 S450). 복호화 장치(130)는 패스워드 복구부(370)를 통해 제1 암호화 파일 또는 제2 암호화 파일을 이용하여 사용자 계정의 패스워드를 복구할 수 있다(단계 S470).In addition, the decryption apparatus 130 may decrypt a third encrypted file storing a message of the user account based on the decryption result for the second encrypted file through the third encrypted file decryption unit 350 (step S450). . The decryption device 130 may recover the password of the user account by using the first encrypted file or the second encrypted file through the password recovery unit 370 (step S470).

도 5는 암호화 파일의 고정 데이터 및 패스워드 복구 알고리즘의 일 실시예를 설명하는 예시도이다.5 is an exemplary diagram illustrating an embodiment of a password recovery algorithm and fixed data of an encrypted file.

도 5를 참조하면, 복호화된 제1 암호화 파일(Username.ssi) 및 제2 암호화 파일(Secrets.sss)에는 도 5의 그림 (a)와 같은 고정 데이터가 존재할 수 있다. 두 데이터를 암호화하는데 사용되는 AES-256-GCM는 암호화와 무결성 보장을 동시에 제공하기 위해 생성된 모드로 실제로 암호화에 사용된 알고리즘은 AES-256-CTR모드와 동일할 수 있다.Referring to FIG. 5, fixed data as illustrated in (a) of FIG. 5 may exist in the decrypted first encrypted file (Username.ssi) and the second encrypted file (Secrets.sss). AES-256-GCM, which is used to encrypt two data, is a mode created to provide both encryption and integrity guarantee at the same time, and the algorithm actually used for encryption may be the same as the AES-256-CTR mode.

따라서, 사용자 로그인 패스워드를 추측한 후, 수학식 2 또는 수학식 5에 의해 생성된 키와 AES-256-CTR모드를 사용하여, 암호화된 Username.ssi 또는 Secrets.sss의 1블록(16bytes)를 복호화한 결과가 그림 (a)의 고정 데이터와 일치한다면, 올바른 패스워드를 찾아낸 것으로 볼 수 있다.Therefore, after guessing the user login password, one block (16 bytes) of the encrypted Username.ssi or Secrets.sss is decrypted using the key generated by Equation 2 or Equation 5 and the AES-256-CTR mode. If one result matches the fixed data in Figure (a), it can be seen that the correct password has been found.

단, AES-256-CTR모드에 사용되는 IV는 AES-256-GCM에 사용된 IV와는 다르며, AES-256-GCM에 사용된 IV를 GHASH 알고리즘을 통해 변형한 IV(Counter) 값에 해당할 수 있다. 도 5의 그림 (b)는 상세한 로그인 패스워드 복구 알고리즘에 해당할 수 있다.However, the IV used in AES-256-CTR mode is different from the IV used in AES-256-GCM, and may correspond to the IV (Counter) value transformed through the GHASH algorithm of the IV used in AES-256-GCM. have. Figure 5 (b) may correspond to a detailed login password recovery algorithm.

도 6은 본 발명의 일 실시예에 따른 종단간 암호화가 적용된 파일에 대한 복호화 과정을 설명하는 순서도이다.6 is a flowchart illustrating a decryption process for a file to which end-to-end encryption is applied according to an embodiment of the present invention.

도 6을 참조하면, 복호화 장치(130)는 복호화 하려고 하는 message.sss 파일을 선택하여 메시지 복호화를 시작할 수 있다. 복호화 장치(130)는 데이터 복호화 작업에 필요한 [Username].ssi 및 secret.sss 파일이 존재하는지를 확인한 뒤 모두 존재하지 않으면 작업을 종료할 수 있다. 만약 패스워드를 알지 못하는 경우 복호화 장치(130)는 알고리즘 10에서 패스워드를 복구할 수 있다. 복호화 장치(130)는 [Username].ssi를 이용한 복구방법이 더 효율적이기 때문에 이 방법을 우선하여 적용할 수 있다.Referring to FIG. 6, the decoding apparatus 130 may start message decoding by selecting a message.sss file to be decoded. The decryption apparatus 130 may check whether the [Username].ssi and secret.sss files required for the data decryption operation exist and terminate the operation if none of the [Username].ssi and secret.sss files exist. If the password is not known, the decryption device 130 may recover the password in algorithm 10. Since the recovery method using [Username].ssi is more efficient, the decoding apparatus 130 may preferentially apply this method.

또한, 복호화 장치(130)는 복구한 패스워드를 바탕으로 secret.sss를 복호화하여 메시지 암호화에 사용된 대칭키를 복구할 수 있다. 복호화 장치(130)는 secret.sss가 없는 경우 복호화된 [Username].ssi를 기초로 알고리즘 7, 8을 통해 대칭키를 유도하여 복구할 수 있다.In addition, the decryption apparatus 130 may decrypt secret.sss based on the recovered password to recover the symmetric key used for message encryption. If there is no secret.sss, the decryption apparatus 130 may derive and recover a symmetric key through algorithms 7 and 8 based on the decrypted [Username].ssi.

마지막으로, 복호화 장치(130)는 복구된 대칭키와 메시지에 남아있는 IV 정보를 이용하여 AES-256-GCM 알고리즘을 통해 데이터를 복호화함으로써 원본 메시지를 획득할 수 있다. 복호화 장치(130)는 미디어의 종류에 따라 링크로부터 데이터를 다운로드할 필요가 있는 경우 추가 과정을 수행할 수 있다. 만약 추가적으로 누락된 Message ID가 존재한다면 복호화 장치(130)는 캐시 데이터를 기초로 미디어 데이터에 한정하여 데이터를 복구할 수 있다. 이 경우, 복호화 장치(130)는 알고리즘 11을 이용하여 사용된 IV를 복구할 수 있다.Finally, the decryption apparatus 130 may obtain the original message by decrypting the data through the AES-256-GCM algorithm using the recovered symmetric key and the IV information remaining in the message. The decoding apparatus 130 may perform an additional process when it is necessary to download data from a link according to the type of media. If there is an additional missing Message ID, the decoding apparatus 130 may recover data by limiting to media data based on the cache data. In this case, the decoding apparatus 130 may recover the used IV by using the algorithm 11.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to preferred embodiments of the present invention, those skilled in the art will variously modify and change the present invention within the scope not departing from the spirit and scope of the present invention described in the following claims. You will understand that you can do it.

100: 종단간 암호화가 적용된 파일에 대한 복호화 시스템
110: 사용자 단말 130: 복호화 장치
150: 데이터베이스
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: 제1 암호화 파일 복호화부 330: 제2 암호화 파일 복호화부
350: 제3 암호화 파일 복호화부 370: 패스워드 복구부
390: 제어부
100: decryption system for files with end-to-end encryption applied
110: user terminal 130: decoding device
150: database
210: processor 230: memory
250: user input/output unit 270: network input/output unit
310: first encrypted file decryption unit 330: second encrypted file decryption unit
350: third encrypted file decryption unit 370: password recovery unit
390: control unit

Claims (11)

사용자 계정에 관한 개인키 및 공개키를 저장하는 제1 암호화 파일을 복호화하는 제1 암호화 파일 복호화부;
상기 제1 암호화 파일에 대한 복호화 결과를 기초로 상기 사용자 계정의 메시지를 암호화하기 위한 대칭키를 저장하는 제2 암호화 파일을 복호화하는 제2 암호화 파일 복호화부; 및
상기 제2 암호화 파일에 대한 복호화 결과를 기초로 상기 사용자 계정의 메시지를 저장하는 제3 암호화 파일을 복호화하는 제3 암호화 파일 복호화부를 포함하되,
상기 제2 암호화 파일 복호화부는 상기 제2 암호화 파일에 대한 복호화를 통해 해시맵(hashmap) 객체를 획득하는 단계, 상기 해시맵 객체를 파싱하여 키(key)의 시작지점을 결정하는 단계 및, 키와 밸류(value)를 분리하는 구분자(seperator)를 검색하여 사용자 계정별 대칭키를 획득하는 단계를 수행하는 것을 특징으로 하는 종단간(end to end) 암호화가 적용된 파일에 대한 복호화 장치.
A first encrypted file decryption unit for decrypting a first encrypted file storing a private key and a public key for a user account;
A second encrypted file decryption unit for decrypting a second encrypted file storing a symmetric key for encrypting a message of the user account based on the decryption result of the first encrypted file; And
A third encrypted file decryption unit for decrypting a third encrypted file storing a message of the user account based on a result of decrypting the second encrypted file,
The second encrypted file decryption unit obtains a hashmap object through decryption of the second encrypted file, parsing the hashmap object to determine a starting point of a key, and A decryption apparatus for a file to which end to end encryption is applied, characterized in that performing the step of obtaining a symmetric key for each user account by searching for a separator separating a value.
제1항에 있어서,
상기 제1 및 제2 암호화 파일들은 상기 사용자 계정의 패스워드(password)와 적어도 하나의 중간값을 기초로 각각 생성된 비밀키를 이용하여 암호화된 데이터를 포함하고,
상기 암호화된 데이터는 상기 적어도 하나의 중간값과 순서대로 연접하여 저장되는 것을 특징으로 하는 종단간 암호화가 적용된 파일에 대한 복호화 장치.
The method of claim 1,
The first and second encrypted files include data encrypted using a secret key each generated based on a password of the user account and at least one intermediate value,
The decryption apparatus for a file to which end-to-end encryption is applied, wherein the encrypted data is concatenated and stored in order with the at least one intermediate value.
제2항에 있어서, 상기 제1 암호화 파일은
상기 제1 암호화 파일이 저장되는 위치에 따라 결정되는 아이덴티티(identity) 값 및 상기 사용자 계정의 패스워드를 연접한 후 상기 적어도 하나의 중간값과 함께 해시 함수를 반복 적용함으로써 생성된 비밀키를 이용하여 암호화된 데이터를 포함하는 것을 종단간 암호화가 적용된 파일에 대한 복호화 장치.
The method of claim 2, wherein the first encrypted file
Encrypt using a secret key generated by repetitively applying a hash function with the at least one intermediate value after concatenating an identity value determined according to the location where the first encrypted file is stored and the password of the user account A decryption device for a file to which end-to-end encryption has been applied, including the encrypted data.
제3항에 있어서,
상기 제2 암호화 파일은 상기 사용자 계정의 패스워드를 상기 적어도 하나의 중간값과 함께 해시 함수를 반복 적용함으로써 생성된 비밀키를 이용하여 암호화된 데이터를 포함하고,
상기 반복 적용의 횟수는 상기 제1 암호화 파일에 관한 반복 적용의 횟수와 상이한 것을 특징으로 하는 종단간 암호화가 적용된 파일에 대한 복호화 장치.
The method of claim 3,
The second encrypted file includes data encrypted using a secret key generated by repeatedly applying a hash function to the password of the user account with the at least one intermediate value,
The number of times of repeated application is different from the number of times of repeated application of the first encrypted file.
제1항에 있어서, 상기 제2 암호화 파일 복호화부는
상기 제2 암호화 파일이 존재하지 않는 경우 상기 제1 암호화 파일의 복호화를 통해 획득한 상기 사용자 계정의 개인키와 상기 사용자 계정과 연관된 상대방의 공개키를 기초로 산출된 중간값에 해시 함수를 적용하여 상기 대칭키를 획득하는 것을 특징으로 하는 종단간 암호화가 적용된 파일에 대한 복호화 장치.
The method of claim 1, wherein the second encrypted file decryption unit
If the second encrypted file does not exist, a hash function is applied to the median value calculated based on the private key of the user account obtained through decryption of the first encrypted file and the public key of the other party associated with the user account. A decryption apparatus for a file to which end-to-end encryption is applied, wherein the symmetric key is obtained.
삭제delete 제1항에 있어서, 상기 제3 암호화 파일 복호화부는
상기 제3 암호화 파일에 저장된 메시지의 타입(type)을 판별하고 상기 메시지의 타입에 따라 암호화된 메시지를 복호화하여 원본 데이터를 획득하는 것을 특징으로 하는 종단간 암호화가 적용된 파일에 대한 복호화 장치.
The method of claim 1, wherein the third encrypted file decryption unit
A decryption apparatus for a file to which end-to-end encryption is applied, characterized in that for determining a type of message stored in the third encrypted file and decrypting the encrypted message according to the type of the message to obtain original data.
제7항에 있어서, 상기 제3 암호화 파일 복호화부는
상기 메시지의 타입이 미디어(media)인 경우 데이터 링크(link)를 통해 상기 암호화된 메시지를 다운로드한 후 복호화를 수행하고,
상기 메시지의 타입이 지아이에프(gif)인 경우 상기 암호화된 메시지를 복호화한 결과로서 획득한 데이터 링크를 통해 상기 원본 데이터를 다운로드하는 것을 특징으로 하는 종단간 암호화가 적용된 파일에 대한 복호화 장치.
The method of claim 7, wherein the third encrypted file decryption unit
When the message type is media, decryption is performed after downloading the encrypted message through a data link,
When the type of the message is gif, the decryption apparatus for a file to which end-to-end encryption is applied, wherein the original data is downloaded through a data link obtained as a result of decrypting the encrypted message.
제1항에 있어서,
상기 제1 암호화 파일 또는 상기 제2 암호화 파일을 이용하여 상기 사용자 계정의 패스워드를 복구하는 패스워드 복구부를 더 포함하는 것을 특징으로 하는 종단간 암호화가 적용된 파일에 대한 복호화 장치.
The method of claim 1,
The decryption apparatus for a file to which end-to-end encryption is applied, further comprising a password recovery unit for recovering a password of the user account using the first encrypted file or the second encrypted file.
제9항에 있어서, 상기 패스워드 복구부는
후보 패스워드를 추정하는 단계;
추정된 상기 후보 패스워드를 기초로 후보키를 생성하는 단계;
상기 후보키를 대체 암호 알고리즘에 적용하여 상기 제1 암호화 파일 또는 상기 제2 암호화 파일의 특정 블록을 복호화하는 단계; 및
상기 특정 블록에 대한 복호화 결과로서 획득한 데이터가 상기 제1 암호화 파일 또는 상기 제2 암호화 파일에 관한 고정 데이터와 일치하는 경우 상기 후보 패스워드를 상기 사용자 계정의 패스워드로 결정하는 단계를 수행하는 것을 특징으로 하는 종단간 암호화가 적용된 파일에 대한 복호화 장치.
The method of claim 9, wherein the password recovery unit
Estimating a candidate password;
Generating a candidate key based on the estimated candidate password;
Decoding a specific block of the first encrypted file or the second encrypted file by applying the candidate key to an alternative encryption algorithm; And
When the data obtained as a result of the decryption of the specific block coincides with the fixed data of the first encrypted file or the second encrypted file, determining the candidate password as the password of the user account. Decryption device for files with end-to-end encryption applied.
종단간(end to end) 암호화가 적용된 파일에 대한 복호화 장치에서 수행되는 복호화 방법에 있어서,
사용자 계정에 관한 개인키 및 공개키를 저장하는 제1 암호화 파일을 복호화하는 단계;
상기 제1 암호화 파일에 대한 복호화 결과를 기초로 상기 사용자 계정의 메시지를 암호화하기 위한 대칭키를 저장하는 제2 암호화 파일을 복호화하는 단계; 및
상기 제2 암호화 파일에 대한 복호화 결과를 기초로 상기 사용자 계정의 메시지를 저장하는 제3 암호화 파일을 복호화하는 단계를 포함하되,
상기 제2 암호화 파일을 복호화하는 단계는 상기 제2 암호화 파일에 대한 복호화를 통해 해시맵(hashmap) 객체를 획득하는 단계, 상기 해시맵 객체를 파싱하여 키(key)의 시작지점을 결정하는 단계 및, 키와 밸류(value)를 분리하는 구분자(seperator)를 검색하여 사용자 계정별 대칭키를 획득하는 단계를 포함하는 것을 특징으로 하는 종단간 암호화가 적용된 파일에 대한 복호화 방법.
In the decryption method performed in a decryption apparatus for a file to which end to end encryption is applied,
Decrypting a first encrypted file storing a private key and a public key for a user account;
Decrypting a second encrypted file storing a symmetric key for encrypting a message of the user account based on the decryption result of the first encrypted file; And
Including the step of decrypting a third encrypted file storing the message of the user account based on the decryption result of the second encrypted file,
The decrypting the second encrypted file includes obtaining a hashmap object through decryption of the second encrypted file, parsing the hashmap object to determine a starting point of a key, and , A method for decrypting a file to which end-to-end encryption is applied, comprising the step of obtaining a symmetric key for each user account by searching for a separator separating a key and a value.
KR1020190062397A 2019-05-28 2019-05-28 Apparatus and method for decrypting end-to-end encrypted files KR102216869B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190062397A KR102216869B1 (en) 2019-05-28 2019-05-28 Apparatus and method for decrypting end-to-end encrypted files

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190062397A KR102216869B1 (en) 2019-05-28 2019-05-28 Apparatus and method for decrypting end-to-end encrypted files

Publications (2)

Publication Number Publication Date
KR20200136629A KR20200136629A (en) 2020-12-08
KR102216869B1 true KR102216869B1 (en) 2021-02-17

Family

ID=73779154

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190062397A KR102216869B1 (en) 2019-05-28 2019-05-28 Apparatus and method for decrypting end-to-end encrypted files

Country Status (1)

Country Link
KR (1) KR102216869B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113032802B (en) * 2021-03-09 2023-09-19 航天信息股份有限公司 Data security storage method and system
CN116192365B (en) * 2023-01-18 2024-03-22 无锡航天江南数据系统科技有限公司 PPP-B2B signal transmission method and system based on text service system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013235465A (en) * 2012-05-10 2013-11-21 Hitachi Ltd File processing system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100642978B1 (en) * 2002-04-22 2006-11-10 소프트포럼 주식회사 key management method, and method for the same
KR20060081337A (en) * 2005-01-07 2006-07-12 엘지전자 주식회사 Encryption and decryption method using a secret key
KR100666708B1 (en) 2005-11-09 2007-01-09 주식회사 케이티프리텔 Device and method for transmitting mobile terminated message in open mobile business supporting system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013235465A (en) * 2012-05-10 2013-11-21 Hitachi Ltd File processing system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Myungseo Park 외 2명, How to decrypt PIN-Based encrypted backup data of Samsung smartphones, ELSEVIER, Digital Investigation, Vol.26 (2018.)*

Also Published As

Publication number Publication date
KR20200136629A (en) 2020-12-08

Similar Documents

Publication Publication Date Title
EP3291481B1 (en) Decrypting encrypted data on an electronic device
CN109150519B (en) Anti-quantum computing cloud storage security control method and system based on public key pool
US20160211976A1 (en) Secure storage for shared documents
CN106599723B (en) File encryption method and device and file decryption method and device
WO2015188277A1 (en) Methods, systems and computer program product for providing encryption on a plurality of devices
CN110084599B (en) Key processing method, device, equipment and storage medium
CN111385084A (en) Key management method and device for digital assets and computer readable storage medium
US20200195433A1 (en) System and method for secure sensitive data storage and recovery
WO2018049601A1 (en) Outsourcing access control method for fog computing and system thereof
CN111404953A (en) Message encryption method, message decryption method, related devices and related systems
KR102216869B1 (en) Apparatus and method for decrypting end-to-end encrypted files
WO2019120038A1 (en) Encrypted storage of data
Park et al. A methodology for the decryption of encrypted smartphone backup data on android platform: A case study on the latest samsung smartphone backup system
Hur et al. Data acquisition methods using backup data decryption of Sony smartphones
CN111639357A (en) Encryption network disk system and authentication method and device thereof
CN112818404B (en) Data access permission updating method, device, equipment and readable storage medium
TW201608412A (en) Agent for providing security cloud service and security token device for security cloud service
CN112702582B (en) Secure transmission method and device for monitoring video based on SM2
GB2488753A (en) Encrypted communication
JP4684714B2 (en) File management system and program
KR102244504B1 (en) Apparatus and method for recovering deleted message using cache file
CN112199730A (en) Method and device for processing application data on terminal and electronic equipment
JP6369554B2 (en) Analysis system, analysis method, and analysis program
CN109412788B (en) Anti-quantum computing agent cloud storage security control method and system based on public key pool
Beugin et al. Building a privacy-preserving smart camera system

Legal Events

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