KR102620855B1 - Dynamic update method for encrypted contents in cloud environment and cloud server - Google Patents

Dynamic update method for encrypted contents in cloud environment and cloud server Download PDF

Info

Publication number
KR102620855B1
KR102620855B1 KR1020210127904A KR20210127904A KR102620855B1 KR 102620855 B1 KR102620855 B1 KR 102620855B1 KR 1020210127904 A KR1020210127904 A KR 1020210127904A KR 20210127904 A KR20210127904 A KR 20210127904A KR 102620855 B1 KR102620855 B1 KR 102620855B1
Authority
KR
South Korea
Prior art keywords
link information
block
blocks
specific block
cloud server
Prior art date
Application number
KR1020210127904A
Other languages
Korean (ko)
Other versions
KR20230045267A (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 KR1020210127904A priority Critical patent/KR102620855B1/en
Publication of KR20230045267A publication Critical patent/KR20230045267A/en
Application granted granted Critical
Publication of KR102620855B1 publication Critical patent/KR102620855B1/en

Links

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/602Providing cryptographic facilities or services
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

개시된 기술은 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버에 관한 것으로, 클라우드 서버가 입력되는 콘텐츠를 복수개의 블록들로 구분하는 단계; 상기 클라우드 서버가 상기 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성하는 단계; 상기 클라우드 서버가 상기 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 암호화하는 단계; 및 상기 클라우드 서버가 상기 복수의 블록들 중 일부의 블록에 대한 갱신 요청을 수신하면 상기 갱신되는 일부의 블록 및 상기 일부의 블록을 연결하는 링크정보를 이용하여 상기 일부의 블록만 갱신하는 단계;를 포함한다.The disclosed technology relates to a dynamic update method of encrypted content in a cloud environment and a cloud server, comprising: dividing input content into a plurality of blocks by the cloud server; The cloud server generating a plurality of link information connecting adjacent blocks among the plurality of blocks; Encrypting, by the cloud server, each of the plurality of blocks using data included in the block and a portion of link information on both sides connected to the block; And when the cloud server receives an update request for some of the blocks among the plurality of blocks, updating only some of the blocks using the updated partial blocks and link information connecting the partial blocks. Includes.

Description

클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버 {DYNAMIC UPDATE METHOD FOR ENCRYPTED CONTENTS IN CLOUD ENVIRONMENT AND CLOUD SERVER}Dynamic update method of encrypted content in a cloud environment and cloud server {DYNAMIC UPDATE METHOD FOR ENCRYPTED CONTENTS IN CLOUD ENVIRONMENT AND CLOUD SERVER}

개시된 기술은 클라우드 환경에서 콘텐츠를 암호화한 상태로 업데이트하는 방법 및 암호화된 문서를 동적으로 업데이트하는 클라우드 서버에 관한 것이다.The disclosed technology relates to a method of updating content in an encrypted state in a cloud environment and a cloud server that dynamically updates encrypted documents.

클라우드 서비스는 사용자가 원격 저장소에 데이터를 저장하고 어디에서나 사용할 수 있도록 하여 다양한 부가 서비스를 제공하는 기술이다. 코로나 19 이후로 면대면 방식으로 진행되던 활동들이 비대면 방식으로 전환되면서 새로운 환경에 적합한 기술의 수요가 증가하고 있으며 클라우드 또한 이러한 수요중 하나에 속한다.Cloud service is a technology that provides various additional services by allowing users to store data in remote storage and use it anywhere. Since COVID-19, as face-to-face activities have been converted to non-face-to-face methods, the demand for technologies suitable for the new environment is increasing, and cloud is one of these demands.

이러한 클라우드 서비스는 비대면 환경에 특화된 기술로 물리적으로 떨어져 있는 사용자 간에 데이터 공유 및 협업이 가능하다. 다만 편리한 만큼 필연적으로 데이터 보안에 따른 이슈가 존재하며 지금까지 클라우드 기반 서비스의 보안을 위해 많은 연구가 진행되어 왔다. 안전한 협업을 위해서 상당수의 클라우드 서비스에서는 데이터를 내부 사용자들 간에만 공유되는 비밀키를 이용하여 암호화하고 데이터 갱신 시 이를 복호화하여 갱신한 후 다시 암호화하는 방법을 이용하였다. 그러나, 이러한 방법은 다수의 사용자들이 동시에 문서를 작업하는 클라우드 환경에서는 서버의 로드가 과도하게 증가하는 문제가 있었다.These cloud services are technologies specialized for non-face-to-face environments, enabling data sharing and collaboration between physically separated users. However, as convenient as it is, there are inevitably issues with data security, and much research has been conducted to date on the security of cloud-based services. For safe collaboration, many cloud services encrypt data using a secret key shared only between internal users, and when data is updated, decrypt it, update it, and then encrypt it again. However, this method had the problem of excessively increasing server load in a cloud environment where multiple users worked on documents simultaneously.

한국 등록특허 제10-1979267호Korean Patent No. 10-1979267

개시된 기술은 클라우드 환경에서 암호화된 콘텐츠를 복호화하지 않고 동적으로 업데이트하는 방법 및 클라우드 서버를 제공하는데 있다.The disclosed technology provides a method and a cloud server for dynamically updating encrypted content in a cloud environment without decrypting it.

상기의 기술적 과제를 이루기 위하여 개시된 기술의 제 1 측면은 클라우드 서버가 입력되는 콘텐츠를 복수개의 블록들로 구분하는 단계, 상기 클라우드 서버가 상기 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성하는 단계, 상기 클라우드 서버가 상기 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 암호화하는 단계 및 상기 클라우드 서버가 상기 복수의 블록들 중 일부의 블록에 대한 갱신 요청을 수신하면 상기 갱신되는 일부의 블록 및 상기 일부의 블록을 연결하는 링크정보를 이용하여 상기 일부의 블록만 갱신하는 단계를 포함하는 암호화 된 문서의 동적 업데이트 방법을 제공하는데 있다.The first aspect of the technology disclosed to achieve the above technical problem is the step of dividing the input content into a plurality of blocks by the cloud server, and the cloud server providing a plurality of link information connecting adjacent blocks among the plurality of blocks. A step of generating, the cloud server encrypting each of the plurality of blocks using some of the data included in the block and both link information connected to the block, and the cloud server encrypting some of the plurality of blocks It provides a dynamic update method of an encrypted document, including the step of updating only some of the blocks using the updated partial blocks and link information connecting the partial blocks when receiving an update request for the blocks. .

상기의 기술적 과제를 이루기 위하여 개시된 기술의 제 2 측면은 콘텐츠를 저장하는 저장장치, 상기 콘텐츠에 대한 갱신 요청을 수신하는 통신장치 및 상기 콘텐츠를 복수개의 블록들로 구분하고 상기 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성하고 상기 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 암호화한 상태로 상기 저장장치에 저장하고, 상기 갱신 요청에 따라 갱신되는 일부의 블록 및 상기 일부의 블록을 연결하는 링크정보를 이용하여 상기 일부의 블록만 갱신하는 프로세서를 포함하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버를 제공하는데 있다.The second aspect of the technology disclosed to achieve the above technical problem is a storage device for storing content, a communication device for receiving an update request for the content, dividing the content into a plurality of blocks, and dividing the content into a plurality of blocks. Generating a plurality of link information connecting adjacent blocks and storing each of the plurality of blocks in the storage device in an encrypted state using data included in the block and some of the link information on both sides connected to the block, The aim is to provide a cloud server that dynamically updates an encrypted document, including some blocks that are updated according to an update request and a processor that updates only some of the blocks using link information connecting the partial blocks.

개시된 기술의 실시 예들은 다음의 장점들을 포함하는 효과를 가질 수 있다. 다만, 개시된 기술의 실시 예들이 이를 전부 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다. Embodiments of the disclosed technology may have effects including the following advantages. However, since this does not mean that the embodiments of the disclosed technology must include all of them, the scope of rights of the disclosed technology should not be understood as being limited thereby.

개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버는 암호화 된 상태로 데이터를 업데이트하여 데이터 노출을 방지하는 효과가 있다.A method for dynamically updating encrypted content in a cloud environment and a cloud server according to an embodiment of the disclosed technology are effective in preventing data exposure by updating data in an encrypted state.

또한, 암호화 된 상태로 동적 업데이트를 수행하므로 잦은 복호화를 수행하는 종래 기술 대비 서버 로드를 줄이는 효과가 있다.In addition, since dynamic updates are performed in an encrypted state, it has the effect of reducing server load compared to conventional technologies that perform frequent decryption.

또한, 블록 단위 암호화를 통해 데이터 유출되더라도 평문을 알아내지 못하게 하는 효과가 있다.In addition, block-level encryption has the effect of preventing the plaintext from being discovered even if data is leaked.

도 1은 개시된 기술의 일 실시예에 따라 클라우드 환경에서 암호화 된 문서를 동적으로 업데이트하는 과정을 나타낸 도면이다.
도 2는 개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법에 대한 순서도이다.
도 3은 개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 클라우드 서버에 대한 블록도이다.
도 4는 암호화 된 콘텐츠를 수정, 삭제 및 추가하는 예시를 나타낸 도면이다.
도 5는 복수의 블록과 링크정보를 암호화하는 단계를 나타낸 도면이다.
Figure 1 is a diagram illustrating a process for dynamically updating an encrypted document in a cloud environment according to an embodiment of the disclosed technology.
Figure 2 is a flowchart of a method for dynamically updating encrypted content in a cloud environment according to an embodiment of the disclosed technology.
Figure 3 is a block diagram of a cloud server dynamically updating encrypted content in a cloud environment according to an embodiment of the disclosed technology.
Figure 4 is a diagram showing an example of modifying, deleting, and adding encrypted content.
Figure 5 is a diagram showing the steps of encrypting a plurality of blocks and link information.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the present invention can make various changes and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all changes, equivalents, and substitutes included in the spirit and technical scope of the present invention.

제 1 , 제 2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, B, etc. may be used to describe various components, but the components are not limited by the terms, and are only used for the purpose of distinguishing one component from other components. It is used only as For example, a first component may be referred to as a second component, and similarly, the second component may be referred to as a first component without departing from the scope of the present invention. The term and/or includes any of a plurality of related stated items or a combination of a plurality of related stated items.

본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 한다. 그리고 "포함한다" 등의 용어는 실시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.As used herein, singular expressions should be understood to include plural expressions unless the context clearly dictates otherwise. And terms such as "include" mean the presence of implemented features, numbers, steps, operations, components, parts, or combinations thereof, but one or more other features, numbers, steps, operations, components, parts, etc. It should be understood that it does not exclude the existence or addition of combinations thereof.

도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. Before providing a detailed description of the drawings, it would be clarified that the division of components in this specification is merely a division according to the main function each component is responsible for. That is, two or more components, which will be described below, may be combined into one component, or one component may be divided into two or more components for more detailed functions.

그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다. 따라서, 본 명세서를 통해 설명되는 각 구성부들의 존재 여부는 기능적으로 해석되어야 할 것이다.In addition to the main functions it is responsible for, each of the components described below may additionally perform some or all of the functions handled by other components, and some of the main functions handled by each component may be performed by other components. Of course, it can also be carried out exclusively by . Therefore, the presence or absence of each component described throughout this specification should be interpreted functionally.

도 1은 개시된 기술의 일 실시예에 따라 클라우드 환경에서 암호화 된 문서를 동적으로 업데이트하는 과정을 나타낸 도면이다. 도 1을 참조하면 클라우드 서버는 복수의 협업자 단말기와 클라우드 환경을 구축할 수 있다. 복수의 협업자들은 각자의 단말기를 이용하여 클라우드 서버와 형성한 보안채널을 통해 작성한 데이터를 전송할 수 있다. 클라우드 서버는 각 협업자 단말기로부터 전송되는 데이터를 콘텐츠로 취합하여 스토리지에 저장할 수 있다. 여기에서 콘텐츠는 협업자들이 작성하는 문서, 이미지, 동영상 등 다양한 종류의 데이터일 수 있다. 클라우드 서버는 이후에도 주기적으로 또는 비주기적으로 각 협업자 단말기들로부터 전송되는 데이터를 콘텐츠에 업데이트할 수 있다. 클라우드 서버는 문서를 업데이트할 시 외부로 데이터가 유출되는 것을 방지하기 위해서 콘텐츠를 암호화 된 상태로 저장하고 있으며 업데이트 시 암호화 된 상태에서 업데이트를 수행할 수 있다.Figure 1 is a diagram illustrating a process for dynamically updating an encrypted document in a cloud environment according to an embodiment of the disclosed technology. Referring to Figure 1, the cloud server can establish a cloud environment with multiple collaborator terminals. Multiple collaborators can use their respective terminals to transmit written data through a secure channel established with the cloud server. The cloud server can collect data transmitted from each collaborator's terminal as content and store it in storage. Here, content can be various types of data such as documents, images, and videos created by collaborators. The cloud server can then periodically or aperiodically update the content with data transmitted from each collaborator terminal. The cloud server stores content in an encrypted state to prevent data leakage when updating documents, and updates can be performed in an encrypted state.

한편, 클라우드 서버는 저장된 콘텐츠를 업데이트 하는 경우 콘텐츠를 암호화 된 상태에서 동적으로 업데이트할 수 있다. 일 실시예로, 클라우드 서버가 복수의 협업자 단말기들 중 하나로부터 콘텐츠에 대한 갱신 요청을 수신하면 암호화 된 콘텐츠를 평문으로 복호화하여 업데이트하지 않고 암호화 된 상태 그대로 업데이트를 적용할 수 있다. 이러한 동작을 위해 클라우드 서버는 사전에 콘텐츠를 아래와 같이 블록 단위로 암호화한 상태로 저장할 수 있다.Meanwhile, when updating stored content, the cloud server can dynamically update the content in an encrypted state. In one embodiment, when the cloud server receives an update request for content from one of a plurality of collaborator terminals, the update may be applied as is in the encrypted state without decrypting the encrypted content into plain text and updating it. For this operation, the cloud server can store the content encrypted in advance in blocks as shown below.

먼저, 클라우드 서버는 콘텐츠를 복수개의 블록들로 구분할 수 있다. 각각의 블록들은 평문 상태의 콘텐츠에 대응되는 것으로 평문과 동일한 비율로 구분될 수 있다. 가령, 한 문단 내 복수개의 행들을 각각 복수개의 블록들로 구분할 수 있다. 클라우드 서버는 종래의 DES, AES 방식와 같이 임의의 길이의 평문인 콘텐츠를 고정된 길이의 블록으로 구분할 수 있다. 여기에서 구분의 의미는 그 자체로 일종의 암호화 과정일 수 있다.First, the cloud server can divide content into a plurality of blocks. Each block corresponds to content in the plain text state and can be divided into the same ratio as the plain text. For example, multiple lines within one paragraph can be divided into multiple blocks. The cloud server can divide plain text content of arbitrary length into blocks of fixed length, like the conventional DES and AES methods. The meaning of distinction here may itself be a kind of encryption process.

한편, 클라우드 서버는 복수개의 블록들을 구분하면 각 블록들 사이에 복수개의 링크정보를 생성한다. 클라우드 서버는 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성할 수 있다. 여기에서 링크정보는 이전 순번의 블록에 포함된 정보의 일부 및 다음 순번의 블록에 포함된 정보의 일부를 중복해서 저장하는 정보를 의미한다. 예컨대, 복수개의 블록들 중 특정 블록에 해당 블록의 일측의 인접 블록과 연결하는 제 1 링크정보 및 해당 블록의 타측의 인접 블록과 연결하는 제 2 링크정보가 생성될 수 있다. 링크정보는 암호화 된 상태의 콘텐츠를 실시간으로 업데이트할 때 업데이트하고자 하는 문서가 콘텐츠의 어느 위치에 적용될 것인지 확인하기 위해 이용될 수 있다. 즉, 블록으로 구분된 정보들을 디코딩하여 평문 상태로 되돌리지 않고 링크정보에 저장된 일부의 정보를 토대로 업데이트할 문서가 적용될 위치를 확인할 수 있다.Meanwhile, when the cloud server divides a plurality of blocks, it creates a plurality of link information between each block. The cloud server may generate a plurality of link information connecting adjacent blocks among the plurality of blocks. Here, link information refers to information that stores part of the information included in the block in the previous sequence and part of the information included in the block in the next sequence overlappingly. For example, first link information connecting a specific block among a plurality of blocks with an adjacent block on one side of the corresponding block and second link information connecting a specific block with an adjacent block on the other side of the block may be generated. Link information can be used to check where in the content the document to be updated will be applied when updating encrypted content in real time. In other words, it is possible to check the location where the document to be updated will be applied based on some of the information stored in the link information without decoding the information divided into blocks and returning it to the plain text state.

한편, 클라우드 서버는 복수개의 링크정보를 이용하여 복수개의 블록들을 블록 단위로 각각 암호화할 수 있다. 예컨대, 클라우드 서버는 복수개의 블록들 중 특정 블록에 포함된 데이터, 제 1 링크정보 중 특정 블록에 가까운 절반(Half)의 링크정보 및 제 2 링크정보 중 특정 블록에 가까운 절반의 링크정보를 이용하여 해당 블록을 암호화할 수 있다. 이러한 과정을 각 블록들 마다 적용함으로써 콘텐츠를 복수개의 블록데이터로 암호화할 수 있다.Meanwhile, the cloud server can encrypt a plurality of blocks on a block basis using a plurality of link information. For example, the cloud server uses data included in a specific block among a plurality of blocks, half of the first link information close to a specific block, and half of the second link information close to a specific block. The block can be encrypted. By applying this process to each block, content can be encrypted into multiple block data.

한편, 클라우드 서버는 복수의 협업자 단말기들과 사전에 비밀키를 공유할 수 있다. 비밀키는 암호화 된 콘텐츠에 접근하기 위한 것으로 보안채널을 통해 공유될 수 있다. 비밀키는 특정 단말기에만 공유되는 것이 아니라 보안채널을 통해 클라우드 환경 내 모든 단말기들에 공유될 수 있다.Meanwhile, the cloud server can share the secret key with multiple collaborator terminals in advance. The secret key is used to access encrypted content and can be shared through a secure channel. The secret key is not only shared with a specific terminal, but can be shared with all terminals in the cloud environment through a secure channel.

한편, 클라우드 서버는 상술한 과정에 따라 콘텐츠를 암호화 된 상태로 저장한 후 복수의 협업자 단말기들 중 하나로부터 콘텐츠의 일부를 업데이트하기 위한 갱신 요청을 수신할 수 있다. 갱신 요청은 복수의 협업자 단말기들 중 하나의 단말기가 보안채널을 통해 전송할 수 있다. 클라우드 서버는 갱신 요청에 따라 복수개의 블록들 중 갱신되는 일부의 블록 및 일부의 블록을 연결하는 링크정보를 이용하여 나머지 블록들을 그대로 유지하되 일부의 블록만 갱신할 수 있다. 클라우드 서버는 복수의 링크정보들을 이용하여 복수개의 블록들 중 업데이트 할 데이터에 상응하는 위치의 특정 블록이 어디에 있는지 확인할 수 있다. 즉, 클라우드 서버는 블록을 평문으로 디코딩하지 않고 링크정보에 저장된 정보를 토대로 콘텐츠를 업데이트할 수 있다. 클라우드 서버는 콘텐츠를 블록 단위로 암호화하였으므로 암호화 된 각각의 블록들이 포함하는 링크정보를 이용하여 협업자가 콘텐츠 내 어느 부분을 수정할 것인지 확인할 수 있다.Meanwhile, the cloud server may store the content in an encrypted state according to the above-described process and then receive an update request to update part of the content from one of the plurality of collaborator terminals. The update request can be transmitted by one of the plurality of collaborator terminals through a secure channel. In response to an update request, the cloud server can update only some blocks while maintaining the remaining blocks by using some of the blocks to be updated among the plurality of blocks and link information connecting some of the blocks. The cloud server can use a plurality of link information to check where a specific block corresponding to the data to be updated is located among the plurality of blocks. In other words, the cloud server can update the content based on the information stored in the link information without decoding the block into plain text. Since the cloud server encrypts the content in blocks, the link information contained in each encrypted block can be used to check which part of the content the collaborator will modify.

한편, 클라우드 서버의 업데이트 과정은 기본적으로 수정, 삭제 및 추가로 구분할 수 있다. 먼저 복수의 블록들 중 특정 블록을 수정(Modification)하는 경우, 클라우드 서버는 특정 블록에 포함된 데이터를 갱신 요청에 따른 데이터로 수정할 수 있다. 그리고, 수정된 특정 블록의 왼쪽에 연결된 링크정보 중 수정된 특정 블록에 가까운 절반(Half)의 링크정보 및 수정된 특정 블록의 오른쪽에 연결된 링크정보 중 수정된 특정 블록에 가까운 절반(Half)의 링크정보를 수정된 특정 블록에 포함된 데이터로 수정할 수 있다. 앞서 설명한 바와 같이 특정 블록의 양쪽에 연결되는 링크정보는 특정 블록에 포함된 데이터의 일부를 중복해서 저장하고 있으므로 특정 블록이 수정될 시 수정된 데이터를 절반씩 중복해서 저장할 수 있다.Meanwhile, the cloud server update process can be basically divided into modification, deletion, and addition. First, when modifying a specific block among a plurality of blocks, the cloud server can modify the data included in the specific block into data according to the update request. And, among the link information connected to the left of the modified specific block, half of the link information close to the modified specific block and half of the link information connected to the right of the modified specific block is close to the modified specific block. Information can be modified with data contained in the specific modified block. As explained earlier, the link information connected to both sides of a specific block stores part of the data included in the specific block redundantly, so when a specific block is modified, half of the modified data can be stored redundantly.

한편, 복수의 블록들 중 특정 블록을 삭제(Deletion)하는 경우, 클라우드 서버는 특정 블록 및 특정 블록의 왼쪽에 연결된 링크정보 중 특정 블록에 가까운 절반(Half)의 링크정보 및 특정 블록의 오른쪽에 연결된 링크정보 중 특정 블록에 가까운 절반(Half)의 링크정보를 삭제할 수 있다. 그리고 특정 블록의 왼쪽에 연결된 링크정보 중 특정 블록에서 먼 절반(Half)의 링크정보 및 특정 블록의 오른쪽에 연결된 링크정보 중 특정 블록에서 먼 절반(Half)의 링크정보를 하나의 링크정보로 결합할 수 있다. 즉, 특정 블록이 삭제되면서 양쪽의 링크정보가 저장하고 있던 특정블록의 데이터가 삭제되었으므로 양쪽의 링크정보가 저장하는 잔여 데이터를 합쳐서 하나의 링크정보로 결합할 수 있다.Meanwhile, when deleting a specific block among a plurality of blocks, the cloud server uses the link information of the half close to the specific block among the link information connected to the specific block and the left side of the specific block and the link information connected to the right side of the specific block. Among the link information, half of the link information close to a specific block can be deleted. In addition, the link information of the half farthest from the specific block among the link information connected to the left of a specific block and the link information of the half farthest from the specific block among the link information connected to the right of a specific block can be combined into one link information. You can. In other words, since the data of the specific block stored in both link information was deleted when the specific block was deleted, the remaining data stored in both link information can be combined and combined into one link information.

한편, 복수의 블록들 사이에 특정 블록을 삽입(Insertion)하는 경우, 클라우드 서버는 갱신 요청에 따른 데이터를 특정 블록으로 생성할 수 있다. 당연히 생성되는 특정 블록은 기존의 복수개의 블록에 포함되지 않은 새로운 블록이다. 클라우드 서버는 생성된 블록을 복수의 블록들 중 특정 위치에 삽입할 수 있다. 이 과정에서 클라우드 서버는 특정 블록이 삽입된 위치의 링크정보를 분리하고, 분리된 링크정보 중 왼쪽의 링크정보 및 분리된 링크정보 중 오른쪽의 링크정보에 특정 블록에 포함된 데이터를 각각 추가할 수 있다. 앞서 삭제 과정에서 잔여 링크정보끼리 하나로 합치는 것과 반대로 링크정보에 새로 추가된 데이터를 저장할 수 있다. 이러한 과정에 따라 클라우드 서버는 콘텐츠를 평문으로 디코딩하지 않고 암호화한 상태 그대로 동적 업데이트를 수행할 수 있다.Meanwhile, when inserting a specific block between a plurality of blocks, the cloud server can generate data according to the update request as a specific block. Naturally, the specific block created is a new block that is not included in the existing plurality of blocks. The cloud server can insert the generated block into a specific location among the plurality of blocks. In this process, the cloud server separates the link information at the location where a specific block is inserted, and adds the data contained in the specific block to the link information on the left of the separated link information and the link information on the right among the separated link information. there is. As opposed to merging the remaining link information into one during the previous deletion process, newly added data can be stored in the link information. According to this process, the cloud server can dynamically update the content in its encrypted state without decoding it into plain text.

도 2는 개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법에 대한 순서도이다. 도 2를 참조하면 암호화 된 문서의 동적 업데이트 방법은 210 내지 240 단계를 포함하며 클라우드 서버를 통해 순차적으로 수행될 수 있다.Figure 2 is a flowchart of a method for dynamically updating encrypted content in a cloud environment according to an embodiment of the disclosed technology. Referring to FIG. 2, the method for dynamically updating an encrypted document includes steps 210 to 240 and can be performed sequentially through a cloud server.

210 단계에서 클라우드 서버는 콘텐츠를 복수개의 블록들로 구분한다. 클라우드 서버는 콘텐츠가 원본 그대로 외부에 노출되는 것을 방지하기 위해서 평문 상태의 콘텐츠를 복수개의 블록들로 인코딩할 수 있다.In step 210, the cloud server divides the content into a plurality of blocks. The cloud server can encode plain text content into a plurality of blocks to prevent the content from being exposed to the outside in its original form.

220 단계에서 클라우드 서버는 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성한다. 링크정보는 블록에 포함된 정보 일부를 나누어 저장하는 것으로 각 블록을 연결하기 위한 정보를 의미한다. 가령, 이전 블록의 정보 일부와 다음 블록의 정보 일부가 저장될 수 있다. 클라우드 서버는 콘텐츠를 복수의 블록들과 링크정보들이 반복되는 사슬(Chain) 구조로 구분할 수 있다.In step 220, the cloud server generates a plurality of link information connecting adjacent blocks among the plurality of blocks. Link information refers to information for connecting each block by dividing and storing part of the information contained in the block. For example, part of the information of the previous block and part of the information of the next block may be stored. The cloud server can divide content into a chain structure in which multiple blocks and link information are repeated.

230 단계에서 클라우드 서버는 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 블록 단위로 암호화한다. 도 1을 통해 설명한 바와 같이 특정 순번의 블록과 이전 순번의 링크정보 및 다음 순번의 링크정보에 각각 저장된 중복값을 함께 암호화할 수 있다. 클라우드 서버는 210 내지 230 단계에 따라 콘텐츠를 블록 단위로 암호화하여 저장한다.In step 230, the cloud server encrypts each of the plurality of blocks in block units using data included in the block and some of the link information on both sides connected to the block. As explained with reference to FIG. 1, the blocks of a specific sequence and the duplicate values stored in the link information of the previous sequence and the link information of the next sequence can be encrypted together. The cloud server encrypts and stores the content in blocks according to steps 210 to 230.

240 단계에서 클라우드 서버는 복수의 블록들 중 일부의 블록에 대한 갱신 요청을 수신하면 갱신되는 일부의 블록 및 일부의 블록을 연결하는 링크정보를 이용하여 나머지 블록들은 그대로 유지한 상태로 일부의 블록만 갱신한다. 클라우드 서버는 클라우드 환경에 속한 복수의 협업자 단말기들 중 하나로부터 콘텐츠의 일부를 업데이트하기 위한 갱신 요청을 수신한다. 240 단계는 210 내지 230 단계가 선행된 이후 콘텐츠를 업데이트하는 단계에 해당된다. 클라우드 서버가 수신하는 갱신 요청은 콘텐츠에 반영될 데이터일 수 있다. 클라우드 서버는 콘텐츠를 업데이트하기 위한 데이터를 수신하면 일부의 블록을 수정하거나 삭제 또는 추가할 수 있다. 특정 블록이 수정되거나 삭제 또는 추가될 경우 해당 블록의 양쪽 링크정보도 함께 갱신될 수 있다.In step 240, when the cloud server receives an update request for some of the blocks among the plurality of blocks, it uses link information connecting some of the blocks and some of the blocks to be updated to update only some of the blocks while keeping the remaining blocks as is. Update. The cloud server receives an update request to update part of the content from one of the plurality of collaborator terminals in the cloud environment. Step 240 corresponds to the step of updating content after steps 210 to 230. The update request received by the cloud server may be data to be reflected in the content. When the cloud server receives data to update content, it can modify, delete, or add some blocks. When a specific block is modified, deleted, or added, link information on both sides of the block can also be updated.

도 3은 개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 클라우드 서버에 대한 블록도이다. 도 3을 참조하면 클라우드 서버(300)는 저장장치(310), 통신장치(320) 및 프로세서(330)를 포함한다. 클라우드 서버(300)는 클라우드 환경 내 서버 역할을 수행할 수 있는 디바이스로 구현될 수 있다. 예컨대, PC, 태블릿 또는 스마트폰일 수 있다.Figure 3 is a block diagram of a cloud server dynamically updating encrypted content in a cloud environment according to an embodiment of the disclosed technology. Referring to FIG. 3, the cloud server 300 includes a storage device 310, a communication device 320, and a processor 330. The cloud server 300 may be implemented as a device that can perform the role of a server in a cloud environment. For example, it may be a PC, tablet or smartphone.

저장장치(310)는 프로세서를 통해 암호화 된 콘텐츠를 저장한다. 저장장치는 클라우드 환경에 적용하기 위해 각 협업자 단말기들의 위치와 서로 다른 공간에 마련된 스토리지로 구현될 수 있다. 저장장치는 하나의 클라우드 환경에 대한 콘텐츠만 저장하거나 복수의 클라우드 환경 각각에 대한 콘텐츠를 구분하여 저장할 수 있다.The storage device 310 stores encrypted content through a processor. To apply to a cloud environment, the storage device can be implemented as storage provided in a space different from the location of each collaborator's terminal. The storage device may store only content for one cloud environment or separately store content for each of multiple cloud environments.

통신장치(320)는 복수의 협업자 단말기들 중 하나와 통신하여 콘텐츠에 대한 갱신 요청을 수신한다. 통신장치는 보안채널을 통해 갱신 요청에 따른 데이터를 수신한다. 통신장치(320)는 암호화 된 문서의 동적 업데이트 장치(300)의 통신모듈 또는 모뎀으로 구현될 수 있다. 통신장치는 복수의 협업자 단말기들과 유무선 인터넷으로 통신하여 문서를 수신할 수 있다. The communication device 320 receives an update request for content by communicating with one of the plurality of collaborator terminals. The communication device receives data according to the update request through a secure channel. The communication device 320 may be implemented as a communication module or modem of the dynamic update device 300 for encrypted documents. The communication device can receive documents by communicating with a plurality of collaborator terminals via wired or wireless Internet.

프로세서(330)는 콘텐츠를 복수개의 블록들로 구분하고 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성하고 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 암호화한 상태로 저장장치에 저장한다. 이후 통신장치를 통해 갱신 요청이 수신되면 갱신되는 일부의 블록 및 상기 일부의 블록을 연결하는 링크정보를 이용하여 일부의 블록만 갱신한다. 프로세서(330)는 암호화 된 문서의 동적 업데이트 장치(300)의 CPU 내지는 AP일 수 있다. 프로세서는 도 1 및 도 2를 통해 설명한 방식으로 암호화 된 상태로 저장된 콘텐츠를 동적으로 업데이트할 수 있다.The processor 330 divides the content into a plurality of blocks, generates a plurality of link information connecting adjacent blocks among the plurality of blocks, and divides each of the plurality of blocks into data contained in the block and both sides connected to the block. Some of the link information is used and stored in an encrypted state on the storage device. Afterwards, when an update request is received through a communication device, only some blocks are updated using some of the blocks to be updated and link information connecting the partial blocks. The processor 330 may be a CPU or an AP of the device 300 for dynamically updating an encrypted document. The processor may dynamically update content stored in an encrypted state in the manner described with reference to FIGS. 1 and 2.

한편, 상술한 클라우드 서버(300)는 컴퓨터에서 실행될 수 있는 실행 가능한 알고리즘을 포함하는 프로그램(또는 어플리케이션)으로 구현될 수도 있다. 상기 프로그램은 일시적 또는 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장되어 제공될 수 있다.Meanwhile, the cloud server 300 described above may be implemented as a program (or application) including an executable algorithm that can be executed on a computer. The program may be stored and provided in a temporary or non-transitory computer readable medium.

비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM (read-only memory), PROM (programmable read only memory), EPROM(Erasable PROM, EPROM) 또는 EEPROM(Electrically EPROM) 또는 플래시 메모리 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.A non-transitory readable medium refers to a medium that stores data semi-permanently and can be read by a device, rather than a medium that stores data for a short period of time, such as registers, caches, and memories. Specifically, the various applications or programs described above include CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM (read-only memory), PROM (programmable read only memory), and EPROM (Erasable PROM, EPROM). Alternatively, it may be stored and provided in a non-transitory readable medium such as EEPROM (Electrically EPROM) or flash memory.

일시적 판독 가능 매체는 스태틱 램(Static RAM,SRAM), 다이내믹 램(Dynamic RAM,DRAM), 싱크로너스 디램 (Synchronous DRAM,SDRAM), 2배속 SDRAM(Double Data Rate SDRAM,DDR SDRAM), 증강형 SDRAM(Enhanced SDRAM,ESDRAM), 동기화 DRAM(Synclink DRAM,SLDRAM) 및 직접 램버스 램(Direct Rambus RAM,DRRAM) 과 같은 다양한 RAM을 의미한다.Temporarily readable media include Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous DRAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), and Enhanced SDRAM (Enhanced RAM). It refers to various types of RAM, such as SDRAM (ESDRAM), Synchronous DRAM (Synclink DRAM, SLDRAM), and Direct Rambus RAM (DRRAM).

