KR20230045267A - 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
KR20230045267A
KR20230045267A KR1020210127904A KR20210127904A KR20230045267A KR 20230045267 A KR20230045267 A KR 20230045267A KR 1020210127904 A KR1020210127904 A KR 1020210127904A KR 20210127904 A KR20210127904 A KR 20210127904A KR 20230045267 A KR20230045267 A KR 20230045267A
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
KR102620855B1 (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

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/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

A disclosed technology relates to a dynamic update method for encrypted content in a cloud environment and a cloud server. The method comprises the steps of: dividing, by a cloud server, input content into a plurality of blocks; generating, by the cloud server, a plurality of types 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 a corresponding block and a portion of link information on both sides connected to the corresponding block; and when the cloud server receives an update request for partial blocks among the plurality of blocks, updating only the partial blocks using the updated partial blocks and the link information connecting the partial blocks.

Description

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

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

클라우드 서비스는 사용자가 원격 저장소에 데이터를 저장하고 어디에서나 사용할 수 있도록 하여 다양한 부가 서비스를 제공하는 기술이다. 코로나 19 이후로 면대면 방식으로 진행되던 활동들이 비대면 방식으로 전환되면서 새로운 환경에 적합한 기술의 수요가 증가하고 있으며 클라우드 또한 이러한 수요중 하나에 속한다.A cloud service is a technology that provides various additional services by allowing users to store data in a 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 technology suitable for the new environment is increasing, and cloud computing is one of these demands.

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

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

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

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

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

개시된 기술의 실시 예들은 다음의 장점들을 포함하는 효과를 가질 수 있다. 다만, 개시된 기술의 실시 예들이 이를 전부 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다. Embodiments of the disclosed technology may have effects including the following advantages. However, this does not mean that the embodiments of the disclosed technology must include all of them, so 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 update data in an encrypted state, thereby preventing data exposure.

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

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

도 1은 개시된 기술의 일 실시예에 따라 클라우드 환경에서 암호화 된 문서를 동적으로 업데이트하는 과정을 나타낸 도면이다.
도 2는 개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법에 대한 순서도이다.
도 3은 개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 클라우드 서버에 대한 블록도이다.
도 4는 암호화 된 콘텐츠를 수정, 삭제 및 추가하는 예시를 나타낸 도면이다.
도 5는 복수의 블록과 링크정보를 암호화하는 단계를 나타낸 도면이다.
1 is a diagram illustrating a process of dynamically updating an encrypted document in a cloud environment according to an embodiment of the disclosed technology.
2 is a flowchart of a method of dynamically updating encrypted content in a cloud environment according to an embodiment of the disclosed technology.
3 is a block diagram of a cloud server for dynamically updating encrypted content in a cloud environment according to an embodiment of the disclosed technology.
4 is a diagram illustrating an example of modifying, deleting, and adding encrypted content.
5 is a diagram illustrating a step 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 modifications, equivalents, and substitutes included in the spirit and 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 above terms, and are only used for the purpose of distinguishing one component from another. used only as For example, a first element may be termed a second element, and similarly, a second element may be termed a first element, without departing from the scope of the present invention. The terms and/or include any combination of a plurality of related recited items or any of a plurality of related recited items.

본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 한다. 그리고 "포함한다" 등의 용어는 실시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.In the terms used herein, singular expressions should be understood to include plural expressions unless the context clearly dictates otherwise. And the term "includes" means that there is an embodied feature, number, step, operation, component, part, or combination thereof, but one or more other features or number, step, operation component, or part. or the possibility of the presence or addition of combinations thereof.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

220 단계에서 클라우드 서버는 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성한다. 링크정보는 블록에 포함된 정보 일부를 나누어 저장하는 것으로 각 블록을 연결하기 위한 정보를 의미한다. 가령, 이전 블록의 정보 일부와 다음 블록의 정보 일부가 저장될 수 있다. 클라우드 서버는 콘텐츠를 복수의 블록들과 링크정보들이 반복되는 사슬(Chain) 구조로 구분할 수 있다.In step 220, the cloud server generates a plurality of link information linking blocks adjacent to each other among a plurality of blocks. Link information refers to information for connecting each block by dividing and storing a part of information included in a 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 a plurality of blocks and link information are repeated.

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

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

도 3은 개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 클라우드 서버에 대한 블록도이다. 도 3을 참조하면 클라우드 서버(300)는 저장장치(310), 통신장치(320) 및 프로세서(330)를 포함한다. 클라우드 서버(300)는 클라우드 환경 내 서버 역할을 수행할 수 있는 디바이스로 구현될 수 있다. 예컨대, PC, 태블릿 또는 스마트폰일 수 있다.3 is a block diagram of a cloud server for 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 capable of serving as 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. The storage device may be implemented as a storage provided in a space different from the location of each collaborator terminal in order to apply to a cloud environment. The storage device may store only content for one cloud environment or separately store content for each of a plurality of cloud environments.

통신장치(320)는 복수의 협업자 단말기들 중 하나와 통신하여 콘텐츠에 대한 갱신 요청을 수신한다. 통신장치는 보안채널을 통해 갱신 요청에 따른 데이터를 수신한다. 통신장치(320)는 암호화 된 문서의 동적 업데이트 장치(300)의 통신모듈 또는 모뎀으로 구현될 수 있다. 통신장치는 복수의 협업자 단말기들과 유무선 인터넷으로 통신하여 문서를 수신할 수 있다. The communication device 320 communicates with one of the plurality of collaborator terminals and receives a request for updating content. 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 device 300 for dynamic updating of encrypted documents. The communication device may receive a document by communicating with a plurality of cooperator terminals through wired/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 linking adjacent blocks among the plurality of blocks, and divides each of the plurality of blocks into data included in the corresponding block and both sides connected to the corresponding block. Some of the link information is used and stored in a storage device in an encrypted state. Then, when an update request is received through the communication device, only some of the blocks are updated by using some of the blocks to be updated and link information connecting the some of the blocks. The processor 330 may be a CPU or an AP of the apparatus 300 for dynamically updating encrypted documents. 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 aforementioned cloud server 300 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 is not a medium that stores data for a short moment, such as a register, cache, or memory, but a medium that stores data semi-permanently and can be read by a device. Specifically, the various applications or programs described above are CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM (read-only memory), PROM (programmable read only memory), 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을 의미한다.Temporary readable media include static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), and enhanced SDRAM (Enhanced SDRAM). SDRAM, ESDRAM), Synchronous DRAM (Synclink DRAM, SLDRAM) and Direct Rambus RAM (DRRAM).

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

