KR102620855B1 - 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버 - Google Patents

클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버 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
English (en)
Other versions
KR20230045267A (ko
Inventor
윤택영
Original Assignee
단국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 단국대학교 산학협력단 filed Critical 단국대학교 산학협력단
Priority to KR1020210127904A priority Critical patent/KR102620855B1/ko
Publication of KR20230045267A publication Critical patent/KR20230045267A/ko
Application granted granted Critical
Publication of KR102620855B1 publication Critical patent/KR102620855B1/ko

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

Abstract

개시된 기술은 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버에 관한 것으로, 클라우드 서버가 입력되는 콘텐츠를 복수개의 블록들로 구분하는 단계; 상기 클라우드 서버가 상기 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성하는 단계; 상기 클라우드 서버가 상기 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 암호화하는 단계; 및 상기 클라우드 서버가 상기 복수의 블록들 중 일부의 블록에 대한 갱신 요청을 수신하면 상기 갱신되는 일부의 블록 및 상기 일부의 블록을 연결하는 링크정보를 이용하여 상기 일부의 블록만 갱신하는 단계;를 포함한다.

Description

클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버 {DYNAMIC UPDATE METHOD FOR ENCRYPTED CONTENTS IN CLOUD ENVIRONMENT AND CLOUD SERVER}
개시된 기술은 클라우드 환경에서 콘텐츠를 암호화한 상태로 업데이트하는 방법 및 암호화된 문서를 동적으로 업데이트하는 클라우드 서버에 관한 것이다.
클라우드 서비스는 사용자가 원격 저장소에 데이터를 저장하고 어디에서나 사용할 수 있도록 하여 다양한 부가 서비스를 제공하는 기술이다. 코로나 19 이후로 면대면 방식으로 진행되던 활동들이 비대면 방식으로 전환되면서 새로운 환경에 적합한 기술의 수요가 증가하고 있으며 클라우드 또한 이러한 수요중 하나에 속한다.
이러한 클라우드 서비스는 비대면 환경에 특화된 기술로 물리적으로 떨어져 있는 사용자 간에 데이터 공유 및 협업이 가능하다. 다만 편리한 만큼 필연적으로 데이터 보안에 따른 이슈가 존재하며 지금까지 클라우드 기반 서비스의 보안을 위해 많은 연구가 진행되어 왔다. 안전한 협업을 위해서 상당수의 클라우드 서비스에서는 데이터를 내부 사용자들 간에만 공유되는 비밀키를 이용하여 암호화하고 데이터 갱신 시 이를 복호화하여 갱신한 후 다시 암호화하는 방법을 이용하였다. 그러나, 이러한 방법은 다수의 사용자들이 동시에 문서를 작업하는 클라우드 환경에서는 서버의 로드가 과도하게 증가하는 문제가 있었다.
한국 등록특허 제10-1979267호
개시된 기술은 클라우드 환경에서 암호화된 콘텐츠를 복호화하지 않고 동적으로 업데이트하는 방법 및 클라우드 서버를 제공하는데 있다.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 제 1 측면은 클라우드 서버가 입력되는 콘텐츠를 복수개의 블록들로 구분하는 단계, 상기 클라우드 서버가 상기 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성하는 단계, 상기 클라우드 서버가 상기 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 암호화하는 단계 및 상기 클라우드 서버가 상기 복수의 블록들 중 일부의 블록에 대한 갱신 요청을 수신하면 상기 갱신되는 일부의 블록 및 상기 일부의 블록을 연결하는 링크정보를 이용하여 상기 일부의 블록만 갱신하는 단계를 포함하는 암호화 된 문서의 동적 업데이트 방법을 제공하는데 있다.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 제 2 측면은 콘텐츠를 저장하는 저장장치, 상기 콘텐츠에 대한 갱신 요청을 수신하는 통신장치 및 상기 콘텐츠를 복수개의 블록들로 구분하고 상기 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성하고 상기 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 암호화한 상태로 상기 저장장치에 저장하고, 상기 갱신 요청에 따라 갱신되는 일부의 블록 및 상기 일부의 블록을 연결하는 링크정보를 이용하여 상기 일부의 블록만 갱신하는 프로세서를 포함하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버를 제공하는데 있다.
개시된 기술의 실시 예들은 다음의 장점들을 포함하는 효과를 가질 수 있다. 다만, 개시된 기술의 실시 예들이 이를 전부 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버는 암호화 된 상태로 데이터를 업데이트하여 데이터 노출을 방지하는 효과가 있다.
또한, 암호화 된 상태로 동적 업데이트를 수행하므로 잦은 복호화를 수행하는 종래 기술 대비 서버 로드를 줄이는 효과가 있다.
또한, 블록 단위 암호화를 통해 데이터 유출되더라도 평문을 알아내지 못하게 하는 효과가 있다.
도 1은 개시된 기술의 일 실시예에 따라 클라우드 환경에서 암호화 된 문서를 동적으로 업데이트하는 과정을 나타낸 도면이다.
도 2는 개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법에 대한 순서도이다.
도 3은 개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 클라우드 서버에 대한 블록도이다.
도 4는 암호화 된 콘텐츠를 수정, 삭제 및 추가하는 예시를 나타낸 도면이다.
도 5는 복수의 블록과 링크정보를 암호화하는 단계를 나타낸 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1 , 제 2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 한다. 그리고 "포함한다" 등의 용어는 실시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.
도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다.
그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다. 따라서, 본 명세서를 통해 설명되는 각 구성부들의 존재 여부는 기능적으로 해석되어야 할 것이다.
도 1은 개시된 기술의 일 실시예에 따라 클라우드 환경에서 암호화 된 문서를 동적으로 업데이트하는 과정을 나타낸 도면이다. 도 1을 참조하면 클라우드 서버는 복수의 협업자 단말기와 클라우드 환경을 구축할 수 있다. 복수의 협업자들은 각자의 단말기를 이용하여 클라우드 서버와 형성한 보안채널을 통해 작성한 데이터를 전송할 수 있다. 클라우드 서버는 각 협업자 단말기로부터 전송되는 데이터를 콘텐츠로 취합하여 스토리지에 저장할 수 있다. 여기에서 콘텐츠는 협업자들이 작성하는 문서, 이미지, 동영상 등 다양한 종류의 데이터일 수 있다. 클라우드 서버는 이후에도 주기적으로 또는 비주기적으로 각 협업자 단말기들로부터 전송되는 데이터를 콘텐츠에 업데이트할 수 있다. 클라우드 서버는 문서를 업데이트할 시 외부로 데이터가 유출되는 것을 방지하기 위해서 콘텐츠를 암호화 된 상태로 저장하고 있으며 업데이트 시 암호화 된 상태에서 업데이트를 수행할 수 있다.
한편, 클라우드 서버는 저장된 콘텐츠를 업데이트 하는 경우 콘텐츠를 암호화 된 상태에서 동적으로 업데이트할 수 있다. 일 실시예로, 클라우드 서버가 복수의 협업자 단말기들 중 하나로부터 콘텐츠에 대한 갱신 요청을 수신하면 암호화 된 콘텐츠를 평문으로 복호화하여 업데이트하지 않고 암호화 된 상태 그대로 업데이트를 적용할 수 있다. 이러한 동작을 위해 클라우드 서버는 사전에 콘텐츠를 아래와 같이 블록 단위로 암호화한 상태로 저장할 수 있다.
먼저, 클라우드 서버는 콘텐츠를 복수개의 블록들로 구분할 수 있다. 각각의 블록들은 평문 상태의 콘텐츠에 대응되는 것으로 평문과 동일한 비율로 구분될 수 있다. 가령, 한 문단 내 복수개의 행들을 각각 복수개의 블록들로 구분할 수 있다. 클라우드 서버는 종래의 DES, AES 방식와 같이 임의의 길이의 평문인 콘텐츠를 고정된 길이의 블록으로 구분할 수 있다. 여기에서 구분의 의미는 그 자체로 일종의 암호화 과정일 수 있다.
한편, 클라우드 서버는 복수개의 블록들을 구분하면 각 블록들 사이에 복수개의 링크정보를 생성한다. 클라우드 서버는 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성할 수 있다. 여기에서 링크정보는 이전 순번의 블록에 포함된 정보의 일부 및 다음 순번의 블록에 포함된 정보의 일부를 중복해서 저장하는 정보를 의미한다. 예컨대, 복수개의 블록들 중 특정 블록에 해당 블록의 일측의 인접 블록과 연결하는 제 1 링크정보 및 해당 블록의 타측의 인접 블록과 연결하는 제 2 링크정보가 생성될 수 있다. 링크정보는 암호화 된 상태의 콘텐츠를 실시간으로 업데이트할 때 업데이트하고자 하는 문서가 콘텐츠의 어느 위치에 적용될 것인지 확인하기 위해 이용될 수 있다. 즉, 블록으로 구분된 정보들을 디코딩하여 평문 상태로 되돌리지 않고 링크정보에 저장된 일부의 정보를 토대로 업데이트할 문서가 적용될 위치를 확인할 수 있다.
한편, 클라우드 서버는 복수개의 링크정보를 이용하여 복수개의 블록들을 블록 단위로 각각 암호화할 수 있다. 예컨대, 클라우드 서버는 복수개의 블록들 중 특정 블록에 포함된 데이터, 제 1 링크정보 중 특정 블록에 가까운 절반(Half)의 링크정보 및 제 2 링크정보 중 특정 블록에 가까운 절반의 링크정보를 이용하여 해당 블록을 암호화할 수 있다. 이러한 과정을 각 블록들 마다 적용함으로써 콘텐츠를 복수개의 블록데이터로 암호화할 수 있다.
한편, 클라우드 서버는 복수의 협업자 단말기들과 사전에 비밀키를 공유할 수 있다. 비밀키는 암호화 된 콘텐츠에 접근하기 위한 것으로 보안채널을 통해 공유될 수 있다. 비밀키는 특정 단말기에만 공유되는 것이 아니라 보안채널을 통해 클라우드 환경 내 모든 단말기들에 공유될 수 있다.
한편, 클라우드 서버는 상술한 과정에 따라 콘텐츠를 암호화 된 상태로 저장한 후 복수의 협업자 단말기들 중 하나로부터 콘텐츠의 일부를 업데이트하기 위한 갱신 요청을 수신할 수 있다. 갱신 요청은 복수의 협업자 단말기들 중 하나의 단말기가 보안채널을 통해 전송할 수 있다. 클라우드 서버는 갱신 요청에 따라 복수개의 블록들 중 갱신되는 일부의 블록 및 일부의 블록을 연결하는 링크정보를 이용하여 나머지 블록들을 그대로 유지하되 일부의 블록만 갱신할 수 있다. 클라우드 서버는 복수의 링크정보들을 이용하여 복수개의 블록들 중 업데이트 할 데이터에 상응하는 위치의 특정 블록이 어디에 있는지 확인할 수 있다. 즉, 클라우드 서버는 블록을 평문으로 디코딩하지 않고 링크정보에 저장된 정보를 토대로 콘텐츠를 업데이트할 수 있다. 클라우드 서버는 콘텐츠를 블록 단위로 암호화하였으므로 암호화 된 각각의 블록들이 포함하는 링크정보를 이용하여 협업자가 콘텐츠 내 어느 부분을 수정할 것인지 확인할 수 있다.
한편, 클라우드 서버의 업데이트 과정은 기본적으로 수정, 삭제 및 추가로 구분할 수 있다. 먼저 복수의 블록들 중 특정 블록을 수정(Modification)하는 경우, 클라우드 서버는 특정 블록에 포함된 데이터를 갱신 요청에 따른 데이터로 수정할 수 있다. 그리고, 수정된 특정 블록의 왼쪽에 연결된 링크정보 중 수정된 특정 블록에 가까운 절반(Half)의 링크정보 및 수정된 특정 블록의 오른쪽에 연결된 링크정보 중 수정된 특정 블록에 가까운 절반(Half)의 링크정보를 수정된 특정 블록에 포함된 데이터로 수정할 수 있다. 앞서 설명한 바와 같이 특정 블록의 양쪽에 연결되는 링크정보는 특정 블록에 포함된 데이터의 일부를 중복해서 저장하고 있으므로 특정 블록이 수정될 시 수정된 데이터를 절반씩 중복해서 저장할 수 있다.
한편, 복수의 블록들 중 특정 블록을 삭제(Deletion)하는 경우, 클라우드 서버는 특정 블록 및 특정 블록의 왼쪽에 연결된 링크정보 중 특정 블록에 가까운 절반(Half)의 링크정보 및 특정 블록의 오른쪽에 연결된 링크정보 중 특정 블록에 가까운 절반(Half)의 링크정보를 삭제할 수 있다. 그리고 특정 블록의 왼쪽에 연결된 링크정보 중 특정 블록에서 먼 절반(Half)의 링크정보 및 특정 블록의 오른쪽에 연결된 링크정보 중 특정 블록에서 먼 절반(Half)의 링크정보를 하나의 링크정보로 결합할 수 있다. 즉, 특정 블록이 삭제되면서 양쪽의 링크정보가 저장하고 있던 특정블록의 데이터가 삭제되었으므로 양쪽의 링크정보가 저장하는 잔여 데이터를 합쳐서 하나의 링크정보로 결합할 수 있다.
한편, 복수의 블록들 사이에 특정 블록을 삽입(Insertion)하는 경우, 클라우드 서버는 갱신 요청에 따른 데이터를 특정 블록으로 생성할 수 있다. 당연히 생성되는 특정 블록은 기존의 복수개의 블록에 포함되지 않은 새로운 블록이다. 클라우드 서버는 생성된 블록을 복수의 블록들 중 특정 위치에 삽입할 수 있다. 이 과정에서 클라우드 서버는 특정 블록이 삽입된 위치의 링크정보를 분리하고, 분리된 링크정보 중 왼쪽의 링크정보 및 분리된 링크정보 중 오른쪽의 링크정보에 특정 블록에 포함된 데이터를 각각 추가할 수 있다. 앞서 삭제 과정에서 잔여 링크정보끼리 하나로 합치는 것과 반대로 링크정보에 새로 추가된 데이터를 저장할 수 있다. 이러한 과정에 따라 클라우드 서버는 콘텐츠를 평문으로 디코딩하지 않고 암호화한 상태 그대로 동적 업데이트를 수행할 수 있다.
도 2는 개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법에 대한 순서도이다. 도 2를 참조하면 암호화 된 문서의 동적 업데이트 방법은 210 내지 240 단계를 포함하며 클라우드 서버를 통해 순차적으로 수행될 수 있다.
210 단계에서 클라우드 서버는 콘텐츠를 복수개의 블록들로 구분한다. 클라우드 서버는 콘텐츠가 원본 그대로 외부에 노출되는 것을 방지하기 위해서 평문 상태의 콘텐츠를 복수개의 블록들로 인코딩할 수 있다.
220 단계에서 클라우드 서버는 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성한다. 링크정보는 블록에 포함된 정보 일부를 나누어 저장하는 것으로 각 블록을 연결하기 위한 정보를 의미한다. 가령, 이전 블록의 정보 일부와 다음 블록의 정보 일부가 저장될 수 있다. 클라우드 서버는 콘텐츠를 복수의 블록들과 링크정보들이 반복되는 사슬(Chain) 구조로 구분할 수 있다.
230 단계에서 클라우드 서버는 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 블록 단위로 암호화한다. 도 1을 통해 설명한 바와 같이 특정 순번의 블록과 이전 순번의 링크정보 및 다음 순번의 링크정보에 각각 저장된 중복값을 함께 암호화할 수 있다. 클라우드 서버는 210 내지 230 단계에 따라 콘텐츠를 블록 단위로 암호화하여 저장한다.
240 단계에서 클라우드 서버는 복수의 블록들 중 일부의 블록에 대한 갱신 요청을 수신하면 갱신되는 일부의 블록 및 일부의 블록을 연결하는 링크정보를 이용하여 나머지 블록들은 그대로 유지한 상태로 일부의 블록만 갱신한다. 클라우드 서버는 클라우드 환경에 속한 복수의 협업자 단말기들 중 하나로부터 콘텐츠의 일부를 업데이트하기 위한 갱신 요청을 수신한다. 240 단계는 210 내지 230 단계가 선행된 이후 콘텐츠를 업데이트하는 단계에 해당된다. 클라우드 서버가 수신하는 갱신 요청은 콘텐츠에 반영될 데이터일 수 있다. 클라우드 서버는 콘텐츠를 업데이트하기 위한 데이터를 수신하면 일부의 블록을 수정하거나 삭제 또는 추가할 수 있다. 특정 블록이 수정되거나 삭제 또는 추가될 경우 해당 블록의 양쪽 링크정보도 함께 갱신될 수 있다.
도 3은 개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 클라우드 서버에 대한 블록도이다. 도 3을 참조하면 클라우드 서버(300)는 저장장치(310), 통신장치(320) 및 프로세서(330)를 포함한다. 클라우드 서버(300)는 클라우드 환경 내 서버 역할을 수행할 수 있는 디바이스로 구현될 수 있다. 예컨대, PC, 태블릿 또는 스마트폰일 수 있다.
저장장치(310)는 프로세서를 통해 암호화 된 콘텐츠를 저장한다. 저장장치는 클라우드 환경에 적용하기 위해 각 협업자 단말기들의 위치와 서로 다른 공간에 마련된 스토리지로 구현될 수 있다. 저장장치는 하나의 클라우드 환경에 대한 콘텐츠만 저장하거나 복수의 클라우드 환경 각각에 대한 콘텐츠를 구분하여 저장할 수 있다.
통신장치(320)는 복수의 협업자 단말기들 중 하나와 통신하여 콘텐츠에 대한 갱신 요청을 수신한다. 통신장치는 보안채널을 통해 갱신 요청에 따른 데이터를 수신한다. 통신장치(320)는 암호화 된 문서의 동적 업데이트 장치(300)의 통신모듈 또는 모뎀으로 구현될 수 있다. 통신장치는 복수의 협업자 단말기들과 유무선 인터넷으로 통신하여 문서를 수신할 수 있다.
프로세서(330)는 콘텐츠를 복수개의 블록들로 구분하고 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성하고 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 암호화한 상태로 저장장치에 저장한다. 이후 통신장치를 통해 갱신 요청이 수신되면 갱신되는 일부의 블록 및 상기 일부의 블록을 연결하는 링크정보를 이용하여 일부의 블록만 갱신한다. 프로세서(330)는 암호화 된 문서의 동적 업데이트 장치(300)의 CPU 내지는 AP일 수 있다. 프로세서는 도 1 및 도 2를 통해 설명한 방식으로 암호화 된 상태로 저장된 콘텐츠를 동적으로 업데이트할 수 있다.
한편, 상술한 클라우드 서버(300)는 컴퓨터에서 실행될 수 있는 실행 가능한 알고리즘을 포함하는 프로그램(또는 어플리케이션)으로 구현될 수도 있다. 상기 프로그램은 일시적 또는 비일시적 판독 가능 매체(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) 또는 플래시 메모리 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
일시적 판독 가능 매체는 스태틱 램(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을 의미한다.
도 4는 암호화 된 콘텐츠를 수정, 삭제 및 추가하는 예시를 나타낸 도면이다. 도 4와 같이 클라우드 서버는 다수의 협업자들이 작성하는 콘텐츠를 실시간으로 업데이트할 수 있다. 클라우드 서버는 블록 단위로 암호화된 콘텐츠를 복호화하지 않고 수정, 삭제 및 추가할 수 있다.
도 4의 A는 콘텐츠를 복수의 블록 및 링크정보들로 이루어진 체인 형태로 변환한 것을 나타낸 것이다. 각 블록은 평문을 일정 길이로 구분한 데이터들이다. 도 4에서는 예시적으로 데이터1부터 데이터6까지 도시하였지만 블록의 개수는 얼마든지 변경될 수 있다. 그리고 링크정보는 이전 블록과 다음 블록의 정보를 중복해서 저장하는 데이터이다. 클라우드 서버는 링크정보에 저장된 정보를 토대로 업데이트를 수행하기 때문에 블록을 평문으로 디코딩하는 과정이 생략된다.
한편, 도 4의 B-1은 데이터3을 데이터7로 수정하는 것을 나타낸 것이다. 3번째 블록에 해당하는 데이터3을 데이터7로 수정하는 경우, 데이터3의 양 측에 연결된 링크2 및 링크3은 각각 링크6과 링크7로 수정될 수 있다. 즉, 링크2에 저장되어 있던 데이터3의 정보 일부는 데이터7의 일부로 수정되어 링크6으로 갱신되고 링크3에 저장되어 있던 데이터3의 정보 일부는 데이터7의 일부로 수정되어 링크7로 갱신될 수 있다.
한편, 도 4의 B-2는 데이터4를 삭제하는 것을 나타낸 것이다. 4번째 블록에 해당하는 데이터4를 삭제하는 경우, 데이터4의 양 측에 연결된 링크7 및 링크4에 각각 저장된 데이터4의 일부 정보도 함께 삭제될 수 있다. 데이터4와 함께 링크7 및 링크4가 삭제되면서 데이터7과 데이터5 사이에는 각각 데이터7과 데이터5의 정보를 일부 중복해서 저장하는 링크8이 생성될 수 있다.
한편, 도 4의 B-3은 데이터2와 데이터7 사이에 데이터8을 추가하는 것을 나타낸 것이다. 데이터8이 추가되면서 데이터2와 데이터8 사이에는 양 블록의 정보를 일부 중복해서 저장하는 링크9가 생성되고 데이터8과 데이터7 사이에는 양 블록의 정보를 일부 중복해서 저장하는 링크10이 생성될 수 있다.
도 5는 복수의 블록과 링크정보를 암호화하는 단계를 나타낸 도면이다. 도 5에 도시된 단계에 따라 클라우드 서버는 평문 상태의 콘텐츠를 암호화할 수 있다. 먼저 평문 상태의 콘텐츠를 복수개의 블록들(m1~m6)로 구분한다. 각 블록의 길이 내지는 비율은 서로 동일할 수 있다. 그리고 블록들 사이에 링크정보를 생성한다. 링크정보는 이전 블록과 다음 블록의 정보 일부를 중복해서 저장하는 값(Redundant Value)이다. 도 5를 기준으로 예를 들면 링크정보 r1은 블록 m1 및 m2의 정보 일부를 중복해서 저장한다. 예컨대, 블록 m1의 우측 절반에 해당하는 정보와 블록 m2의 좌측 절반에 해당하는 정보가 링크정보 r1에 저장될 수 있다.
한편, 구분된 데이터는 아래 수학식 1과 같이 표현할 수 있다.
여기에서 은 평문 을 구분한 것을 의미하고, 는 맨 처음 블록의 좌측 링크정보 및 맨 마지막 블록의 우측 링크정보를 의미한다. 맨 처음 블록의 좌측 링크정보에는 처음 블록의 정보 일부만 저장된다. 마찬가지로 마지막 블록의 우측 링크정보에는 마지막 블록의 정보 일부만 저장된다. 구분된 콘텐츠 는 순차적으로 가장 좌측의 링크정보 부터 가장 우측의 링크정보 사이에 있는 복수의 블록들 및 복수의 링크정보들을 포함한다.
한편, 블록 부터 까지를 (는 1~6)으로 표현하고 에 암호화 함수 를 적용하면 아래 수학식 2의 형태로 정의할 수 있다.
즉, 암호화 된 블록 는 구분된 블록 의 왼쪽 링크정보 중 우측에 중복 저장된 값 및 오른쪽 링크정보 중 좌측에 중복 저장된 값 를 포함한다.
앞서 언급한 바와 같이 도 5의 예시에서 는 1~6까지 이므로 첫 번째 암호화 된 블록 및 마지막 암호화 된 블록은 아래 수학식 3으로 표현할 수 있다.
첫 번째 암호화 된 블록 에 맨 처음 좌측에 위치하는 링크정보의 우측에 중복 저장된 값 및 우측에 위치하는 링크정보 중 좌측에 중복 저장된 값 를 포함한다. 그리고 마지막 암호화 된 블록 에 좌측에 위치하는 링크정보 중 우측에 중복 저장된 값 와 마지막에 위치하는 링크정보 중 좌측에 중복 저장된 값 을 포함한다. 물론 사이에 나머지 블록들 또한 동일하게 암호화될 수 있다. 클라우드 서버는 이러한 과정에 따라 평문 상태의 콘텐츠를 암호화 된 블록 상태로 변환할 수 있다.
개시된 기술의 일 실시예에 따른 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버는 이해를 돕기 위하여 도면에 도시된 실시 예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 개시된 기술의 진정한 기술적 보호범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.

Claims (12)

  1. 클라우드 서버가 입력되는 콘텐츠를 복수개의 블록들로 구분하는 단계;
    상기 클라우드 서버가 상기 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성하는 단계;
    상기 클라우드 서버가 상기 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 암호화하는 단계; 및
    상기 클라우드 서버가 상기 복수의 블록들 중 일부의 블록에 대한 갱신 요청을 수신하면 상기 갱신되는 일부의 블록 및 상기 일부의 블록을 연결하는 링크정보를 이용하여 상기 일부의 블록만 갱신하는 단계;를 포함하되,
    상기 해당 블록은 상기 해당 블록의 일측의 인접 블록과 연결하는 제 1 링크정보 및 상기 해당 블록의 타측의 인접 블록과 연결하는 제 2 링크정보와 연결되고,
    상기 클라우드 서버는 상기 해당 블록에 포함된 데이터, 상기 제 1 링크정보 중 상기 해당 블록에 가까운 절반의 링크정보 및 상기 제 2 링크정보 중 상기 해당 블록에 가까운 절반의 링크정보를 이용하여 상기 해당 블록을 암호화하는 암호화 된 문서의 동적 업데이트 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 링크정보는 상기 서로 인접한 블록에 포함된 데이터의 일부를 중복해서 저장하는 암호화 된 문서의 동적 업데이트 방법.
  4. 제 1 항에 있어서,
    상기 클라우드 서버는 상기 복수의 블록들 중 특정 블록을 수정(Modification)하는 경우, 상기 특정 블록에 포함된 데이터를 상기 갱신 요청에 따른 데이터로 수정하고, 상기 수정된 특정 블록의 왼쪽에 연결된 링크정보 중 상기 수정된 특정 블록에 가까운 절반(Half)의 링크정보 및 상기 수정된 특정 블록의 오른쪽에 연결된 링크정보 중 상기 수정된 특정 블록에 가까운 절반(Half)의 링크정보를 상기 수정된 특정 블록에 포함된 데이터로 수정하는 암호화 된 문서의 동적 업데이트 방법.
  5. 제 1 항에 있어서,
    상기 클라우드 서버는 상기 복수의 블록들 중 특정 블록을 삭제(Deletion)하는 경우, 상기 특정 블록 및 상기 특정 블록의 왼쪽에 연결된 링크정보 중 상기 특정 블록에 가까운 절반(Half)의 링크정보 및 상기 특정 블록의 오른쪽에 연결된 링크정보 중 상기 특정 블록에 가까운 절반(Half)의 링크정보를 삭제하고,
    상기 특정 블록의 왼쪽에 연결된 링크정보 중 상기 특정 블록에서 먼 절반(Half)의 링크정보 및 상기 특정 블록의 오른쪽에 연결된 링크정보 중 상기 특정 블록에서 먼 절반(Half)의 링크정보를 하나의 링크정보로 결합하는 암호화 된 문서의 동적 업데이트 방법.
  6. 제 1 항에 있어서,
    상기 클라우드 서버는 상기 복수의 블록들 사이에 특정 블록을 삽입(Insertion)하는 경우, 상기 갱신 요청에 따른 데이터를 상기 특정 블록으로 생성하여 상기 복수의 블록들 중 특정 위치에 삽입하고 상기 특정 블록이 삽입된 위치의 링크정보를 분리하고, 상기 분리된 링크정보 중 왼쪽의 링크정보 및 상기 분리된 링크정보 중 오른쪽의 링크정보에 상기 특정 블록에 포함된 데이터를 각각 추가하는 암호화 된 문서의 동적 업데이트 방법.
  7. 콘텐츠를 저장하는 저장장치;
    상기 콘텐츠에 대한 갱신 요청을 수신하는 통신장치; 및
    상기 콘텐츠를 복수개의 블록들로 구분하고 상기 복수개의 블록들 중 서로 인접한 블록들을 연결하는 복수개의 링크정보를 생성하고 상기 복수개의 블록들 각각을 해당 블록에 포함된 데이터 및 해당 블록에 연결된 양쪽 링크정보 중 일부를 이용하여 암호화한 상태로 상기 저장장치에 저장하고, 상기 갱신 요청에 따라 갱신되는 일부의 블록 및 상기 일부의 블록을 연결하는 링크정보를 이용하여 상기 일부의 블록만 갱신하는 프로세서;를 포함하되,
    상기 해당 블록은 상기 해당 블록의 일측의 인접 블록과 연결하는 제 1 링크정보 및 상기 해당 블록의 타측의 인접 블록과 연결하는 제 2 링크정보와 연결되고,
    상기 프로세서는 상기 해당 블록에 포함된 데이터, 상기 제 1 링크정보 중 상기 해당 블록에 가까운 절반의 링크정보 및 상기 제 2 링크정보 중 상기 해당 블록에 가까운 절반의 링크정보를 이용하여 상기 해당 블록을 암호화하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버.
  8. 삭제
  9. 제 7 항에 있어서,
    상기 링크정보는 상기 서로 인접한 블록에 포함된 데이터의 일부를 중복해서 저장하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버.
  10. 제 7 항에 있어서,
    상기 프로세서는 상기 복수의 블록들 중 특정 블록을 수정(Modification)하는 경우, 상기 특정 블록에 포함된 데이터를 상기 갱신 요청에 따른 데이터로 수정하고, 상기 수정된 특정 블록의 왼쪽에 연결된 링크정보 중 상기 수정된 특정 블록에 가까운 절반(Half)의 링크정보 및 상기 수정된 특정 블록의 오른쪽에 연결된 링크정보 중 상기 수정된 특정 블록에 가까운 절반(Half)의 링크정보를 상기 수정된 특정 블록에 포함된 데이터로 수정하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버.
  11. 제 7 항에 있어서,
    상기 프로세서는 상기 복수의 블록들 중 특정 블록을 삭제(Deletion)하는 경우, 상기 특정 블록 및 상기 특정 블록의 왼쪽에 연결된 링크정보 중 상기 특정 블록에 가까운 절반(Half)의 링크정보 및 상기 특정 블록의 오른쪽에 연결된 링크정보 중 상기 특정 블록에 가까운 절반(Half)의 링크정보를 삭제하고,
    상기 특정 블록의 왼쪽에 연결된 링크정보 중 상기 특정 블록에서 먼 절반(Half)의 링크정보 및 상기 특정 블록의 오른쪽에 연결된 링크정보 중 상기 특정 블록에서 먼 절반(Half)의 링크정보를 하나의 링크정보로 결합하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버.
  12. 제 7 항에 있어서,
    상기 프로세서는 상기 복수의 블록들 사이에 특정 블록을 삽입(Insertion)하는 경우, 상기 갱신 요청에 따른 데이터를 상기 특정 블록으로 생성하여 상기 복수의 블록들 중 특정 위치에 삽입하고 상기 특정 블록이 삽입된 위치의 링크정보를 분리하고, 상기 분리된 링크정보 중 왼쪽의 링크정보 및 상기 분리된 링크정보 중 오른쪽의 링크정보에 상기 특정 블록에 포함된 데이터를 각각 추가하는 암호화 된 문서를 동적으로 업데이트하는 클라우드 서버.
KR1020210127904A 2021-09-28 2021-09-28 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버 KR102620855B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210127904A KR102620855B1 (ko) 2021-09-28 2021-09-28 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210127904A KR102620855B1 (ko) 2021-09-28 2021-09-28 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버

Publications (2)

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

Family

ID=85928430

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210127904A KR102620855B1 (ko) 2021-09-28 2021-09-28 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버

Country Status (1)

Country Link
KR (1) KR102620855B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012089094A (ja) * 2010-10-22 2012-05-10 Intec Inc ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム
KR101628195B1 (ko) * 2014-12-08 2016-06-08 한국과학기술정보연구원 클라우드 서비스를 이용한 2중 백업 시스템 및 데이터 관리 방법
KR101714319B1 (ko) 2016-05-24 2017-03-22 제주대학교 산학협력단 지오캐스팅 기반의 선박 간 데이터 동기화 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101593008B1 (ko) * 2014-10-08 2016-02-12 재단법인 다차원 스마트 아이티 융합시스템 연구단 무결성 검증 데이터 생성 방법 및 시스템
KR101979267B1 (ko) 2017-05-29 2019-05-16 성균관대학교산학협력단 클라우드 저장 기반 암호화 시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012089094A (ja) * 2010-10-22 2012-05-10 Intec Inc ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム
KR101628195B1 (ko) * 2014-12-08 2016-06-08 한국과학기술정보연구원 클라우드 서비스를 이용한 2중 백업 시스템 및 데이터 관리 방법
KR101714319B1 (ko) 2016-05-24 2017-03-22 제주대학교 산학협력단 지오캐스팅 기반의 선박 간 데이터 동기화 시스템

Also Published As

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

Similar Documents

Publication Publication Date Title
AU2019204712B2 (en) Managing sensitive data elements in a blockchain network
CN109120639B (zh) 一种基于区块链的数据云存储加密方法及***
CN110915164B (zh) 基于可信执行环境中执行的智能合约操作处理区块链数据
US9825925B2 (en) Method and apparatus for securing sensitive data in a cloud storage system
US20170140375A1 (en) System and Method for Permissioned Distributed Block Chain
AU2019378667C1 (en) Performing map iterations in blockchain-based system
KR20200074910A (ko) 신뢰할 수 있는 실행 환경을 기반으로 한 오프체인 스마트 계약 서비스
US20140143541A1 (en) Method and Apparatus for Managing Encrypted Files in Network System
CN110881063A (zh) 一种隐私数据的存储方法、装置、设备及介质
US9397984B1 (en) Apparatus and method for secure file transfer
CN106209352A (zh) 具有前向安全性的有效密钥衍生
US11251969B2 (en) Performing map iterations in a blockchain-based system
CN106022014A (zh) 一种资源文件的打包方法和解包方法
KR20190105955A (ko) 블록체인을 이용한 전자 문서 관리 장치 및 이의 동작 방법
US20220216999A1 (en) Blockchain system for supporting change of plain text data included in transaction
KR102620855B1 (ko) 클라우드 환경에서 암호화된 콘텐츠의 동적 업데이트 방법 및 클라우드 서버
CN112906041A (zh) 一种动态多方签名加解密方法及***
US20130124862A1 (en) System And Method For Digital Rights Management With Secure Application-Content Binding
JP7235941B2 (ja) 情報管理システム及びその方法
WO2019019675A1 (zh) 网站模拟登录方法、装置、服务端和可读存储介质
KR20230096293A (ko) 클라우드 환경에서 랜덤 카운터를 이용한 동적 암호화 방법 및 장치
Nguyen et al. A novel data encryption in HDFS
Nordström Personal clouds: Concedo
CN113360859B (zh) 基于Python解释器的加密文件安全控制方法和装置
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