도 4는 암호화 된 콘텐츠를 수정, 삭제 및 추가하는 예시를 나타낸 도면이다. 도 4와 같이 클라우드 서버는 다수의 협업자들이 작성하는 콘텐츠를 실시간으로 업데이트할 수 있다. 클라우드 서버는 블록 단위로 암호화된 콘텐츠를 복호화하지 않고 수정, 삭제 및 추가할 수 있다.Figure 4 is a diagram showing an example of modifying, deleting, and adding encrypted content. As shown in Figure 4, the cloud server can update content created by multiple collaborators in real time. The cloud server can modify, delete, and add content encrypted in blocks without decrypting it.

도 4의 A는 콘텐츠를 복수의 블록 및 링크정보들로 이루어진 체인 형태로 변환한 것을 나타낸 것이다. 각 블록은 평문을 일정 길이로 구분한 데이터들이다. 도 4에서는 예시적으로 데이터1부터 데이터6까지 도시하였지만 블록의 개수는 얼마든지 변경될 수 있다. 그리고 링크정보는 이전 블록과 다음 블록의 정보를 중복해서 저장하는 데이터이다. 클라우드 서버는 링크정보에 저장된 정보를 토대로 업데이트를 수행하기 때문에 블록을 평문으로 디코딩하는 과정이 생략된다.A in Figure 4 shows content converted into a chain form consisting of a plurality of blocks and link information. Each block is data divided into plain text by a certain length. In FIG. 4, data 1 to data 6 are shown as examples, but the number of blocks can be changed at any time. And link information is data that stores the information of the previous block and the next block in duplicate. Because the cloud server performs updates based on information stored in link information, the process of decoding blocks into plain text is omitted.