도 4의 A는 콘텐츠를 복수의 블록 및 링크정보들로 이루어진 체인 형태로 변환한 것을 나타낸 것이다. 각 블록은 평문을 일정 길이로 구분한 데이터들이다. 도 4에서는 예시적으로 데이터1부터 데이터6까지 도시하였지만 블록의 개수는 얼마든지 변경될 수 있다. 그리고 링크정보는 이전 블록과 다음 블록의 정보를 중복해서 저장하는 데이터이다. 클라우드 서버는 링크정보에 저장된 정보를 토대로 업데이트를 수행하기 때문에 블록을 평문으로 디코딩하는 과정이 생략된다.A of FIG. 4 shows content converted into a chain form composed of a plurality of blocks and link information. Each block is data divided into a certain length of plain text. Although data 1 to data 6 are illustratively shown in FIG. 4, the number of blocks may be changed. And the link information is data that stores the information of the previous block and the next block redundantly. Since the cloud server performs an update based on the information stored in the link information, the process of decoding the block 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 of FIG. 4 shows data 3 being modified to data 7. When data 3 corresponding to the third block is modified to be data 7, link 2 and link 3 connected to both sides of data 3 may be modified to link 6 and link 7, respectively. That is, part of data 3 stored in link 2 is modified as part of data 7 and updated as link 6, and part of data 3 stored in link 3 is 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 of FIG. 4 shows data 4 being deleted. When data 4 corresponding to the fourth block is deleted, 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 to store information of data 7 and data 5 in a partially redundant manner.

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

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

Figure pat00001
Figure pat00001

여기에서

Figure pat00002
은 평문
Figure pat00003
을 구분한 것을 의미하고,
Figure pat00004
는 맨 처음 블록의 좌측 링크정보 및 맨 마지막 블록의 우측 링크정보를 의미한다. 맨 처음 블록의 좌측 링크정보에는 처음 블록의 정보 일부만 저장된다. 마찬가지로 마지막 블록의 우측 링크정보에는 마지막 블록의 정보 일부만 저장된다. 구분된 콘텐츠
Figure pat00005
는 순차적으로 가장 좌측의 링크정보
Figure pat00006
부터 가장 우측의 링크정보
Figure pat00007
사이에 있는 복수의 블록들 및 복수의 링크정보들을 포함한다.From here
Figure pat00002
silver plain text
Figure pat00003
means to separate
Figure pat00004
Means the left link information of the first block and the right link information of the last block. In the left link information of the first block, only part of the information of the first block is stored. Similarly, only part of the information of the last block is stored in the right link information of the last block. Separated content
Figure pat00005
is the leftmost link information sequentially
Figure pat00006
Rightmost link information from
Figure pat00007
It includes a plurality of blocks and a plurality of link information in between.