한편, 도 4의 B-1은 데이터3을 데이터7로 수정하는 것을 나타낸 것이다. 3번째 블록에 해당하는 데이터3을 데이터7로 수정하는 경우, 데이터3의 양 측에 연결된 링크2 및 링크3은 각각 링크6과 링크7로 수정될 수 있다. 즉, 링크2에 저장되어 있던 데이터3의 정보 일부는 데이터7의 일부로 수정되어 링크6으로 갱신되고 링크3에 저장되어 있던 데이터3의 정보 일부는 데이터7의 일부로 수정되어 링크7로 갱신될 수 있다.Meanwhile, B-1 in FIG. 4 shows modifying data 3 to data 7. When data 3 corresponding to the third block is modified to data 7, link 2 and link 3 connected to both sides of data 3 can be modified to link 6 and link 7, respectively. In other words, part of the information of data 3 stored in link 2 may be modified as part of data 7 and updated as link 6, and part of the information of data 3 stored in link 3 may be modified as part of data 7 and updated as link 7. .

한편, 도 4의 B-2는 데이터4를 삭제하는 것을 나타낸 것이다. 4번째 블록에 해당하는 데이터4를 삭제하는 경우, 데이터4의 양 측에 연결된 링크7 및 링크4에 각각 저장된 데이터4의 일부 정보도 함께 삭제될 수 있다. 데이터4와 함께 링크7 및 링크4가 삭제되면서 데이터7과 데이터5 사이에는 각각 데이터7과 데이터5의 정보를 일부 중복해서 저장하는 링크8이 생성될 수 있다.Meanwhile, B-2 in FIG. 4 shows deleting data 4. When deleting Data 4 corresponding to the fourth block, some information of Data 4 stored in Link 7 and Link 4 connected to both sides of Data 4 may also be deleted. As Link 7 and Link 4 are deleted along with Data 4, Link 8 may be created between Data 7 and Data 5, storing some of the information of Data 7 and Data 5 in duplicate, respectively.

한편, 도 4의 B-3은 데이터2와 데이터7 사이에 데이터8을 추가하는 것을 나타낸 것이다. 데이터8이 추가되면서 데이터2와 데이터8 사이에는 양 블록의 정보를 일부 중복해서 저장하는 링크9가 생성되고 데이터8과 데이터7 사이에는 양 블록의 정보를 일부 중복해서 저장하는 링크10이 생성될 수 있다.Meanwhile, B-3 in FIG. 4 shows adding data 8 between data 2 and data 7. As data 8 is added, link 9 can be created between data 2 and data 8, which partially stores the information of both blocks in duplicate, and link 10 can be created between data 8 and data 7, which partially stores the information of both blocks in duplicate. there is.

도 5는 복수의 블록과 링크정보를 암호화하는 단계를 나타낸 도면이다. 도 5에 도시된 단계에 따라 클라우드 서버는 평문 상태의 콘텐츠를 암호화할 수 있다. 먼저 평문 상태의 콘텐츠를 복수개의 블록들(m1~m6)로 구분한다. 각 블록의 길이 내지는 비율은 서로 동일할 수 있다. 그리고 블록들 사이에 링크정보를 생성한다. 링크정보는 이전 블록과 다음 블록의 정보 일부를 중복해서 저장하는 값(Redundant Value)이다. 도 5를 기준으로 예를 들면 링크정보 r1은 블록 m1 및 m2의 정보 일부를 중복해서 저장한다. 예컨대, 블록 m1의 우측 절반에 해당하는 정보와 블록 m2의 좌측 절반에 해당하는 정보가 링크정보 r1에 저장될 수 있다.Figure 5 is a diagram showing the steps of encrypting a plurality of blocks and link information. According to the steps shown in FIG. 5, the cloud server can encrypt content in plain text. First, the plain text content is divided into a plurality of blocks (m1 to m6). The length or ratio of each block may be the same. And link information is created between blocks. Link information is a redundant value that stores part of the information of the previous block and the next block redundantly. For example, based on FIG. 5, link information r1 stores part of the information of blocks m1 and m2 in duplicate. For example, information corresponding to the right half of block m1 and information corresponding to the left half of block m2 may be stored in link information r1.