한편, 블록

Figure pat00008
부터
Figure pat00009
까지를
Figure pat00010
(
Figure pat00011
는 1~6)으로 표현하고
Figure pat00012
에 암호화 함수
Figure pat00013
를 적용하면 아래 수학식 2의 형태로 정의할 수 있다.On the other hand, block
Figure pat00008
from
Figure pat00009
until
Figure pat00010
(
Figure pat00011
is expressed as 1 to 6)
Figure pat00012
to the encryption function
Figure pat00013
When applied, it can be defined in the form of Equation 2 below.

Figure pat00014
Figure pat00014

즉, 암호화 된 블록

Figure pat00015
는 구분된 블록
Figure pat00016
Figure pat00017
의 왼쪽 링크정보 중 우측에 중복 저장된 값
Figure pat00018
및 오른쪽 링크정보 중 좌측에 중복 저장된 값
Figure pat00019
를 포함한다.i.e. the encrypted block
Figure pat00015
is a delimited block
Figure pat00016
and
Figure pat00017
Redundantly stored value on the right side of the left link information of
Figure pat00018
and redundantly stored value on the left side of right link information
Figure pat00019
includes

앞서 언급한 바와 같이 도 5의 예시에서

Figure pat00020
는 1~6까지 이므로 첫 번째 암호화 된 블록 및 마지막 암호화 된 블록은 아래 수학식 3으로 표현할 수 있다.As mentioned above, in the example of FIG. 5
Figure pat00020
is from 1 to 6, so the first encrypted block and the last encrypted block can be expressed by Equation 3 below.

Figure pat00021
Figure pat00021

첫 번째 암호화 된 블록

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

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

Claims (12)