한편, 구분된 데이터는 아래 수학식 1과 같이 표현할 수 있다.Meanwhile, the separated data can be expressed as Equation 1 below.

여기에서 은 평문 을 구분한 것을 의미하고, 는 맨 처음 블록의 좌측 링크정보 및 맨 마지막 블록의 우측 링크정보를 의미한다. 맨 처음 블록의 좌측 링크정보에는 처음 블록의 정보 일부만 저장된다. 마찬가지로 마지막 블록의 우측 링크정보에는 마지막 블록의 정보 일부만 저장된다. 구분된 콘텐츠 는 순차적으로 가장 좌측의 링크정보 부터 가장 우측의 링크정보 사이에 있는 복수의 블록들 및 복수의 링크정보들을 포함한다.From here is plaintext This means distinguishing between means the left link information of the first block and the right link information of the last block. Only part of the information of the first block is stored in the link information on the left of the first block. Likewise, only part of the information of the last block is stored in the link information on the right side of the last block. Separated content The leftmost link information is sequentially Link information on the far right It includes a plurality of blocks and a plurality of link information in between.

한편, 블록 부터 까지를 (는 1~6)으로 표현하고 에 암호화 함수 를 적용하면 아래 수학식 2의 형태로 정의할 수 있다.Meanwhile, the block from Until ( is expressed as 1~6) to the encryption function By applying, it can be defined in the form of Equation 2 below.