클라우드 서버가 입력되는 콘텐츠를 복수개의 블록들로 구분하는 단계;
상기 클라우드 서버가 상기 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성하는 단계;
상기 클라우드 서버가 상기 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 암호화하는 단계; 및
상기 클라우드 서버가 상기 복수의 블록들 중 일부의 블록에 대한 갱신 요청을 수신하면 상기 갱신되는 일부의 블록 및 상기 일부의 블록을 연결하는 링크정보를 이용하여 상기 일부의 블록만 갱신하는 단계;를 포함하는 암호화 된 문서의 동적 업데이트 방법.
Dividing, by the cloud server, input content into a plurality of blocks;
generating, by the cloud server, a plurality of pieces of link information connecting blocks adjacent to each other among the plurality of blocks;
encrypting, by the cloud server, each of the plurality of blocks by using some of data included in the corresponding block and link information on both sides connected to the corresponding block; and
and updating, by the cloud server, only the partial blocks by using the updated partial blocks and link information connecting the partial blocks when the cloud server receives an update request for some blocks among the plurality of blocks. How to dynamically update encrypted documents that do.
제 1 항에 있어서,
상기 해당 블록은 상기 해당 블록의 일측의 인접 블록과 연결하는 제 1 링크정보 및 상기 해당 블록의 타측의 인접 블록과 연결하는 제 2 링크정보와 연결되고,
상기 클라우드 서버는 상기 해당 블록에 포함된 데이터, 상기 제 1 링크정보 중 상기 해당 블록에 가까운 절반(Half)의 링크정보 및 상기 제 2 링크정보 중 상기 해당 블록에 가까운 절반의 링크정보를 이용하여 상기 해당 블록을 암호화하는 암호화 된 문서의 동적 업데이트 방법.
According to claim 1,
The corresponding block is connected to first link information connected to an adjacent block on one side of the corresponding block and second link information connected to an adjacent block on the other side of the corresponding block,
The cloud server uses half of the data included in the corresponding block, link information of half of the first link information close to the corresponding block, and half of the link information of the second link information close to the corresponding block, A dynamic update method for an encrypted document that encrypts that block.
제 1 항에 있어서,
상기 링크정보는 상기 서로 인접한 블록에 포함된 데이터의 일부를 중복해서 저장하는 암호화 된 문서의 동적 업데이트 방법.
According to claim 1,
The link information is a method of dynamically updating an encrypted document in which part of the data included in the blocks adjacent to each other is redundantly stored.
제 1 항에 있어서,
상기 클라우드 서버는 상기 복수의 블록들 중 특정 블록을 수정(Modification)하는 경우, 상기 특정 블록에 포함된 데이터를 상기 갱신 요청에 따른 데이터로 수정하고, 상기 수정된 특정 블록의 왼쪽에 연결된 링크정보 중 상기 수정된 특정 블록에 가까운 절반(Half)의 링크정보 및 상기 수정된 특정 블록의 오른쪽에 연결된 링크정보 중 상기 수정된 특정 블록에 가까운 절반(Half)의 링크정보를 상기 수정된 특정 블록에 포함된 데이터로 수정하는 암호화 된 문서의 동적 업데이트 방법.
According to claim 1,
When modifying a specific block among the plurality of blocks, the cloud server modifies data included in the specific block to data according to the update request, and among the link information connected to the left of the modified specific block Half of link information close to the modified specific block and half link information connected to the right of the modified specific block are included in the modified specific block. A dynamic update method for encrypted documents that you modify with data.
제 1 항에 있어서,
상기 클라우드 서버는 상기 복수의 블록들 중 특정 블록을 삭제(Deletion)하는 경우, 상기 특정 블록 및 상기 특정 블록의 왼쪽에 연결된 링크정보 중 상기 특정 블록에 가까운 절반(Half)의 링크정보 및 상기 특정 블록의 오른쪽에 연결된 링크정보 중 상기 특정 블록에 가까운 절반(Half)의 링크정보를 삭제하고,
상기 특정 블록의 왼쪽에 연결된 링크정보 중 상기 특정 블록에서 먼 절반(Half)의 링크정보 및 상기 특정 블록의 오른쪽에 연결된 링크정보 중 상기 특정 블록에서 먼 절반(Half)의 링크정보를 하나의 링크정보로 결합하는 암호화 된 문서의 동적 업데이트 방법.
According to claim 1,
When the cloud server deletes a specific block from among the plurality of blocks, link information of half of the specific block and link information connected to the left side of the specific block close to the specific block and the specific block Among the link information connected to the right of, delete link information of half close to the specific block,
Among the link information connected to the left side of the specific block, half of the link information far from the specific block and the link information of the half far from the specific block among the link information connected to the right side of the specific block are 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 into a specific position among the plurality of blocks, and inserts the specific block. A method of dynamically updating an encrypted document by separating link information at the separated location and adding data included in the specific block to link information on the left of the separated link information and link information on the right of the separated link information.
콘텐츠를 저장하는 저장장치;
상기 콘텐츠에 대한 갱신 요청을 수신하는 통신장치; 및
상기 콘텐츠를 복수개의 블록들로 구분하고 상기 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성하고 상기 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 암호화한 상태로 상기 저장장치에 저장하고, 상기 갱신 요청에 따라 갱신되는 일부의 블록 및 상기 일부의 블록을 연결하는 링크정보를 이용하여 상기 일부의 블록만 갱신하는 프로세서;를 포함하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버.
a storage device for storing content;
a communication device receiving an update request for the content; and
Divides the content into a plurality of blocks, generates a plurality of link information linking adjacent blocks among the plurality of blocks, and divides each of the plurality of blocks into data included in the block and link information on both sides connected to the block. A processor for storing some of the blocks in an encrypted state in the storage device and updating only the partial blocks using link information connecting the partial blocks and the partial blocks updated according to the update request; A cloud server that dynamically updates encrypted documents that
제 7 항에 있어서,
상기 해당 블록은 상기 해당 블록의 일측의 인접 블록과 연결하는 제 1 링크정보 및 상기 해당 블록의 타측의 인접 블록과 연결하는 제 2 링크정보와 연결되고,
상기 프로세서는 상기 해당 블록에 포함된 데이터, 상기 제 1 링크정보 중 상기 해당 블록에 가까운 절반(Half)의 링크정보 및 상기 제 2 링크정보 중 상기 해당 블록에 가까운 절반의 링크정보를 이용하여 상기 해당 블록을 암호화하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버.
According to claim 7,
The corresponding block is connected to first link information connected to an adjacent block on one side of the corresponding block and second link information connected to an adjacent block on the other side of the corresponding block,
The processor uses data included in the corresponding block, link information of half of the first link information close to the corresponding block, and half of the link information of the second link information close to the corresponding block to determine the corresponding block. A cloud server that dynamically updates encrypted documents encrypting blocks.
제 7 항에 있어서,
상기 링크정보는 상기 서로 인접한 블록에 포함된 데이터의 일부를 중복해서 저장하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버.
According to claim 7,
The link information is a cloud server for dynamically updating an encrypted document that redundantly stores some of the data included in the blocks adjacent to each other.
제 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 to data according to the update request, and among the link information linked to the left of the modified specific block Among the half link information close to the modified specific block and link information connected to the right of the modified specific block, the half link information close to the modified specific block is data included in the modified specific block. A cloud server that dynamically updates encrypted documents that you modify with .
제 7 항에 있어서,
상기 프로세서는 상기 복수의 블록들 중 특정 블록을 삭제(Deletion)하는 경우, 상기 특정 블록 및 상기 특정 블록의 왼쪽에 연결된 링크정보 중 상기 특정 블록에 가까운 절반(Half)의 링크정보 및 상기 특정 블록의 오른쪽에 연결된 링크정보 중 상기 특정 블록에 가까운 절반(Half)의 링크정보를 삭제하고,
상기 특정 블록의 왼쪽에 연결된 링크정보 중 상기 특정 블록에서 먼 절반(Half)의 링크정보 및 상기 특정 블록의 오른쪽에 연결된 링크정보 중 상기 특정 블록에서 먼 절반(Half)의 링크정보를 하나의 링크정보로 결합하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버.
According to claim 7,
When the processor deletes a specific block from among the plurality of blocks, the link information of half of the specific block and link information connected to the left side of the specific block and half of the link information close to the specific block and 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 side of the specific block, half of the link information far from the specific block and the link information of the half far from the specific block among the link information connected to the right side of the specific block are one link information. A cloud server that dynamically updates encrypted documents that you 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, inserts it into a specific position among the plurality of blocks, and inserts the specific block into the inserted block. A cloud dynamically updating an encrypted document that separates link information of a location and adds the 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, respectively. 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 true KR20230045267A (en) 2023-04-04
KR102620855B1 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 (5)

* 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
KR20140130408A (en) * 2014-10-08 2014-11-10 재단법인 다차원 스마트 아이티 융합시스템 연구단 Method and system for generating integrity verification data
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
KR101979267B1 (en) 2017-05-29 2019-05-16 성균관대학교산학협력단 Encryption systems based on cloud storage and method thereof

Patent Citations (5)

* 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
KR20140130408A (en) * 2014-10-08 2014-11-10 재단법인 다차원 스마트 아이티 융합시스템 연구단 Method and system for generating integrity verification data
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
KR101979267B1 (en) 2017-05-29 2019-05-16 성균관대학교산학협력단 Encryption systems based on cloud storage and method thereof

Also Published As

Publication number Publication date
KR102620855B1 (en) 2024-01-02

Similar Documents

Publication Publication Date Title
US20190372756A1 (en) Method for managing content based on blockchain and system for performing the method
US20150365385A1 (en) Method and apparatus for securing sensitive data in a cloud storage system
JP2020525875A (en) Processing blockchain data based on smart contract behavior executed in a trusted execution environment
US11108555B2 (en) Performing map iterations in a blockchain-based system
US20140143541A1 (en) Method and Apparatus for Managing Encrypted Files in Network System
US9397984B1 (en) Apparatus and method for secure file transfer
US11251969B2 (en) Performing map iterations in a blockchain-based system
CN114982194A (en) Block chain implemented data hiding scheme for improved data secure communication, storage and transmission
Park et al. Research on Note-Taking Apps with Security Features.
US9124422B2 (en) System and method for digital rights management with secure application-content binding
KR102620855B1 (en) Dynamic update method for encrypted contents in cloud environment and cloud server
US20130124456A1 (en) Managing document workflow
CN110392035B (en) System and method for secure data processing
Marsalek et al. Unleashing the full potential of blockchain technology for security-sensitive business applications
US20200304317A1 (en) Secure file
Mir et al. Secure web-based communication
CN108985109A (en) A kind of date storage method and device
KR20230096293A (en) Method and device for dynamic encryption using random counter in cloud environment
CN112906041A (en) Dynamic multi-party signature encryption and decryption method and system
Nordström Personal clouds: Concedo
Mohamed et al. A novel method to protect content of microsoft word document using cryptography and steganography
Chaudhary A novel image encryption method based on LSB technique and AES algorithm
CN110516468A (en) A kind of method and apparatus of virutal machine memory snapshot encryption
Arora et al. SecureCEdit: An approach for secure cloud-based document editing
TWI509459B (en) Colud electronic notary service method and system thereof

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