즉, 암호화 된 블록 는 구분된 블록 의 왼쪽 링크정보 중 우측에 중복 저장된 값 및 오른쪽 링크정보 중 좌측에 중복 저장된 값 를 포함한다.That is, encrypted blocks is a separated block and The value stored redundantly on the right side of the left link information of and the value stored redundantly on the left side of the link information on the right side Includes.

앞서 언급한 바와 같이 도 5의 예시에서 는 1~6까지 이므로 첫 번째 암호화 된 블록 및 마지막 암호화 된 블록은 아래 수학식 3으로 표현할 수 있다.As previously mentioned, in the example of Figure 5 Since is from 1 to 6, the first encrypted block and the last encrypted block can be expressed as Equation 3 below.

첫 번째 암호화 된 블록 에 맨 처음 좌측에 위치하는 링크정보의 우측에 중복 저장된 값 및 우측에 위치하는 링크정보 중 좌측에 중복 저장된 값 를 포함한다. 그리고 마지막 암호화 된 블록 에 좌측에 위치하는 링크정보 중 우측에 중복 저장된 값 와 마지막에 위치하는 링크정보 중 좌측에 중복 저장된 값 을 포함한다. 물론 사이에 나머지 블록들 또한 동일하게 암호화될 수 있다. 클라우드 서버는 이러한 과정에 따라 평문 상태의 콘텐츠를 암호화 된 블록 상태로 변환할 수 있다.first encrypted block Is The value stored redundantly on the right side of the link information located on the first left side. and the value stored redundantly on the left among the link information located on the right. Includes. And the last encrypted block Is Among the link information located on the left, the value stored redundantly on the right and the value stored redundantly on the left side of the link information located at the end. Includes. Of course, the remaining blocks in between can also be encrypted in the same way. The cloud server can convert plain text content into an encrypted block state through this process.

개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버는 이해를 돕기 위하여 도면에 도시된 실시 예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 개시된 기술의 진정한 기술적 보호범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.The dynamic update method and cloud server of encrypted content in a cloud environment according to an embodiment of the disclosed technology have been described with reference to the embodiments shown in the drawings to aid understanding, but this is merely illustrative and is based on common knowledge in the field. Those who have will understand that various modifications and other equivalent embodiments are possible therefrom. Therefore, the true technical protection scope of the disclosed technology should be determined by the appended patent claims.

Claims (12)

클라우드 서버가 입력되는 콘텐츠를 복수개의 블록들로 구분하는 단계;
상기 클라우드 서버가 상기 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성하는 단계;
상기 클라우드 서버가 상기 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 암호화하는 단계; 및
상기 클라우드 서버가 상기 복수의 블록들 중 일부의 블록에 대한 갱신 요청을 수신하면 상기 갱신되는 일부의 블록 및 상기 일부의 블록을 연결하는 링크정보를 이용하여 상기 일부의 블록만 갱신하는 단계;를 포함하되,
상기 해당 블록은 상기 해당 블록의 일측의 인접 블록과 연결하는 제 1 링크정보 및 상기 해당 블록의 타측의 인접 블록과 연결하는 제 2 링크정보와 연결되고,
상기 클라우드 서버는 상기 해당 블록에 포함된 데이터, 상기 제 1 링크정보 중 상기 해당 블록에 가까운 절반의 링크정보 및 상기 제 2 링크정보 중 상기 해당 블록에 가까운 절반의 링크정보를 이용하여 상기 해당 블록을 암호화하는 암호화 된 문서의 동적 업데이트 방법.
A cloud server dividing input content into a plurality of blocks;
The cloud server generating a plurality of link information connecting adjacent blocks among the plurality of blocks;
Encrypting, by the cloud server, each of the plurality of blocks using data included in the block and some of the link information on both sides connected to the block; and
When the cloud server receives an update request for some of the blocks among the plurality of blocks, updating only some of the blocks using the updated partial blocks and link information connecting the partial blocks. However,
The corresponding block is connected to first link information connecting an adjacent block on one side of the corresponding block and second link information connecting an adjacent block on the other side of the corresponding block,
The cloud server uses the data included in the block, half of the first link information close to the block, and half of the second link information close to the block to link the block. A dynamic update method for encrypted encrypted documents.
삭제delete 제 1 항에 있어서,
상기 링크정보는 상기 서로 인접한 블록에 포함된 데이터의 일부를 중복해서 저장하는 암호화 된 문서의 동적 업데이트 방법.
According to claim 1,
The link information is a dynamic update method of an encrypted document in which part of the data included in the adjacent blocks is stored redundantly.
제 1 항에 있어서,
상기 클라우드 서버는 상기 복수의 블록들 중 특정 블록을 수정(Modification)하는 경우, 상기 특정 블록에 포함된 데이터를 상기 갱신 요청에 따른 데이터로 수정하고, 상기 수정된 특정 블록의 왼쪽에 연결된 링크정보 중 상기 수정된 특정 블록에 가까운 절반(Half)의 링크정보 및 상기 수정된 특정 블록의 오른쪽에 연결된 링크정보 중 상기 수정된 특정 블록에 가까운 절반(Half)의 링크정보를 상기 수정된 특정 블록에 포함된 데이터로 수정하는 암호화 된 문서의 동적 업데이트 방법.
According to claim 1,
When modifying a specific block among the plurality of blocks, the cloud server modifies the data included in the specific block to data according to the update request, and selects the link information connected to the left of the modified specific block. Among the half link information close to the modified specific block and the link information connected to the right side of the modified specific block, the half link information close to the modified specific block is included in the modified specific block. A dynamic update method for encrypted documents that modify with data.
제 1 항에 있어서,
상기 클라우드 서버는 상기 복수의 블록들 중 특정 블록을 삭제(Deletion)하는 경우, 상기 특정 블록 및 상기 특정 블록의 왼쪽에 연결된 링크정보 중 상기 특정 블록에 가까운 절반(Half)의 링크정보 및 상기 특정 블록의 오른쪽에 연결된 링크정보 중 상기 특정 블록에 가까운 절반(Half)의 링크정보를 삭제하고,
상기 특정 블록의 왼쪽에 연결된 링크정보 중 상기 특정 블록에서 먼 절반(Half)의 링크정보 및 상기 특정 블록의 오른쪽에 연결된 링크정보 중 상기 특정 블록에서 먼 절반(Half)의 링크정보를 하나의 링크정보로 결합하는 암호화 된 문서의 동적 업데이트 방법.
According to claim 1,
When deleting a specific block among the plurality of blocks, the cloud server provides link information of the half close to the specific block among the link information connected to the specific block and the left side of the specific block and the specific block. Among the link information connected to the right of , half of the link information close to the specific block is deleted,
Among the link information connected to the left of the specific block, the link information of the half farthest from the specific block and the link information of the half farthest from the specific block among the link information connected to the right of the specific block are referred to as one link information. A dynamic update method for encrypted documents that combines with.
제 1 항에 있어서,
상기 클라우드 서버는 상기 복수의 블록들 사이에 특정 블록을 삽입(Insertion)하는 경우, 상기 갱신 요청에 따른 데이터를 상기 특정 블록으로 생성하여 상기 복수의 블록들 중 특정 위치에 삽입하고 상기 특정 블록이 삽입된 위치의 링크정보를 분리하고, 상기 분리된 링크정보 중 왼쪽의 링크정보 및 상기 분리된 링크정보 중 오른쪽의 링크정보에 상기 특정 블록에 포함된 데이터를 각각 추가하는 암호화 된 문서의 동적 업데이트 방법.
According to claim 1,
When inserting a specific block between the plurality of blocks, the cloud server generates data according to the update request as the specific block, inserts it at a specific position among the plurality of blocks, and inserts the specific block. A dynamic update method of an encrypted document that separates link information at a given location and adds data included in the specific block to the link information on the left of the separated link information and the link information on the right of the separated link information.
콘텐츠를 저장하는 저장장치;
상기 콘텐츠에 대한 갱신 요청을 수신하는 통신장치; 및
상기 콘텐츠를 복수개의 블록들로 구분하고 상기 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성하고 상기 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 암호화한 상태로 상기 저장장치에 저장하고, 상기 갱신 요청에 따라 갱신되는 일부의 블록 및 상기 일부의 블록을 연결하는 링크정보를 이용하여 상기 일부의 블록만 갱신하는 프로세서;를 포함하되,
상기 해당 블록은 상기 해당 블록의 일측의 인접 블록과 연결하는 제 1 링크정보 및 상기 해당 블록의 타측의 인접 블록과 연결하는 제 2 링크정보와 연결되고,
상기 프로세서는 상기 해당 블록에 포함된 데이터, 상기 제 1 링크정보 중 상기 해당 블록에 가까운 절반의 링크정보 및 상기 제 2 링크정보 중 상기 해당 블록에 가까운 절반의 링크정보를 이용하여 상기 해당 블록을 암호화하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버.
A storage device that stores content;
a communication device that receives an update request for the content; and
Divide the content into a plurality of blocks, generate a plurality of link information connecting adjacent blocks among the plurality of blocks, and link each of the plurality of blocks with data included in the block and link information on both sides connected to the block. A processor that stores some of the blocks in an encrypted state in the storage device and updates only some of the blocks using some of the blocks updated according to the update request and link information connecting the some of the blocks. However,
The corresponding block is connected to first link information connecting an adjacent block on one side of the corresponding block and second link information connecting an adjacent block on the other side of the corresponding block,
The processor encrypts the block using the data included in the block, half of the first link information that is close to the block, and half of the second link information that is close to the block. A cloud server that dynamically updates encrypted documents.
삭제delete 제 7 항에 있어서,
상기 링크정보는 상기 서로 인접한 블록에 포함된 데이터의 일부를 중복해서 저장하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버.
According to claim 7,
The link information is a cloud server that dynamically updates an encrypted document that stores part of the data included in the adjacent blocks in duplicate.
제 7 항에 있어서,
상기 프로세서는 상기 복수의 블록들 중 특정 블록을 수정(Modification)하는 경우, 상기 특정 블록에 포함된 데이터를 상기 갱신 요청에 따른 데이터로 수정하고, 상기 수정된 특정 블록의 왼쪽에 연결된 링크정보 중 상기 수정된 특정 블록에 가까운 절반(Half)의 링크정보 및 상기 수정된 특정 블록의 오른쪽에 연결된 링크정보 중 상기 수정된 특정 블록에 가까운 절반(Half)의 링크정보를 상기 수정된 특정 블록에 포함된 데이터로 수정하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버.
According to claim 7,
When modifying a specific block among the plurality of blocks, the processor modifies data included in the specific block into data according to the update request, and modifies the data included in the specific block among the link information connected to the left of the modified specific block. Data included in the modified specific block using half of the link information close to the modified specific block and link information connected to the right side of the modified specific block. A cloud server that dynamically updates encrypted documents that you modify.
제 7 항에 있어서,
상기 프로세서는 상기 복수의 블록들 중 특정 블록을 삭제(Deletion)하는 경우, 상기 특정 블록 및 상기 특정 블록의 왼쪽에 연결된 링크정보 중 상기 특정 블록에 가까운 절반(Half)의 링크정보 및 상기 특정 블록의 오른쪽에 연결된 링크정보 중 상기 특정 블록에 가까운 절반(Half)의 링크정보를 삭제하고,
상기 특정 블록의 왼쪽에 연결된 링크정보 중 상기 특정 블록에서 먼 절반(Half)의 링크정보 및 상기 특정 블록의 오른쪽에 연결된 링크정보 중 상기 특정 블록에서 먼 절반(Half)의 링크정보를 하나의 링크정보로 결합하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버.
According to claim 7,
When the processor deletes a specific block among the plurality of blocks, the link information of the half close to the specific block among the link information connected to the specific block and the left side of the specific block and the link information of the specific block Among the link information connected to the right, half of the link information close to the specific block is deleted,
Among the link information connected to the left of the specific block, the link information of the half farthest from the specific block and the link information of the half farthest from the specific block among the link information connected to the right of the specific block are referred to as one link information. A cloud server that dynamically updates encrypted documents that combine into.
제 7 항에 있어서,
상기 프로세서는 상기 복수의 블록들 사이에 특정 블록을 삽입(Insertion)하는 경우, 상기 갱신 요청에 따른 데이터를 상기 특정 블록으로 생성하여 상기 복수의 블록들 중 특정 위치에 삽입하고 상기 특정 블록이 삽입된 위치의 링크정보를 분리하고, 상기 분리된 링크정보 중 왼쪽의 링크정보 및 상기 분리된 링크정보 중 오른쪽의 링크정보에 상기 특정 블록에 포함된 데이터를 각각 추가하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버.
According to claim 7,
When inserting a specific block between the plurality of blocks, the processor generates data according to the update request as the specific block and inserts it into a specific position among the plurality of blocks, and the specific block is inserted. A cloud that dynamically updates an encrypted document by separating the link information of the location and adding the data contained in the specific block to the link information on the left of the separated link information and the link information on the right of the separated link information. server.
KR1020210127904A 2021-09-28 2021-09-28 Dynamic update method for encrypted contents in cloud environment and cloud server KR102620855B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210127904A KR102620855B1 (en) 2021-09-28 2021-09-28 Dynamic update method for encrypted contents in cloud environment and cloud server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210127904A KR102620855B1 (en) 2021-09-28 2021-09-28 Dynamic update method for encrypted contents in cloud environment and cloud server

Publications (2)

Publication Number Publication Date
KR20230045267A KR20230045267A (en) 2023-04-04
KR102620855B1 true KR102620855B1 (en) 2024-01-02

Family

ID=85928430

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210127904A KR102620855B1 (en) 2021-09-28 2021-09-28 Dynamic update method for encrypted contents in cloud environment and cloud server

Country Status (1)

Country Link
KR (1) KR102620855B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012089094A (en) * 2010-10-22 2012-05-10 Intec Inc Storage service provision apparatus, system, service provision method and service provision program
KR101628195B1 (en) * 2014-12-08 2016-06-08 한국과학기술정보연구원 Double backup system using cloud service and method for data management
KR101714319B1 (en) 2016-05-24 2017-03-22 제주대학교 산학협력단 Data synchronization system between ship based on geocasting

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101593008B1 (en) * 2014-10-08 2016-02-12 재단법인 다차원 스마트 아이티 융합시스템 연구단 Method and system for generating integrity verification data
KR101979267B1 (en) 2017-05-29 2019-05-16 성균관대학교산학협력단 Encryption systems based on cloud storage and method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012089094A (en) * 2010-10-22 2012-05-10 Intec Inc Storage service provision apparatus, system, service provision method and service provision program
KR101628195B1 (en) * 2014-12-08 2016-06-08 한국과학기술정보연구원 Double backup system using cloud service and method for data management
KR101714319B1 (en) 2016-05-24 2017-03-22 제주대학교 산학협력단 Data synchronization system between ship based on geocasting

Also Published As

Publication number Publication date
KR20230045267A (en) 2023-04-04

Similar Documents

Publication Publication Date Title
AU2019204712B2 (en) Managing sensitive data elements in a blockchain network
CN109120639B (en) Data cloud storage encryption method and system based on block chain
CN110915164B (en) Processing blockchain data based on smart contract operations performed in trusted execution environments
US9825925B2 (en) Method and apparatus for securing sensitive data in a cloud storage system
US20170140375A1 (en) System and Method for Permissioned Distributed Block Chain
AU2019378667B2 (en) Performing map iterations in blockchain-based system
KR20200074910A (en) Off-chain smart contract service based on a reliable execution environment
US20140143541A1 (en) Method and Apparatus for Managing Encrypted Files in Network System
US9397984B1 (en) Apparatus and method for secure file transfer
CN110881063A (en) Storage method, device, equipment and medium of private data
US11251969B2 (en) Performing map iterations in a blockchain-based system
CN106209352A (en) There is effective cipher key derivative of forward security
CN106022014A (en) Packing method and unpacking method for resource files
KR20190105955A (en) Apparatus for managing electronic document using blockchain and operating method thereof
US20220216999A1 (en) Blockchain system for supporting change of plain text data included in transaction
KR102620855B1 (en) Dynamic update method for encrypted contents in cloud environment and cloud server
US20170366514A1 (en) Code obfuscation and associated objects
CN112906041A (en) Dynamic multi-party signature encryption and decryption method and system
US20130124862A1 (en) System And Method For Digital Rights Management With Secure Application-Content Binding
WO2019019675A1 (en) Simulated website login method and apparatus, server end and readable storage medium
KR20230096293A (en) Method and device for dynamic encryption using random counter in cloud environment
JP7235941B2 (en) Information management system and method
Nordström Personal clouds: Concedo
CN113360859B (en) Python interpreter-based encrypted file security control method and device
Mohamed et al. A novel method to protect content of microsoft word document using cryptography and steganography

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant