KR20150002821A - 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법 - Google Patents
복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법 Download PDFInfo
- Publication number
- KR20150002821A KR20150002821A KR20147031972A KR20147031972A KR20150002821A KR 20150002821 A KR20150002821 A KR 20150002821A KR 20147031972 A KR20147031972 A KR 20147031972A KR 20147031972 A KR20147031972 A KR 20147031972A KR 20150002821 A KR20150002821 A KR 20150002821A
- Authority
- KR
- South Korea
- Prior art keywords
- file
- coefficients
- storage service
- provider
- identifier
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6272—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2149—Restricted operating environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 보안 파라미터(n)를 선택하는 단계(1), 상기 파일을 n 개의 청크들(S1, ..., Sn)로 세분하는 단계(2), n2 개의 계수들(aij; i = 1, ..., n 및 j = 1, ..., n)을 랜덤으로 선택하는 단계(3), 상기 벡터들(ai1, ..., ain; i = 1, ..., n)이 선형적으로 독립적인지를 검증하는 단계(3)로서, 선형적으로 독립적이지 않은 경우 상기 계수들을 다시 생성하는, 상기 검증 단계(3), 선형 결합들(Ci = ai1ㆍS1 + ... + aijㆍSj + ... + ainㆍSn; i= 1, ...n)을 계산하는 단계(4), 상기 복수의 저장 서비스 제공자 중에서 n 개의 저장 서비스 제공자들(Oi, ..., On)을 선택하는 단계(5), 상기 파일(F)을 지정하는 n 개의 파일 식별자들(ID'1, ..., ID'n)을 생성하는 단계(6a; 6b; 6c), 상기 파일 식별자(ID'i)와 연관하여 상기 저장 서비스 제공자(Oi)에 상기 결합(Ci)(i = 1, ..., n)을 저장하는 단계(6a; 6b; 6c), 상기 파일(F)에 대응하는 파일 기술자에 상기 파일 식별자(ID'i) 및 상기 저장 서비스 제공자(Oi)(i = 1, ..., n)를 저장하는 단계로서, 이러한 파일 기술자는 로컬 메모리(LM)에 저장되는, 상기 상기 파일 식별자(ID'i) 및 상기 저장 서비스 제공자(Oi)를 저장하는 단계, 상기 결합(Ci; i = 1, ..., n)과 재연관될 수 있도록 상기 계수들(ai1, ..., ain)의 세트를 저장하는 단계, n 개의 슈퍼-계수들(a'1, ..., a'j, ..., a'n, j = 1, ..., n에 대하여)을 랜덤으로 선택하는 단계, 선형 오버-결합(OC' = a'1ㆍC1 + ... + a'jㆍCj + ... + a'nㆍCn)을 계산하는 단계, 및 상기 오버-결합(OC') 및 상기 계수들(a'1, ..., a'j, ..., a'n, j = 1, ..., n)을 저장하는 단계를 포함한다.
Description
본 발명은 일반적으로 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하는 것에 관한 것이다. 특히, 클라우드 저장 장치에 관련된다. 클라우드 저장 장치는 데이터가 일반적으로 제 3 자들에 의해 호스트되는 저장 장치의 가상화된 풀들에 저장되는 네트워킹된 온라인 저장 장치의 모델이다. 호스팅 회사들은 큰 데이터 센터들을 운영하고, 데이터를 호스트하기를 요청하는 사람들은 호스팅 회사들로부터 저장 용량을 구매하거나 임차한다. 이러한 배경에서, 데이터 센터 운영자들은 고객의 요구들에 따라 자원을 가상화하고 이들을 고객들이 파일들 또는 데이터 객체들을 저장하기 위해 스스로가 사용할 수 있는 저장 장치 풀들로서 노출한다. 물리적으로 자원은 다수의 서버들에 걸쳐 확대될 수 있다.
예방책이 취해지지 않은 경우, 모든 저장된 데이터는 잠재적으로 이를 악의로 사용할 수 있는(예를 들면, 클라이언트의 경쟁자들에게 정보를 재판매하는 것) 클라우드 운영자에 의해 액세스될 수 있다. 또한, 클라우드 운영자가 정직할 때조차, 저장된 데이터의 기밀성은 단일의 기업 네트워크를 공격하기보다는 여러 회사들 및 사용자들의 데이터를 집속하는 데이터 센터들을 공격하는 데 더 큰 흥미를 갖는 공격자들에 의해 손상될 수 있다. 그러므로, 저장 장치 서비스 제공자에서 데이터의 기밀성을 보호할 필요가 있다.
하나의 알려진 해결책은 그의 저장 장치를 아웃소싱하기 전에 데이터를 암호화하는 것이다. 이러한 해결책의 결점은 자원 소비적이라는 것이다(저장을 위한 암호화 및 검색을 위한 복호화). 추가적으로, 이는 각각의 데이터 패킷을 암호화하기 위해 사용된 키들의 진로를 쫓기 위해 키 관리 프로세스를 요구한다. 키가 누출되는 경우 데이터에 대한 완전한 액세스를 제공하기 때문에, 이는 키들을 안전하게 저장하는 것을 또한 내포한다.
다른 알려진 해결책은 데이터를 수 개의 청크들로 분할하고 청크를 개별적으로 상이한 저장 서비스 제공자들에 저장하여, 저장 서비스 제공자들 중 어느 것도 완전한 데이터에 액세스를 갖지 않도록 하는 것이다. 그들에 저장한다. 이러한 해결책은 각각의 저장 서비스 제공자가 이를 저장하는 청크에 대한 액세스를 갖는 결점을 갖는다. 그래서, 저장 서비스 제공자가 여전히 청크로부터 몇몇 기밀 정보를 도출할 수 있다. 대책은 이전 해결책의 결점에 대해, 각각의 청크를 또 다시 암호화하는 것이다.
다른 알려진 해결책은 파울로 에프 올리베라(PAULO F OLIVERA) 외에 의한 논문 "Trusted Storage over Untrusted Networks"(GLOBECOM 2010, 2010 IEEE GLOBAL TELECOMMUNICATION CONFERENCE, IEEE, PISCATAWAY, NJ, USA, 2010년 12월 6일)에 기술된다. 이는 다음의 단계들을 포함한다:
- 보안 파라미터(n)를 선택하고 파일을 n 개의 청크들(S1, ..., Sn)로 분할하는 단계;
- n 개의 계수들(aj; j = 1, ..., n)을 랜덤으로 선택하는 단계로서, 모든 aj는 서로 상이한, 상기 선택 단계;
- 이후, 방데르몽드 행렬(aj i -1)을 생성함으로써 n2 개의 계수들(aij; i = 1, ..., n 및 j = 1, ..., n)을 생성하는 단계;
- n 개의 선형 결합들 Ci = ai1ㆍS1 + ... + aijㆍSj + ... + ainㆍSn(i= 1, ...n)을 계산하는 단계; 및
- 두 개의 상이한 저장 서비스 제공자들을 선택하고 선형 결합들의 일 부분을 제 1 저장 서비스 제공자에 저장하고 다른 선형 결합들을 제 2 저장 서비스 제공자에서 저장하는 단계.
랜덤으로 선택된 n 개의 계수들(aj; j=1, ..., n)은 상이하고 서로로부터 독립적이다; 그러나 대부분의 n2 개의 계수들(aij)은 그들이 방데르몽드 행렬(aj i -1)을 생성함으로써 획득되기 때문에 서로 독립적이지 않다.
본 발명의 목적은 복수의 저장 서비스 제공자들에 분산 및 저장된 데이터의 기밀성을 보호하기 위한 더 안전한 기술적 해결책을 제공하는 것이다.
이는 본 발명에 따른 방법들을 적용함으로써 해결될 수 있다.
본 발명의 제 1 목적은 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법이고, 상기 방법은:
- 보안 파라미터(n)를 선택하는 단계,
- 파일을 n 개의 청크들(S1, ..., Sn)로 분할하는 단계,
- n2 개의 계수들(aij; i = 1, ..., n 및 j = 1, ..., n)을 선택하는 단계,
- 벡터들(ai1, ..., ain; i = 1, ..., n)이 선형적으로 독립적인 것을 검증하고, 선형적으로 독립적이 아닌 경우 계수들을 다시 생성하는 단계,
- n 개의 선형 결합들(Ci = ai1ㆍS1 + ... + aijㆍSj + ... + ainㆍSn; i = 1, ..., n)을 계산하는 단계,
- 상기 복수의 저장 서비스 제공자 중에서 n 개의 저장 서비스 제공자들(Oi, ..., On)을 선택하는 단계,
- 상기 파일들을 지정하는 n 개의 파일 식별자들(ID'1, .., ID'n)을 생성하는 단계,
- 파일 식별자(ID'i)와 연관하여 저장 서비스 제공자(Oi)에 결합(Ci)(i = 1, ..., n)을 저장하는 단계,
- 파일 식별자(ID'i) 및 제공자 식별자(Oi)(i = 1, ..., n)를 파일에 대응하는 파일 기술자에 저장하는 단계로서, 이러한 파일 기술자는 로컬 메모리에 저장되는, 상기 파일 식별자(ID'i) 및 제공자 식별자(Oi)를 저장하는 단계,
- 및 결합(Ci)에 재연관될 수 있도록 계수들(ai1, ..., ain)(i = 1, ..., n)의 세트를 저장하는 단계를 포함하고,
상기 방법은:
- 상기 n2 개의 계수들(aij; i = 1, ..., n 및 j = 1, ..., n)을 랜덤으로 선택하는 단계,
- 벡터들(ai1, ..., ain; i = 1, ..., n)이 선형적으로 독립적인 것을 검증하고, 선형적으로 독립적이 아닌 경우 계수들을 다시 생성하는 단계,
- n 개의 수퍼-계수들(a'1, ..., a'j, ..., a'n; j = 1, ..., n)을 랜덤으로 선택하는 단계,
- 선형 오버-결합(OC' = a'1ㆍC1 + ... + a'jㆍCj + ... + a'nㆍCn)을 계산하는 단계,
- 및 오버-결합(OC') 및 계수들(a'1, ..., a'j, ..., a'n; j = 1, ..., n)을 저장하는 단계를 추가로 포함하는 것을 특징으로 한다.
분산 및 저장될 파일의 모든 청크들의 선형 결합들(Ci)을 계산하고, 이후 결합들을 각각 복수의 저장 서비스 제공자들에 저장하는 사실은, 원래의 파일의 임의의 청크를 검색하기 위해 모든 결합들을 입수할 필요가 있기 때문에, 암호화 또는 키 관리를 요구하지 않고 파일의 기밀성을 보호한다. 그래서 제공자들은 모든 n 개의 제공자들이 결탁하지 않는다면, 이들 결합들로부터 임의의 정보를 추출할 수 없다. n2 개의 랜덤으로 선택된 계수들 및 오버-결합을 사용하는 사실은 보안을 개선한다.
복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법의 제 1 특정 실시예에 따라, 결합(Ci)에 재연관될 수 있도록 계수들(ai1, ..., ain)(i = 1, ..., n)의 세트를 저장하는 단계는, 결합(Ci) 및 파일 식별자(ID'i)와 연관하여 저장 서비스 제공자(Oi)(i = 1, ..., n)에 이를 저장하는 단계를 포함한다.
복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법의 제 2의 제 1 특정 실시예에 따라, 결합(Ci)에 재연관될 수 있도록 계수들(ai1, ..., ain)(i = 1, ..., n)의 세트를 저장하는 단계는:
- 결합(Ck) 및 파일 식별자(ID'k)와 연관하여 저장 서비스 제공자(Ok)에 계수들(ai1, ..., ain)의 세트(i = 1, ..., n, 1 ≤ k ≤n, k≠i)를 저장하는 단계;
- 및 파일(F)에 대응하고 상기 로컬 메모리에 저장되는 상기 파일 기술자에, 계수들(ai1, ..., ain)의 세트 및 결합(Ci)(i = 1, ..., n)에 재연관되게 하는 순열을 저장하는 단계를 포함한다.
복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법의 제 3 특정 실시예에 따라, 결합(Ci)에 재연관될 수 있도록 계수들(ai1, ..., ain)(i = 1, ..., n)의 세트를 저장하는 단계는 파일에 대응하고 상기 로컬 메모리에 저장되는 상기 파일 기술자에, 파일 식별자(ID'i) 및 제공자 식별자(Oi)와 연관하여 계수들(ai1, ..., ain)(i = 1, ..., n)의 세트를 저장하는 단계를 포함한다.
본 발명의 다른 목적은 본 발명에 따른 방법에 의해 보호된 파일을 검색하는 방법이고, 상기 방법은:
- 상기 파일을 지정하고, 파일에 대응하는 파일 기술자에서 제공자 식별자들(O1, ..., On)을 판독하는 n 개의 파일 식별자들(ID'1, ..., ID'n)을 판독하는 단계로서, 이러한 파일 기술자는 로컬 메모리에 저장되는, 상기 판독 단계,
- 제공자 식별자들(O1, ..., On)에 의해 지정된 저장 서비스 제공자들에 n 개의 파일 기술자들(ID'1, ..., ID'n)을 각각 전송하는 단계,
- 제공자 식별자들(O1, ..., On)에 의해 지정된 제공자들로부터 n 개의 결합들(C1, ..., Cn)을 수신하는 단계,
- n 개의 결합들(C1, ..., Cn)에 각각 계수들(ai1, ..., ain)(i = 1, ..., n)의 대응하는 n 개의 세트들을 검색하는 단계,
- 계수들(ai1, ..., ain)의 대응하는 세트와 각각의 결합(Ci)(i = 1, ..., n)을 연관시키는 단계,
- 계수들(bi1, ..., bin; i = 1, ..., n)의 n 개의 세트들로 구성된 다른 행렬을 획득하기 위해 계수들(ai1, ..., ain; i = 1, ..., n)의 n 개의 세트들로 구성된 역행렬을 계산하는 단계,
- 이후 상기 파일(F)의 n 개의 청크들(S1, ..., Sn)을 Si = bi1ㆍC1 + ... + bijㆍCj + ... + binㆍCn(i = 1, ..., n)로서 계산하는 단계,
- 이후 파일(F)을 재구성하기 위해 청크들(S1, ..., Sn)을 재어셈블링하는 단계를 포함하고,
상기 방법은:
- 오버-결합 OC' 및 계수들(a'1, ..., a'i, ... a'n; j = 1, ..., n)을 판독하는 단계;
- 계수들(bi1, ... , bin; i = 1, ..., n)의 n 개의 세트들로 구성된 다른 행렬을 획득하기 위해, 계수들(ai1, ..., ain; i = 1, ..., n-1)의 n-1 개의 세트들 및 계수들(a'1ㆍa1j + ... + a'iㆍaij + ... + a'nㆍanj; j = 1, ..., n)의 하나의 세트로 구성된 역행렬을 계산하는 단계;
- 이후 상기 파일(F)의 n 개의 청크들(S1, ..., Sn)을 Si = bi1ㆍC1 + ... + bijㆍCj + ... + bin -1ㆍCn -1 + binㆍOC'(i = 1, ..., n)로서 계산하는 단계;
- 이후 파일(F)을 재구성하기 위해 상기 청크들(S1, ..., Sn)을 재어셈블링하는 단계를 추가로 포함하는 것을 특징으로 한다.
파일을 검색하기 위한 방법의 제 1 특정 실시예에 따라, n 개의 결합들(C1, ..., Cn)에 각각 대응하는 계수들(ai1, ..., ain)(i = 1, ..., n)의 n 개의 세트들을 검색하는 단계는 제공자 식별자들(O1, ..., On)에 의해 지정된 제공자들로부터 이들을 수신하는 단계를 포함한다. 그리고 각각의 결합(Ci)을 계수들(ai1, ..., ain; i = 1, ..., n)의 대응하는 세트와 연관시키는 단계는 결합(Ci)을 상기 계수들(ai1, ..., ain)의 세트와 직접 연관시키는 단계를 포함한다.
파일을 검색하기 위한 방법의 제 2 특정한 실시예에 따라, n 개의 결합들(C1, ..., Cn)에 각각 대응하는 계수들(ai1, ..., ain; i = 1, ..., n)의 n 개의 세트들을 검색하는 단계는, 제공자 식별자들(O1, ..., On)에 의해 지정된 제공자들로부터 이들을 수신하는 단계를 포함하고;
그리고 각각의 결합(Ci)을 계수들(ai1, ..., ain; i = 1, ..., n)의 대응하는 세트와 연관시키는 단계는:
- 상기 파일에 대응하는 파일 기술자에서 순열을 판독하는 단계,
- 및 각각의 결합(Ci)이 계수들(ai1, ..., ain; i = 1, ..., n)의 대응하는 세트와 연관되도록 상기 계수들(ai1, ..., ain; i = 1, ..., n)의 세트에 순열을 적용하는 단계를 포함한다.
파일을 검색하는 방법의 제 3 특정한 실시예에 따라, n 개의 결합들(C1, ..., Cn)에 각각 대응하는 계수들(ai1, ..., ain; i = 1, ..., n)의 n 개의 세트들을 검색하는 단계는 상기 파일에 대응하는 파일 기술자에서 그들을 판독하는 단계를 포함하고,
각각의 결합(Ci)을 계수들(ai1, ..., ain)(i = 1, ..., n)의 대응하는 세트와 연관시키는 단계는 계수들(ai1, ..., ain)의 세트를 결합(Ci)(i = 1, ..., n)에 직접 연관시키는 단계를 포함한다.
본 발명의 다른 목적은, 저장 장치가 한번 수행되지만, 검색이 많은 횟수들 또는 많은 엔티티들에 의해 수행되는 상황들에 특히 더 적합한, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하는 방법이다. 이는:
- 보안 파라미터(n)를 선택하는 단계,
- 파일을 청크들(S1, ..., Sn)로 세분하는 단계;
- n2 개의 계수들(aij; i = 1, ..., n 및 j = 1, ..., n)를 랜덤으로 선택하는 단계;
- 벡터들(ai1, ..., ain; i = 1, ..., n)이 선형적으로 독립적인지를 검증하고, 그렇지 않으면, 계수들을 다시 생성하는 단계,
- n 개의 선형 결합(Ci = ai1ㆍS1 + ... + aijㆍSj + ... + ainㆍSn; i = 1, ..., n)을 계산하는 단계,
- 상기 복수의 저장 서비스 제공자 중에서 n 개의 저장 서비스 제공자들(O1, ..., On)을 선택하는 단계,
- 상기 파일을 지정하는 n 개의 파일 식별자들(ID'1, .., ID'n)을 생성하는 단계,
- 파일 식별자(ID'i)와 연관하여 저장 서비스 제공자(Oi)에 결합(Ci)(i = 1, ..., n)을 저장하는 단계,
- 파일 식별자(ID'i) 및 제공자 식별자(Oi)(i = 1, ..., n)를 파일에 대응하는 파일 기술자에 저장하는 단계로서, 이러한 파일 기술자는 로컬 메모리에 저장되는, 상기 파일 식별자(ID'i) 및 제공자 식별자(Oi)를 저장하는 단계;
- 계수들(bi1, ..., bin; i = 1, ..., n)의 n 개의 세트들로 구성된 다른 행렬을 획득하기 위해 계수들(ai1, ..., ain; i = 1, ..., n)의 n 개의 세트로 구성된 역행렬을 계산하는 단계,
- 및 결합(Ci)과 재연관될 수 있도록 계수들(bi1, ..., bin)(i = 1, ..., n)의 상기 세트를 저장하는 단계를 포함한다.
본 발명의 다른 목적은 이러한 마지막 방법에 의해 보호되는 파일을 검색하기 위한 방법이다. 이는:
- 상기 파일을 지정하는 n 개의 파일 식별자들(ID'1, .., ID'n)을 판독하고, 파일(F)에 대응하는 파일 기술자에서 제공자 식별자들(O1, ..., On)을 판독하는 단계로서, 이러한 파일 기술자는 로컬 메모리에 저장되는, 상기 파일 식별자들(ID'1, .., ID'n) 및 상기 제공자 식별자들(O1, ..., On)을 판독하는 단계,
- 제공자 식별자들(O1, ..., On)에 의해 지정된 저장 서비스 제공자들로 n 개의 파일 식별자들(ID'1, .., ID'n)을 각각 전송하는 단계,
- 제공자 식별자들(O1, ..., On)에 의해 지정된 이들 제공자들로부터 n 개의 결합들(C1, ..., Cn)을 수신하는 단계,
- n 개의 결합들(C1, ..., Cn)에 각각 대응하는, n 개의 세트들의 계수들(bi1, ..., bin; i = 1, ..., n)을 검색하는 단계,
- 각각의 결합(Ci)을 계수들(bi1, ..., bin)(i = 1, ..., n)의 대응하는 세트와 연관시키는 단계,
- 상기 파일의 청크들(S1, ..., Sn)을 Si = bi1ㆍC1 + ... + bijㆍCj + ... + binㆍCn(i = 1, ..., n)로서 계산하는 단계,
- 이후 파일(F)을 재구성하기 위하여 청크들(S1, ..., Sn)을 재어셈블링하는 단계를 포함한다.
본 발명의 다른 특징들 및 이점들은 첨부하는 도면들과 함께 취해질 때 본 발명의 실시예들의 다음의 상세한 설명으로부터 더 명백하게 될 것이다.
본 발명은 복수의 저장 서비스 제공자들에 분산 및 저장된 데이터의 기밀성을 보호하기 위한 더 안전한 기술적 해결책을 제공한다.
도 1은 본 발명에 따라 파일을 보호하기 위한 방법의 세 개의 실시예들에 공통적인 제 1 단계들을 도시하는 도면.
도 2, 도 3, 및 도 4는 본 발명에 따라 파일을 보호하기 위한 방법의 세 개의 실시예들에 특정한 단계들을 각각 도시하는 도면들.
도 5, 도 6, 및 도 7은 본 발명에 따라 보호된 파일을 검색하기 위한 방법의 세 개의 실시예들을 각각 도시하는 도면들.
도 8은 본 발명에 따라 파일을 보호하기 위한 방법의 세 개의 다른 실시예들로서, 저장 장치가 한번 수행되지만 검색은 다수회 또는 많은 엔티티들에 의해 수행되는 상황들에 특히 적합한, 실시예들에 공통적인 제 1 단계들을 도시하는 도면.
도 2, 도 3, 및 도 4는 본 발명에 따라 파일을 보호하기 위한 방법의 세 개의 실시예들에 특정한 단계들을 각각 도시하는 도면들.
도 5, 도 6, 및 도 7은 본 발명에 따라 보호된 파일을 검색하기 위한 방법의 세 개의 실시예들을 각각 도시하는 도면들.
도 8은 본 발명에 따라 파일을 보호하기 위한 방법의 세 개의 다른 실시예들로서, 저장 장치가 한번 수행되지만 검색은 다수회 또는 많은 엔티티들에 의해 수행되는 상황들에 특히 적합한, 실시예들에 공통적인 제 1 단계들을 도시하는 도면.
본 발명의 실시예들의 상세한 특징들 및 이점들을 도시하기 위해, 다음의 기술은 첨부하는 도면들을 참조할 것이다. 가능한 경우, 같거나 유사한 참조 번호들은 그의 도면들 및 기술 전체에서 동일하거나 유사한 구성 요소들을 지정한다.
도 1은 본 발명에 따른 파일을 보호하기 위한 방법의 세 개의 실시예들에 공통적인 단계들을 도시한다. 예를 들면, 저장 제한된 디바이스(예를 들면, 이동 전화, 또는 태블릿)을 갖고 큰 파일들의 저장을 아웃소싱하기를 원하는 사용자를 생각하자. 사용자가 그가 이미 계정들 및 연관된 계약들을 갖기 때문에 그가 사용할 수 있는 m 개의 이용가능한 저장 서비스 제공자들을 안다고 가정하자.
제안된 방법은 디바이스에서 다음의 수단들을 요구한다:
1/ 저장 서비스 제공자들에 분산 및 저장될 각각의 파일(F)에 고유한 식별자(ID)를 연관시키기 위한 수단. 이러한 프로세스는 잠재적으로 복잡할 수 있지만, 파일의 경로, 또는 태그들, 또는 파일 시스템 아키텍처들과 호환되는 임의의 다른 알려진 방법을 사용할 수 있다.
2/ 사용자가 보안 파라미터(n)를 선택하게 하는 입력 수단. 이러한 파라미터는 각각의 파일에 대해 상이할 수 있다: 더 큰 값의 n은 더 많은 계산을 포함하지만 또한 더 양호한 보안을 갖는다. 그래서, n의 값들은 제한됨, 기밀, 비밀, ...과 같은 원하는 레벨의 기밀성에 따라 선택될 수 있다.
3) 제안된 방법을 수행하기 위해 컴퓨터 실행가능 명령들을 포함하는 프로그램을 실행하는 계산 수단.
스텝 1: 사용자는 이용가능한 저장 서비스 제공자들의 수(m) 이하의 보안 파라미터(n)를 선택한다.
스텝 2: 계산 수단들은 파일(F)을 n 개의 청크들(S1, ..., Sn)로 세분한다. 청크들은 동일한 수의 비트들을 포함해야 한다. 청크당 비트들의 수는 크기(F)/n보다 크고 동작이 발생하는 필드의 크기(p)(계수들이 선택되는 필드와 동일한 필드)의 배수인 가장 작은 정수이다. 이러한 프로세스는 동일한 크기의 n 개의 청크들을 갖도록 파일의 패딩을 수반한다. 임의의 표준 패딩 알고리즘은 이러한 태스크를 수행하기 위해 사용될 수 있다.
스텝 3: 계산 수단들은 n2 개의 계수들(aij; i = 1, ..., n 및 j = 1, ..., n)을 랜덤으로 선택한다. 이후 계산 수단들은 선택된 벡터들(ai1, ..., ain; i = 1, ..., n)이 선형적으로 독립적인 것을 검증하고, 그렇지 않은 경우 그들은 계수들을 다시 생성한다(그의 요소들의 선형 결합들로서 제로 벡터의 표현들이 자명한 해인 경우 및 그러한 경우에만, 일 세트의 벡터들은 선형적으로 독립적이다.).
스텝 4: 계산 수단들은 n 개의 선형 결합들을 Ci = ai1ㆍS1 + ... + aijㆍSj + ... + ainㆍSn(i = 1, ..., n)으로서 계산한다.
스텝 5: 계산 수단들은 결합들이 저장될 n 개의 저장 서비스 제공자들을 선택한다(n은 m 이하이다). 그들은 저장되고 보호될 파일의 식별자(ID)의 함수로서 m 개의 이용가능한 저장 서비스들 제공자들 중에서 이들을 선택한다. 그들은 선택된 저장 서비스 제공자들을 지정하는 각각의 식별자들(O1, ..., On)을 공급한다. 선택을 수행하기 위한 많은 가능성들이 존재한다: 랜덤 선택이 가장 쉽지만, 선택의 기준은 또한 더 양호한 선택 정책을 갖기 위해 성능(부하 밸런싱), 비용(각각의 제공자의 가격) 또는 보안(제공자들의 평판)을 고려할 수 있다. 선택 정책에 의존하여, 하나의 특정한 제공자는 로컬 호스트 자체일 수 있고, 주어진 제공자는 한번 이상 선택될 수 있다(이는 보안을 감소시키지만).
다음 스텝들은 도 2, 도 3, 및 도 4에 의해 각각 도시된 스텝 6a, 스텝 6b, 및 스텝 6c로 불리는 세 개의 변형들에 따라 행해질 수 있다.
도 2는 스텝 6a를 도시한다:
- 계산 수단들은 파일(F)을 또한 지정하지만, 로컬 식별자(ID)의 함수로서 로컬 파일 식별자(ID)와 상이한 새로운 고유한 파일 식별자(ID')를 생성한다. 이러한 함수는 주어진 ID'를 ID로 복구하는 것을 허용하지 않아야 하고, 따라서 반드시 하나의 방식 함수, 예를 들면 해시 함수이다. 이러한 새로운 파일 식별자(ID')는 모든 저장 서비스 제공자들에게 노출될 것이다.
- 계산 수단들은, 제공자(Oi; i = 1, ..., n)에게 다음을 전송한다:
-- 결합(Ci),
-- 계수들의 세트(ai1, ..., ain),
-- 및 파일 식별자(ID').
- 제공자(Oi)는 결합(Ci), 및 파일 식별자(ID')와 연관하는 계수들(ai1, ..., ain)의 세트를 저장한다.
- 계산 수단들은 로컬 메모리(LM)에 파일(F)에 대한 매우 간단한 파일 기술자를 로컬로 저장한다: 이러한 파일 기술자는 파일(F)을 지정하는 파일 식별자(ID') 및 선택된 저장 서비스 제공자들을 지정하는 제공자 식별자들(O1, ..., On)을 포함한다.
이러한 변형 a의 개선에 따라, 동일한 파일(F)에 대하여, 고유한 파일 식별자(ID')를 상이한 파일 식별자들(ID'1, .., ID'n)로 교체하는 것이 또한 가능하다. 이들 파일 식별자들(ID'1, .., ID'n)은 로컬 메모리(LM) 내 n 개의 선택된 제공자들 각각에, 및 파일(F)에 대응하는 파일 기술자에, 각각 저장된다. 이러한 개선은 제공자들의 결탁의 경우에 결합들을 링크하기 더 어렵게 만든다.
도 3은 스텝 6b를 도시한다:
- 계산 수단들은 파일(F)을 또한 지정하지만, 로컬 파일 식별자(ID)와 상이한 새로운 파일 식별자(ID')를, 하나의 방식 함수, 예를 들면, 해시 함수에 의해, 로컬 식별자(ID)의 함수로서 생성한다. 이러한 새로운 파일 식별자들(ID')은 모든 저장 서비스 제공자들에 노출될 것이다.
- 계산 수단들은 제공자(Oi; i = 1, ..., n)에게 다음을 전송한다:
-- 파일(F)을 지정하는 새로운 파일 식별자(ID'),
-- 결합(Ci),
-- 및 다른 결합(Ck)에 대응하는 계수들(ak1, ..., akn)(1 ≤ k ≤ n, k≠i)의 일 세트.
계수들(ak1, ..., akn)의 세트는 벡터들(ai1, ..., ain)(i = 1, ..., n)에 적용된 순열 σ에 의해 결정된다:
(ak1, ..., akn) = (aσ(n)1, ..., aσ(n)i, ..., aσ(n)n) = 결합 Cσ(i)에 대응하는 계수들.
다른 한편으로, 결합 Cσ(i)은 제공자(Oσ(i))에서 계수들(ai1, ..., ain)(i = 1, ..., n)의 세트와 연관하여 저장된다. 계산 수단들은 정수들(1 내지 n)에 대해 순열 σ을 규정한다. 기본적으로 이러한 순열은 1과 n 사이의 모든 정수들을 포함하지만 비순서화된 방식으로 어레이(σ(1), ..., σ(i), ..., σ(n))로서 표현될 수 있다.
- 계산 수단들은 다음과 연관하여, 제공자(Oi; i = 1, ..., n)에 저장한다.
-- 파일(F)을 지정하는 새로운 파일 식별자(ID'),
-- 결합(Ci),
-- 및 계수들(ak1, ..., akn)의 세트.
- 계산 수단들은 파일(F)에 대한 매우 간단한 파일 기술자를 로컬 메모리(LM)에 로컬로 저장한다. 이러한 파일 기술자는:
-- 파일(F)을 지정하는 식별자(ID'),
-- 선택된 저장 서비스 제공자들의 식별자들(O1, ..., On),
-- 및 순열 σ(예를 들면, 이전에 설명된 어레이의 형태로).
이러한 변형 a의 개선에 따라, 동일한 파일(F)에 대하여, 고유한 파일 식별자(ID')를 상이한 파일 식별자들(ID'1, .., ID'n)로 교체하는 것이 또한 가능하다. 이들 파일 식별자들(ID'1, .., ID'n)은 로컬 메모리(LM)에 n 개의 선택된 제공자들 각각에 및 파일(F)에 대응하는 파일 기술자에 각각 저장된다. 이러한 개선은 제공자들의 결탁의 경우 결합들이 링크하기 더 어렵게 만든다.
도 4는 스텝 6c를 도시한다:
- 계산 수단들은, 하나의 방식 함수, 예를 들면 해시 함수에 의해 로컬 식별자(ID)의 함수로서 동일한 파일(F)에 대하여 상이한 파일 식별자들(ID'1, .., ID'n)을 생성한다. 계산 수단들은 제공자(Oi)에게 파일 식별자들(ID'i) 및 결합(Ci)(i = 1, ..., n)을 전송하지만, 그들은 계수들의 임의의 세트를 전송하지 않는다.
- 이러한 변형(c)에 따라, 계산 수단들은 로컬 메모리(LM)에 더 큰 파일 기술자를 로컬로 저장한다. i = 1, ..., n에 대하여, 이러한 파일 기술자는 세 개의 항들을 포함하고, 각각의 세 개의 항은 i = 1, ..., n에 대하여 다음을 포함한다:
- 파일(F)을 지정하는 식별자(ID'i),
- 서비스 제공자 식별자(Oi),
- 및 결합(Ci)을 구성하기 위해 사용되는 계수들(ai1, ..., ain)의 세트.
도 5, 도 6, 및 도 7은 본 발명에 따라 보호되는 파일을 검색하는 방법의 세 개의 실시예들을 각각 도시한다. 검색은 파일을 보호하기 위해 상기에 기술된 스텝 6의 변형들(6a, 6b, 6c)에 대응하는 세 개의 변형들(a, b, c)에 따라 행해질 수 있다.
도 5는 변형 a를 도시한다:
파일(F)을 재구성하기 위해, 디바이스의 계산 수단들은 n 개의 선택된 저장 서비스 제공자들(임의의 순서로)의 각각으로부터 결합 및 이러한 결합에 계수들의 대응하는 세트를 요청한다.
스텝 51: 계산 수단들은 로컬 메모리(LM)에서 파일(F)에 대응하는 파일 식별자에 등록된 파일 식별자(ID') 및 제공자 식별자(O1, ..., On)를 판독한다. 이들은 파일 식별자(ID')를 저장 서비스 제공자들(Oi; i = 1, ..., n)로 전송한다.
스텝 52: 이후 계산 수단들은 제공자들(Oi; i = 1, ..., n)로부터 다음을 수신한다:
- 결합(Ci),
- 및 대응하는 계수들의 세트(ai1, ..., ain).
결합(Ci)은 파일(F)을 검색하는 프로세스에 대하여 계수들(ai1, ..., ain)의 세트에 직접 연관된다.
스텝 53: 이후 계산 수단들은 행렬 A = (aij)의 역행렬을 계산하고 행렬 B = (bij)를 획득한다. 이후 그들은 원래의 청크들을 Si = bi1ㆍC1 + ... + bijㆍCj + ... + binㆍCn(i = 1, ..., n)으로서 계산한다.
스텝 54: 이후 계산 수단은 청크들(S1, ..., Sn)을 재어셈블링하고 가능하게는 패딩을 제거하여 파일(F)을 재구성한다.
상이한 식별자들(ID'1, .., ID'n)이 동일한 파일(F)에 대하여 각각 제공자에 개별적으로 저장된 경우, 로컬 메모리(LM)에 저장된 파일 기술자에서 상이한 식별자들(ID'1, .., ID'n)을 판독하고, 고유한 식별자(ID')를 전송하는 대신 식별자들(ID'1, .., ID'n)을 n 개의 선택된 제공자들에 전송하는 것으로 구성된 변경 스텝 51을 포함하기 때문에 검색 방법은 변경된다는 것을 주의하라.
도 6은 변형 b를 도시한다:
파일(F)을 재구성하기 위해, 디바이스의 계산 수단들은 n 개의 선택된 저장 서비스 제공자들의 각각으로부터 결합 및 계수들의 일 세트를 요청한다(임의의 순서로). 그러나, 이러한 결합 및 이러한 계수들의 세트가 동일한 저장 서비스 제공자에 저장되지 않기 때문에, 그들은 이러한 결합을 계산하기 위해 사용되는 대응하는 계수들의 세트와 각각의 결합을 재연관시켜야 한다. 결합(Cσ(i))(Oi에 의해 저장된 계수들의 세트에 대응하는)이 제공자(Oσ(i))에 저장되기 때문에, 순열 σ은 다시 사용되어야 한다.
스텝 61:
- 계산 수단들은, 로컬 메모리(LM)에서, 파일(F)에 대응하는 파일 기술자에 등록된, 파일 식별자(ID'), 제공자 식별자들(O1, ..., On), 및 순열 σ을 판독한다.
- 그들은 식별자(ID')를 제공자 식별자들(O1, ..., On)에 의해 지정된 n 개의 저장 서비스 제공자들로 전송한다.
- 그들은 제공자(Oi; i = 1, ..., n)로부터 다음을 수신한다:
-- 결합(Ci),
-- 계수들(aσ(i)1, ..., aσ(i)n)의 세트.
스텝 62: 이후 그들은 순열 σ에 의하여 결합들(Ci) 및 대응하는 계수들(ai1, ..., ain)(i = 1, ..., n)의 세트를 재연관시킨다.
스텝 63: 이후 그들은 행렬 A = (aij)의 역행렬을 계산하고, 행렬 B = (bij)를 획득하고, 그들은 원래의 청크들을 Si = bi1ㆍC1 + ... + bijㆍCj + ... + binㆍCn(i = 1, ..., n)로서 계산한다.
스텝 64: 이후 그들은 청크들(S1, ..., Sn)을 재어셈블링하고 가능하게는 패딩을 제거하여 파일(F)을 재구성한다.
도 7은 변형 c를 도시한다:
파일(F)을 재구성하기 위해, 디바이스의 계산 수단들은 n 개의 선택된 저장 서비스 제공자들의 각각으로부터 결합 및 이들 결합에 대응하는 계수들의 일 세트를 요청한다(임의의 순서로).
스텝 71: 계산 수단들은, 로컬 메모리(LM)에서, 파일(F)에 대응하는 파일 기술자에 등록된, 파일 식별자(ID'1, ...., ID'n), 및 제공자 식별자들(O1, ..., On)을 판독한다.
그들은 파일 식별자(ID'i)를 제공자(Oi)(i = 1, ..., n에 대하여)를 전송한다(n 개의 식별자들(ID'1, ...., ID'n)은 서로 상이하다.).
이에 대응하여, 계산 수단들은 제공자(Oi)로부터 결합(Ci)을 수신한다(i = 1, ..., n).
스텝 72 : 그들은 로컬 메모리(LM)에서 계수들(ai1, ..., ain)을 판독한다. 결합(Ci)은 계수들(ai1, ..., ain)의 세트에 직접 연관된다(i = 1, ..., n에 대하여).
스텝 73 : 이후 그들은 행렬 A = (aij)의 역행렬을 계산하고, 행렬 B = (bij)를 획득한다. 이후 그들은 n 개의 원래의 청크들을 Si = bi1ㆍC1 + ... + bijㆍCj + ... + binㆍCn(i = 1, ..., n)로서 계산한다.
스텝 74 : 이후 그들은 n 개의 청크들(S1, ..., Sn)을 재어셈블링하고 가능하게는 패딩을 제거함으로써 파일(F)을 재구성한다.
보안:
모든 변형에서, 방식의 기본적인 보안은 사실상 모든 결합들(C1, ..., Cn) 없이 임의의 청크(Si)를 복구하는 것이 불가능하다는 사실에 놓인다. 따라서, 운영자들이 파일(F)의 기밀성을 깨기 위한 유일한 가능성은 모두 함께 결탁하는 것이다.
변형들(a, b, c)은 모든 n 개의 운영자들이 결탁하는 경우 상이한 레벨들의 보안을 제공한다:
- 변형 a: 그들이 모두 함께 결탁하고, 그들이 모든 결합들 및 모든 계수들의 세트들을 획득하는 경우, 그들은 완전한 파일(F)을 검색할 수 있다.
- 변형 b: 그들이 모두 함께 결탁하는 경우, 그들이 결합들 및 계수들의 세트들 사이의 대응을 인지함이 없이 모든 결합들 및 계수들을 획득한다. F를 검색하기 위하여, 그들은 모든 n! 개의 대응 가능성들을 시도해야 한다. n이 충분히 큰 경우, 처리 비용은 실제로 과중하게 된다.
- 변형 c: 그들이 모두 함께 결탁하는 경우, 그들은 결합들을 획득하지만 그들은 계수들의 세트들을 알지 못해서, 그들이 계산적으로 실행 불가능하다고 증명되는 모든 가능한 계수들의 세트들을 시도하지 않으면, 그들은 파일(F)을 검색할 수 없다(각각의 계수가 크기 p의 필드에 놓인 경우, pn 개의 가능성들이 존재하고, 그래서 p 및 n의 신중한 선택은 처리 능력들에 도달하지 않는 이러한 값을 쉽게 만들 수 있다). 이러한 변형 c는 가장 높은 레벨의 보안을 제안하고; 그러나 이는 디바이스가 계수들을 로컬로 저장하는 것을 또한 요구하고, 반면에 변형 a 및 변형 b에서, 디바이스는 임의의 추가의 정보를 저장하지 않아야 한다.
복원(선택적인 개선):
단지 방법의 취약성은 하나의 운영자(Oi)가 결합(Ci)을 상실하는(또는 충돌하는) 경우, 파일(F)을 검색하는 것이 불가능하게 된다는 것이다.
이러한 결점을 피하기 위한 제 1 개선은 n이 아닌 n + k 개의 결합들을 생성하고, 그들을 n + k 개의 운영자들에 저장하는 것으로 구성된다. 이후 n + k 개의 결합들 외에 임의의 n 개의 결합들을 검색하는 것이 가능하고 파일(F)을 재구성하기에 충분하다. 이는 k 개까지의 저장 서비스 제공자들의 실패로부터 복구하는 것이 가능하다는 것을 의미한다.
n + k 개의 운영자들에 저장할 때, 보안은 동일하게 유지된다: 적어도 n 개의 운영자들은 방식을 깨기 위해 결탁해야 한다. 이러한 해결책은 변경 a 및 변경 c에 잘 적용한다.
이러한 결점을 피하기 위하여 변형 c에 대한 상이한 개선은 실행 중에 적어도 하나의 추가의 결합(오버-결합이라고 부름)을 생성하는 것으로 구성된다; 이는 원래의 파일(F)을 재복원하기를 요구하지 않고 수행될 수 있다. 오버-결합(OC')은 결합들(Ci)의 선형 결합이다(i = 1, ..., n). 이러한 개선은:
- n 개의 계수들(a'j; j = 1, ..., n)(슈퍼 계수들이라고 부름)의 세트를 랜덤으로 선택하는 단계,
- 선형 오버-결합(OC' = a'1ㆍC1 + ... + a'jㆍCj + ... + a'nㆍCn)을 계산하는 단계,
- 및 오버-결합(OC') 및 n 개의 슈퍼-계수들(a'j)을 저장하는 단계를 포함한다.
n 개의 슈퍼-계수들(a'j) 및 오버-결합(OC')은 계산 수단들 및 메모리를 포함하는 임의의 엔티티에 의해 생성되고 저장될 수 있다. 이는 복원을 보장하기 위한 결합들 및 오버-결합들의 검색을 관리하기 때문에, 이를 "오케스트레이터"라고 부른다. 오케스트레이터는 네트워크에서 임의의 장소에 위치될 수 있다:
- 이는 상이한 클라우드 서비스 제공자에 있을 수 있거나, 또는 결합들(Ci; i = 1, ..., n)을 저장하기 위해 사용된 n 개의 저장 서비스 제공자들 중 하나와 가능하게는 연결될 수 있다.
- 이는 사용자 디바이스내에 있을 수 있다.
- 이는 또한, 사용자 디바이스와 저장 장치 운영자들 사이, 예를 들면, 셋-탑 박스에 있을 수 있다.
기능적으로, 오케스트레이터는 소스에 의해 반드시 신뢰되지는 않는 데이터의 가용성을 관리하는 것을 책임지는 중재자이다. 이러한 해결책은 따라서 변형 c에 매우 적합하고, 오케스트레이터는 계수들(ai1, ..., ain) 없이 결합들(Ci, ..., Cj, ..., Cn)이 주어진다(i = 1, ..., n).
선형 오버-결합(OC' = a'1ㆍC1 + ... + a'jㆍCj + ... + a'nㆍCn)이 또한 세그먼트들(Si)(i = 1, ..., n)의 선형 결합이기 때문에, 원래의 파일(F)을 검색하는 것은 상기에 기술된 방법과 유사한 방법에 의해 수행된다. 실제로 Ci = ai1ㆍS1 + ... + aijㆍSj + ... + ainㆍSn(i= 1, ...n)이다. 세그먼트들(Si)에 의하여 대응하는 계수들은 따라서 Ci에 의하여 오버-결합(OC')의 계수들(a'i)을 승산하고, 세그먼트들(Si)에 의하여 결합들(Ci)의 계수들(aij)을 승산함으로써 획득된다.
세그먼트들(Si)에 의하여 오버-결합(OC')을 다음과 같이 표현할 수 있다:
C' = (a'1ㆍa11 + ... + a'iㆍai1 + ... + a'nan1)ㆍS1 + (a'1ㆍa1j + ... + a'iㆍaij + ... + a'nanj)ㆍSj + ... + (a'1ㆍa1n + ... + a'iㆍain + ... + a'nann)ㆍSn(i= 1, ...n).
그래서 검색은 행렬을 역변환함으로써 행해질 수 있다.
예를 들면, 클라우드에서 데이터의 복원을 관리하는 오케스트레이터는 결합들(C1, ..., Cj, ..., Cn)을 저장하는 메모리 및 계산 수단을 포함하고, 상기 계산 수단은:
- n 개의 슈퍼-계수들(a'1, ..., a'n)을 생성하고,
- 및 슈퍼-결합(OC' = a'1ㆍC1 + ... + a'jㆍCj + ... + a'nㆍCn)을 계산하기 위한 것이다.
(선택적으로 복수의 슈퍼-결합들을 계산하기 위한 슈퍼-계수들의 복수의 세트들을 생성할 수 있다: 하나의 오버-결합은 단지 하나의 저장 서비스 제공자의 손실을 피하게 하고, k 개의 오버-결합들은 k 개의 저장 서비스 제공자들의 손실을 피하게 한다). 오버-결합(OC')은 이후 상이한 저장 제공자에 저장된다. 오케스트레이터는 저장 제공자들에 저장된 결합들의 이용 가능성을 모니터링한다. 오케스트레이터가 잘못된 저장 운영자를 검색할 때마다, 추가의 오버-결합을 생성하고 이를 다른 저장 제공자에 저장한다.
원래의 파일(F)을 검색하기 위해, 사용자 디바이스는 오케스트레이터로부터 파일(F)(식별자(ID')에 의해 지정됨)의 검색을 요청한다.
오케스트레이터는 n 개의 저장 장치 운영자들로부터 n 개의 결합들을 각각 요청한다.
- n 개의 저장 장치 운영자들이 보통으로 작동하는 경우, 오케스트레이터는 n 개의 결합들(C1, ..., Cj, ..., Cn)을 수신한다. 오케스트레이터는 이들을 사용자 디바이스로 포워딩한다. 이러한 후자는 상기에 설명된 바와 같이 파일(F)을 재구성할 수 있다.
- n 개의 저장 장치 운영자들 중 하나가 더 이상 작동하지 않는 경우, 결합들(Cn)을 저장한 저장 제공자가 실패했기 때문에, 오케스트레이터는 n-1 개의 결합들(C1, ..., Cj, ..., Cn -1)을 수신한다. 이후 오케스트레이터는 오버-결합(OC')(대응하는 저장 제공자로부터 페칭된) 및 슈퍼-계수들(a'1, ..., a'n)과 함께 이들을 사용자 디바이스에 포워딩한다.
사용자 디바이스의 계산 수단들은 다음에 의해 모든 세그먼트들(S1, ..., Sn)을 검색한다:
- 직접적으로 청크(Ci)에 대하여 (aij; j = 1, ..., n) 또는 오버-결합(OC')에 대하여 (a'1ㆍa1j + ... + a'iㆍaij + ... + a'nanj; j = 1, ..., n)인 검색된 프래그먼트들의 계수들에 의해 구성된 행렬을 역변환시킴. 역변환에 의하여, 계산 수단은 계수들(bi1, ..., bin; i = 1, ..., n)의 n 개의 세트들로 구성된 다른 행렬을 획득한다.
- 이후 상기 파일(F)의 n 개의 청크들(S1, ..., Sn)을 Si = bi1ㆍC1 + ... + bijㆍCj + ... + binㆍOC'(i = 1, ..., n)로서 계산.
- 이후 청크들(S1, ..., Sn)을 재어셈블링하고 패딩을 제거하여 파일(F)을 재구성.
하나의 오버-결합에 의해 이전에 나타낸 계산은 간단한 방식으로 복수의 오버-결합들의 경우에 대해 생성될 수 있다. M 개의 슈퍼-결합들은 M 개까지의 저장 운영자들이 실패하는 경우들을 포함하게 한다. k 개의 저장 운영자들이 실패한 경우(k < M), n-k 개의 청크들(및 계수들의 n-k 개의 세트들) 및 k 개의 오버-결합들(그들의 연관된 계수들과 함께)이 행렬 역변환을 위해 사용된다. 오버-결합이 원래의 결합으로서 표현될 수 있기 때문에, 식 C' = (a'1ㆍa11 + ... + a'iㆍai1 + ... + a'nan1)ㆍS1 + (a'1ㆍa1j + ... + a'iㆍaij + ... + a'nanj)ㆍSj + ... + (a'1ㆍa1n + ... + a'iㆍain + ... + a'nann)ㆍSn(i= 1, ...n)에 의해, 손실된 결합들 대신에 오버-결합들을 사용하기에 어려움이 없고, 둘 모두 동일한 방식으로 처리된다.
반대로, 변형 b는 반대로 n 개의 청크들에 대한 n 개의 결합들 및 n2 개의 계수들로 정확하게 설계된다. 결합의 손실에 대한 복원은 제안된 방법의 고유한 특징으로서는 아니지만 리던던시 또는 에러 코딩을 통해 다른 방법에 의해 제공될 수 있다.
성능 트레이드-
오프
(선택적인 개선):
제안된 방법의 주요 양태는 보안 및 성능을 조정하는 사실 및 그의 효과이다. 이러한 양태에 대해 더 강조하기 위해서, 데이터를 저장하는 사용자(간단하게 소스라고 부름)와 데이터를 검색하는 사용자들(이들은 데이터를 저장하는 사람과 반드시 동일하지 않은 페처들이라고 부름) 사이의 계산에서 추가의 트레이드-오프를 제안할 수 있다. 상기 기술된 실시예들에서, 소스는 결합을 수행하고 페처들은 행렬 역변환을 내포하는 재구성을 수행하고, 그래서 소스와 페처들 사이에 노력들이 반분된다. 그러나, 소스는 결합들을 계산하고 추가적으로 역행렬을 미리 계산하고 직접 계수들(aij) 대신에 역행렬의 계수들(bij)을 저장 서비스 제공자들에 또는 로컬 메모리(LM)에 직접 저장한다. 이는 이후 페처들이 역행렬을 직접 검색하고 하나의 행렬 곱을 수행할 수 있게 하여 파일(F)을 재구성한다. 따라서, 이러한 동작의 모드는 소스에 대한 계산 부담을 증가시키지만 페처들에 대하여 이를 크게 감소시키고, 따라서 저장은 한번 실행되지만 검색이 다수회 또는 많은 엔티티들에 의해 수행되는 상황들에 매우 적합하다. 이러한 동작의 모드는 모두 세 개의 방식들 (a), (b), 및 (c)와 호환가능하다.
도 8은 본 발명에 따라 파일을 보호하기 위한 방법의 세 개의 실시예들에 공통적인 제 1 스텝들을 도시하고, 이들 실시예들은 저장이 한번 수행되지만 검색은 수회 또는 많은 엔티티에 의해 수행되는 상황들에 특히 적합하다. 제 1 스텝들은 역행렬을 미리 계산하고 직접 계수들(aij) 대신에 역행렬의 계수들(bij)을 직접 저장하기 위해 변경된다. 스텝 4'은 n2 개의 계수들(a11, ..., aij, ...ann)을 제공하는 스텝 3과 이들 계수들을 제공자들에 또는 로컬 메모리(LM)에 저장하는 스텝 6a, 또는 스텝 6b, 또는 스텝 6c 사이에 도입된다.
파일(F)을 검색하는 것에 관해서는, 계산 수단들이 제공자들로부터 또는 로컬 메모리(LM)로부터 행렬 B = (bij)를 직접 수신하기 때문에, 재구성 스텝들(53, 63, 73)은 행렬 A = (aij)의 역행렬의 계산을 막음으로써 변경된다.
맺음말은 디바이스가 모두 세 개의 변형들에 저장되어야 하는 (그들이 상이한 크기들을 가지고 상이한 정보를 포함하더라도) 파일 기술자들을 저장하기 위한 로컬 메모리(LM)에 관한 것이다. 상이한 보안 레벨들을 충족하는 이들 기술자들을 저장하기 위한 다수의 가능성들이 존재한다. 기술자들은 실제로 다음에 저장될 수 있다:
- 스마트 카드와 같은 변조 방지 하드웨어에,
- 그에 대한 다른 액세스를 물리적으로 방지하기 위해, 기술자가 저장된 후 제거되는 로컬 제거 가능한 저장 디바이스(예를 들면, USB 키, 외장 하드-드라이브, ...)상에,
- 인터넷 서비스 제공자에 의해 관리된 보안된 저장 공간에(예를 들면, 셋-탑 박스상에),
- 간단한 로컬 저장 디바이스(예를 들면, 랩탑의 하드-드라이브)상에,
- 또 다른 저장 서비스 제공자에, 예를 들면, 클라우드에.
처음 두 개의 옵션들은 특히 변형 c와 결합하여 매우 비밀스러운 문서들에 관련되고, 반면에 마지막 것은 변형 a와 결합하여 민감한 데이터가 아니고 이러한 마지막 제공자가 이전의 제공자들과 결탁하지 않을 것이라는 몇몇 보장들을 갖는 것을 제외하면, 사용되지 않아야 한다.
Claims (22)
- 복수의 저장 서비스 제공자들에 분산 및 저장된 파일(F)의 기밀성을 보호하기 위한 방법에 있어서,
보안 파라미터(n)를 선택하는 단계(1),
상기 파일을 n 개의 청크들(S1, ..., Sn)로 세분하는 단계(2),
n2 개의 계수들(aij; i = 1, ..., n 및 j = 1, ..., n)을 선택하는 단계(3),
벡터들(ai1, ..., ain; i = 1, ..., n)이 선형적으로 독립적인지를 검증하는 단계(3)로서, 선형적으로 독립적이지 않은 경우 상기 계수를 다시 생성하는, 상기 검증 단계(3),
n 개의 선형 결합들(Ci = ai1ㆍS1 + ... + aijㆍSj + ... + ainㆍSn)(i= 1, ...n)을 계산하는 단계(4),
상기 복수의 저장 서비스 제공자 중에서 n 개의 저장 서비스 제공자들(Oi, ..., On)을 선택하는 단계(5),
상기 파일(F)을 지정하는 n 개의 파일 식별자들(ID'1, ..., ID'n)을 생성하는 단계(6a; 6b; 6c),
상기 파일 식별자(ID'i, i = 1, ..., n)와 연관하여 상기 저장 서비스 제공자(Oi)에 상기 결합(Ci)을 저장하는 단계(6a; 6b; 6c),
상기 파일(F)에 대응하는 파일 기술자에 상기 파일 식별자(ID'i) 및 상기 제공자 식별자(Oi)(i = 1, ..., n)를 저장하는 단계로서, 상기 파일 기술자는 로컬 메모리(LM)에 저장되는, 상기 파일 식별자(ID'i) 및 상기 제공자 식별자(Oi)(i = 1, ..., n)를 저장하는 단계; 및
상기 결합(Ci)과 재연관될 수 있도록 상기 계수들(ai1, ..., ain)(i = 1, ..., n)의 세트를 저장하는 단계를 포함하고,
상기 방법은:
상기 n2 개의 계수들(aij; i = 1, ..., n 및 j = 1, ..., n)을 랜덤으로 선택하는 단계(3),
상기 벡터들(ai1, ..., ain; i = 1, ..., n)이 선형적으로 독립적인지를 검증하는 단계(3)로서, 선형적으로 독립적이지 않은 경우 상기 계수를 다시 생성하는, 상기 검증 단계(3),
n 개의 슈퍼-계수들(a'1, ..., a'j, ..., a'n; j = 1, ..., n)을 랜덤으로 선택하는 단계,
선형 오버-결합(OC' = a'1ㆍC1 + ... + a'jㆍCj + ... + a'nㆍCn)을 계산하는 단계, 및
상기 오버-결합(OC') 및 상기 계수들(a'1, ..., a'j, ..., a'n, j = 1, ..., n)을 저장하는 단계를 추가로 포함하는 것을 특징으로 하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법. - 제 1 항에 있어서,
상기 결합(Ci)과 재연관될 수 있도록 상기 계수들(ai1, ..., ain)(i = 1, ..., n)의 세트를 저장하는 단계는 상기 결합(Ci) 및 상기 파일 식별자(ID')와 연관하여 상기 저장 서비스 제공자(Oi)(i = 1, ..., n)에 이들을 저장하는 단계(6a)를 포함하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법. - 제 1 항에 있어서,
상기 결합(Ci)과 재연관될 수 있도록 상기 계수들(ai1, ..., ain)(i = 1, ..., n)의 세트를 저장하는 단계는:
결합(Ck) 및 파일 식별자(ID'k)와 연관하여 상기 저장 서비스 제공자(Oi)에 상기 계수들(ai1, ..., ain)의 상기 세트(i = 1, ..., n 및 1 ≤ k ≤ n, k≠i)를 저장하는 단계(6b); 및
상기 파일(F)에 대응하고 상기 로컬 메모리(LM)에 저장되는 상기 파일 기술자에 상기 계수들(ai1, ..., ain)의 상기 세트 및 상기 결합(Ci)(i = 1, ..., n)을 재연관시키게 하는 순열(σ)을 저장하는 단계(6b)를 포함하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법. - 제 1 항에 있어서,
상기 결합(Ci)과 재연관될 수 있도록 상기 계수들의 세트(ai1, ..., ain)(i = 1, ..., n)를 저장하는 단계는, 상기 파일(F)에 대응하고 상기 로컬 메모리(LM)에 저장되는 상기 파일 기술자에, 파일 식별자(ID'i) 및 제공자 식별자(Oi)와 연관하여 상기 계수들(ai1, ..., ain)(i = 1, ..., n)의 세트를 저장하는 단계를 포함하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법. - 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
상기 n 개의 파일 식별자들(ID'1, .., ID'n)은 주어진 파일(F)에 대하여 동일한 ID'인, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법. - 복수의 저장 서비스 제공자들에 분산 및 저장된 파일(F)을 검색하는 방법에 있어서,
상기 파일을 지정하는 n 개의 파일 식별자들(ID'1, .., ID'n)을 판독(51)하고, 상기 파일(F)에 대응하는 파일 기술자에서 제공자 식별자들(O1, ..., On)을 판독하는 단계로서, 이러한 파일 기술자는 로컬 메모리(LM)에 저장되는, 상기 파일 식별자 및 제공자 식별자를 판독하는 단계(51),
상기 제공자 식별자들(O1, ..., On)에 의해 지정된 저장 서비스 제공자들에 상기 n 개의 파일 식별자들(ID'1, .., ID'n)을 각각 전송하는 단계(51),
상기 제공자 식별자들(O1, ..., On)에 의해 지정된 상기 제공자들로부터 n 개의 결합들(C1, ..., Cn)을 수신하는 단계(51),
상기 n 개의 결합들(C1, ..., Cn)에 각각 대응하는 계수들(ai1, ..., ain)(i = 1, ..., n)의 n 개의 세트들을 검색하는 단계,
각각의 결합(Ci)을 계수들(ai1, ..., ain)(i = 1, ..., n)의 대응하는 세트들과 연관시키는 단계(52; 62; 72),
계수들(bi1, ..., bin; i = 1, ..., n)의 n 개의 세트들로 구성된 다른 행렬을 획득하기 위하여 계수들(ai1, ..., ain, i = 1, ..., n)의 상기 n 개의 세트들로 구성된 역행렬을 계산하는 단계(53; 63; 73),
이후 상기 파일(F)의 n 개의 청크들(S1, ..., Sn)을 Si = bi1ㆍC1 + ... + bijㆍCj + ... + binㆍCn(i = 1, ..., n)으로 계산하는 단계,
이후 상기 파일(F)을 재구성하기 위해 상기 청크들(S1, ..., Sn)을 재어셈블링하는 단계(54; 64; 74)를 포함하고,
상기 방법은:
오버-결합(OC') 및 계수들(a'1, ..., a'i, ... a'n; j = 1, ..., n)을 판독하는 단계;
상기 계수들(bi1, ... , bin; i = 1, ..., n)의 상기 n 개의 세트들로 구성된 다른 행렬을 획득하기 위해, 계수들(ai1, ..., ain; i = 1, ..., n)의 n-1 개의 세트들 및 계수들(a'1ㆍa1j + ... + a'iㆍaij + ... + a'nㆍanj; j = 1, ..., n)의 일 세트로 구성된 역행렬을 계산하는 단계;
이후 상기 파일(F)의 n 개의 청크들(S1, ..., Sn)을 Si = bi1ㆍC1 + ... + bijㆍCj + ... + bin -1ㆍCn -1 + binㆍOC'(i = 1, ..., n)로 계산하는 단계;
이후 상기 파일(F)을 재구성하기 위해 상기 청크들(S1, ..., Sn)을 재어셈블링하는 단계를 추가로 포함하는 것을 특징으로 하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일을 검색하는 방법. - 제 6 항에 있어서,
상기 n 개의 결합들(C1, ..., Cn)에 각각 대응하는 계수들의 n 개의 세트들(ai1, ..., ain)(i = 1, ..., n)을 검색하는 단계는 상기 제공자 식별자들(O1, ..., On)에 의해 지정된 상기 제공자들로부터 이들을 수신하는 단계(51)를 포함하고,
상기 각각의 결합(Ci)을 계수들(ai1, ..., ain; i = 1, ..., n)의 대응하는 세트와 연관시키는 단계(52)는 상기 결합(Ci)을 상기 계수들(ai1, ..., ain)의 세트와 직접 연관시키는 단계를 포함하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일을 검색하는 방법. - 제 6 항에 있어서,
상기 n 개의 결합들(C1, ..., Cn)에 각각 대응하는 상기 계수들(ai1, ..., ain)(i = 1, ..., n)의 상기 n 개의 세트들을 검색하는 단계는, 이들을 상기 제공자 식별자들(O1, ..., On)에 의해 지정된 상기 제공자들로부터 수신하는 단계(51)를 포함하고;
상기 각각의 결합(Ci)을 계수들(ai1, ..., ain)(i = 1, ..., n)의 대응하는 세트와 연관시키는 단계(62)는:
상기 파일(F)에 대응하는 상기 파일 기술자에서 순열(σ)을 판독하는 단계, 및
상기 각각의 결합(Ci)이 상기 계수들(ai1, ..., ain; i = 1, ..., n)의 대응하는 세트와 연관되도록 상기 계수들(ai1, ..., ain, i = 1, ..., n)의 상기 세트들에 상기 순열을 적용하는 단계를 포함하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일을 검색하는 방법. - 제 6 항에 있어서,
상기 n 개의 결합들(C1, ..., Cn)에 각각 대응하는 상기 계수들(ai1, ..., ain)(i = 1, ..., n)의 상기 n 개의 세트들을 검색하는 단계는, 상기 파일(F)에 대응하는 상기 파일 기술자에서 이들을 판독하는 단계를 포함하고,
상기 각각의 결합(Ci)을 계수들(ai1, ..., ain; i = 1, ..., n)의 대응하는 세트와 연관시키는 단계(72)는 상기 계수들(ai1, ..., ain)의 세트를 상기 결합(Ci)(i = 1, ..., n)과 직접 연관시키는 단계를 포함하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일을 검색하는 방법. - 제 6 항 내지 제 9 항 중 어느 한 항에 있어서,
상기 n 개의 파일 식별자들(ID'1, .., ID'n)은 주어진 파일(F)에 대하여 동일한 ID'인, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일을 검색하는 방법. - 복수의 저장 서비스 제공자들에 분산 및 저장된 파일(F)의 기밀성을 보호하기 위한 방법에 있어서,
보안 파라미터(n)를 선택하는 단계(1),
상기 파일을 n 개의 청크들(S1, ..., Sn)로 세분하는 단계(2),
n2 개의 계수들(aij; i = 1, ..., n 및 j = 1, ..., n)을 랜덤으로 선택하는 단계(3),
벡터들(ai1, ..., ain; i = 1, ..., n)이 선형적으로 독립적인지를 검증하고, 선형적으로 독립적이지 않은 경우 상기 계수들을 다시 생성하는, 검증 단계(3),
n 개의 선형 결합들(Ci = ai1ㆍS1 + ... + aijㆍSj + ... + ainㆍSn; i= 1, ...n)을 계산하는 단계(4),
상기 복수의 저장 서비스 제공자 중에서 n 개의 저장 서비스 제공자들(Oi, ..., On)을 선택하는 단계(5),
상기 파일(F)을 지정하는 n 개의 파일 식별자들(ID'1, ..., ID'n)을 생성하는 단계(6a; 6b; 6c),
상기 파일 식별자(ID'i, i = 1, ..., n에 대하여)와 연관하여 상기 저장 서비스 제공자(Oi)에 상기 결합(Ci)을 저장하는 단계(6a; 6b; 6c),
상기 파일(F)에 대응하는 파일 기술자에 상기 파일 식별자(ID'i) 및 상기 제공자 식별자(Oi)(i = 1, ..., n)를 저장하는 단계로서, 상기 파일 기술자는 로컬 메모리(LM)에 저장되는, 상기 파일 식별자(ID'i) 및 상기 제공자 식별자(Oi)(i = 1, ..., n)를 저장하는 단계, 및
계수들(bi1, ..., bin; i = 1, ..., n)의 n 개의 세트들로 구성된 다른 행렬을 획득하기 위해 상기 계수들의 상기 n 개의 세트(ai1, ..., ain; i = 1, ..., n)로 구성된 역행렬을 계산하는 단계(4'), 및
상기 결합(Ci)과 재연관될 수 있도록 상기 계수들(bi1, ..., bin)(i = 1, ..., n)의 세트를 저장하는 단계를 포함하고,
상기 방법은:
상기 n2 개의 계수들(aij; i = 1, ..., n 및 j = 1, ..., n)을 랜덤으로 선택하는 단계(3), 및
상기 벡터들(ai1, ..., ain; i = 1, ..., n)이 선형적으로 독립적인 것을 검증(3)하고, 선형적으로 독립적이 아닌 경우 계수들을 다시 생성하는 단계를 추가로 포함하는 것을 특징으로 하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법. - 제 11 항에 있어서,
상기 결합(Ci)과 재연관될 수 있도록 상기 계수들(bi1, ..., bin)(i = 1, ..., n)의 세트를 저장하는 단계는 상기 결합(Ci) 및 상기 파일 식별자(ID'i)와 연관하여 상기 저장 서비스 제공자(Oi; i = 1, ..., n)에 이를 저장하는 단계(6a)를 포함하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법. - 제 11 항에 있어서,
상기 결합(Ci)과 재연관될 수 있도록 상기 계수들(bi1, ..., bin)(i = 1, ..., n)의 세트를 저장하는 단계는:
결합(Ck) 및 파일 식별자(ID'k)와 연관하여 상기 저장 서비스 제공자(Oi)에 상기 계수들(ai1, ..., ain)(i = 1, ..., n 및 1 ≤ k ≤ n, k≠i)의 상기 세트를 저장하는 단계(6b); 및
상기 파일(F)에 대응하고 상기 로컬 메모리(LM)에 저장되는 상기 파일 기술자에서 상기 계수들의 세트(bi1, ..., bin) 및 상기 결합(Ci)(i = 1, ..., n)을 재연관시키게 하는 순열(σ)을 저장하는 단계(6b)를 포함하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법. - 제 11 항에 있어서,
상기 결합(Ci)과 재연관될 수 있도록 상기 계수들(bi1, ..., bin)(i = 1, ..., n)의 상기 세트를 저장하는 단계는, 상기 파일(F)에 대응하고 상기 로컬 메모리(LM)에 저장되는 상기 파일 기술자에, 상기 파일 식별자(ID'1) 및 상기 제공자 식별자(ID'i)(i = 1, ..., n)와 연관하여 상기 계수들(bi1, ..., bin)의 상기 세트를 저장하는 단계를 포함하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법. - 제 11 항 내지 제 14 항 중 어느 한 항에 있어서,
상기 n 개의 파일 식별자들(ID'1, .., ID'n)은 주어진 파일(F)에 대하여 동일한, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법. - 복수의 저장 서비스 제공자들에 분산 및 저장된 파일(F)을 검색하는 방법에 있어서,
상기 파일(F)을 지정하는 n 개의 파일 식별자들(ID'1, .., ID'n)을 판독(51)하고, 상기 파일(F)에 대응하는 파일 기술자에서 제공자 식별자들(O1, ..., On)을 판독하는 단계로서, 이러한 파일 기술자는 로컬 메모리(LM)에 저장되는, 상기 파일 식별자들(ID'1, .., ID'n) 및 상기 제공자 식별자들(O1, ..., On)을 판독하는 단계,
상기 제공자 식별자들(O1, ..., On)에 의해 지정된 상기 저장 서비스 제공자들로 상기 n 개의 파일 식별자들(ID'1, .., ID'n)을 각각 전송하는 단계(51),
상기 제공자 식별자들(O1, ..., On)에 의해 지정된 이들 제공자들로부터 n 개의 결합들(C1, ..., Cn)을 수신하는 단계(51),
상기 n 개의 결합들(C1, ..., Cn)에 각각 대응하는, 계수들(bi1, ..., bin; i = 1, ..., n)의 n 개의 세트들을 검색하는 단계,
각각의 결합(Ci)을 계수들(bi1, ..., bin; i = 1, ..., n)의 대응하는 세트와 연관시키는 단계(52; 62; 72),
상기 파일의 청크들(S1, ..., Sn)을 Si = bi1ㆍC1 + ... + bijㆍCj + ... + binㆍCn(i = 1, ..., n)으로서 계산하는 단계(53; 63; 73), 및
이후 상기 파일(F)을 재구성하기 위하여 상기 청크들(S1, ..., Sn)을 재어셈블링하는 단계(54; 64; 74)를 포함하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일을 검색하는 방법. - 제 16 항에 있어서,
상기 n 개의 결합들(C1, ..., Cn)에 각각 대응하는, 상기 계수들(bi1, ..., bin; i = 1, ..., n)의 상기 n 개의 세트들을 검색하는 단계는 상기 제공자 식별자들(O1, ..., On)에 의해 지정된 상기 제공자들로부터 이들을 수신하는 단계(51)를 포함하고,
상기 각각의 결합(Ci)을 계수들(bi1, ..., bin; i = 1, ..., n)의 대응하는 세트와 연관시키는 단계(52)는: 상기 결합(Ci)을 상기 계수들(bi1, ..., bin)의 세트에 직접 연관시키는 단계를 포함하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일을 검색하는 방법. - 제 16 항에 있어서,
상기 n 개의 결합들(C1, ..., Cn)에 각각 대응하는, 상기 계수들(bi1, ..., bin; i = 1, ..., n)의 상기 n 개의 세트들을 검색하는 단계는 상기 제공자 식별자들(O1, ..., On)에 의해 지정된 상기 제공자들로부터 이들을 수신하는 단계(51)를 포함하고,
상기 각각의 결합(Ci)을 계수들(bi1, ..., bin; i = 1, ..., n)의 대응하는 세트와 연관시키는 단계(62)는:
상기 파일(F)에 대응하는 상기 파일 기술자에서 순열(σ)을 판독하는 단계, 및
상기 각각의 결합(Ci)이 계수들(ai1, ..., ain, i = 1, ..., n)의 대응하는 세트와 연관되도록 상기 계수(ai1, ..., ain, i = 1, ..., n)들의 상기 세트에 상기 순열을 적용하는 단계를 포함하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일을 검색하는 방법. - 제 16 항에 있어서,
상기 n 개의 결합들(C1, ..., Cn)에 각각 대응하는, 계수들(bi1, ..., bin; i = 1, ..., n)의 n 개의 세트들을 검색하는 단계는 상기 파일(F)에 대응하는 상기 파일 기술자에서 그들을 판독하는 단계를 포함하고,
각각의 결합(Ci)을 계수들의 대응하는 세트(i = 1, ..., n)와 연관시키는 단계(72)는 상기 계수들(bi1, ..., bin)의 세트를 상기 결합(Ci)(i = 1, ..., n)에 직접 연관시키는 단계를 포함하는, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일을 검색하는 방법. - 제 16 항 내지 제 19 항 중 어느 한 항에 있어서,
상기 n 개의 파일 식별자들(ID'1, .., ID'n)은 주어진 파일(F)에 대하여 동일한 ID'인, 복수의 저장 서비스 제공자들에 분산 및 저장된 파일을 검색하는 방법. - 머신 실행가능한 프로그램 명령들의 세트를 저장하는 디지털 데이터 저장 매체에 있어서,
상기 프로그램 명령들은, 컴퓨터상에 실행될 때, 상기 컴퓨터가 제 1 항 내지 제 20 항 중 어느 한 항에 따른 방법의 모든 방법 단계들을 수행하게 하는, 디지털 데이터 저장 매체. - 컴퓨터 실행가능한 명령들을 포함하는 컴퓨터 프로그램 제품에 있어서,
상기 프로그램이 컴퓨터상에 실행될 때, 상기 컴퓨터 실행가능한 명령들은 제 1 항 내지 제 20 항 중 어느 한 항에 따른 단계들을 포함하는 방법을 수행하는, 컴퓨터 프로그램 제품.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP12305544.4A EP2665223A1 (en) | 2012-05-16 | 2012-05-16 | Method for protecting confidentiality of a file distributed and stored at a plurality of storage service providers |
EP12305544.4 | 2012-05-16 | ||
PCT/EP2013/058075 WO2013171017A1 (en) | 2012-05-16 | 2013-04-18 | Method for protecting confidentiality of a file distributed and stored at a plurality of storage service providers |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150002821A true KR20150002821A (ko) | 2015-01-07 |
Family
ID=48128325
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20147031972A KR20150002821A (ko) | 2012-05-16 | 2013-04-18 | 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9286487B2 (ko) |
EP (1) | EP2665223A1 (ko) |
JP (1) | JP5944047B2 (ko) |
KR (1) | KR20150002821A (ko) |
CN (1) | CN104350702A (ko) |
IN (1) | IN2014DN08893A (ko) |
WO (1) | WO2013171017A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220087934A (ko) | 2020-12-18 | 2022-06-27 | 주식회사 기세소프트 | 임베디드 플랫폼 기반의 프로젝트 기밀성 관리 디바이스 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9900252B2 (en) * | 2013-03-08 | 2018-02-20 | A10 Networks, Inc. | Application delivery controller and global server load balancer |
US10459789B2 (en) | 2015-05-27 | 2019-10-29 | Quantum Corporation | Global storage solution with logical cylinders and capsules |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001358709A (ja) * | 2000-06-13 | 2001-12-26 | Casio Comput Co Ltd | 暗号化装置、復号化装置、その方法及び記録媒体 |
US20030079222A1 (en) * | 2000-10-06 | 2003-04-24 | Boykin Patrick Oscar | System and method for distributing perceptually encrypted encoded files of music and movies |
JP2003296179A (ja) | 2002-03-29 | 2003-10-17 | Mitsubishi Electric Corp | 情報処理装置及びネットワークファイル方法 |
JP4102148B2 (ja) | 2002-09-20 | 2008-06-18 | 株式会社リコー | 記録装置 |
CA2922200A1 (en) * | 2004-10-25 | 2006-05-04 | Security First Corp. | Secure data parser method and system |
FR2892583B1 (fr) * | 2005-10-21 | 2008-01-25 | Centre Nat Rech Scient | Procede de transmission securisee de donnees |
US20070214314A1 (en) | 2006-03-07 | 2007-09-13 | Reuter James M | Methods and systems for hierarchical management of distributed data |
US20100037056A1 (en) * | 2008-08-07 | 2010-02-11 | Follis Benjamin D | Method to support privacy preserving secure data management in archival systems |
US8132073B1 (en) * | 2009-06-30 | 2012-03-06 | Emc Corporation | Distributed storage system with enhanced security |
WO2012042509A1 (en) * | 2010-10-01 | 2012-04-05 | Peter Chacko | A distributed virtual storage cloud architecture and a method thereof |
US9098201B2 (en) * | 2011-06-23 | 2015-08-04 | Cohort Fs, Llc | Dynamic data placement for distributed storage |
CN102420854A (zh) * | 2011-11-14 | 2012-04-18 | 西安电子科技大学 | 面向云存储的分布式文件系统 |
-
2012
- 2012-05-16 EP EP12305544.4A patent/EP2665223A1/en not_active Withdrawn
-
2013
- 2013-04-18 WO PCT/EP2013/058075 patent/WO2013171017A1/en active Application Filing
- 2013-04-18 IN IN8893DEN2014 patent/IN2014DN08893A/en unknown
- 2013-04-18 KR KR20147031972A patent/KR20150002821A/ko not_active Application Discontinuation
- 2013-04-18 CN CN201380025430.2A patent/CN104350702A/zh active Pending
- 2013-04-18 US US14/401,236 patent/US9286487B2/en not_active Expired - Fee Related
- 2013-04-18 JP JP2015511969A patent/JP5944047B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220087934A (ko) | 2020-12-18 | 2022-06-27 | 주식회사 기세소프트 | 임베디드 플랫폼 기반의 프로젝트 기밀성 관리 디바이스 |
Also Published As
Publication number | Publication date |
---|---|
US9286487B2 (en) | 2016-03-15 |
CN104350702A (zh) | 2015-02-11 |
JP2015516638A (ja) | 2015-06-11 |
US20150161411A1 (en) | 2015-06-11 |
WO2013171017A1 (en) | 2013-11-21 |
IN2014DN08893A (ko) | 2015-05-22 |
EP2665223A1 (en) | 2013-11-20 |
JP5944047B2 (ja) | 2016-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11783056B2 (en) | Systems and methods for cryptographic-chain-based group membership content sharing | |
US8635465B1 (en) | Counter-based encryption of stored data blocks | |
US8719590B1 (en) | Secure processing in multi-tenant cloud infrastructure | |
US9483657B2 (en) | Secure online distributed data storage services | |
US20220014367A1 (en) | Decentralized computing systems and methods for performing actions using stored private data | |
Anbuchelian et al. | Efficient and secure auditing scheme for privacy preserving data storage in cloud | |
Virvilis et al. | A cloud provider-agnostic secure storage protocol | |
Sivakumar et al. | Securing data and reducing the time traffic using AES encryption with dual cloud | |
CN116635847A (zh) | 实现弹性确定性加密 | |
JP2013239989A (ja) | 情報処理装置、データ生成方法、情報処理方法、および情報処理システム | |
JP2020155801A (ja) | 情報管理システム及びその方法 | |
US20220284110A1 (en) | Multi-key secure deduplication using locked fingerprints | |
KR20150002821A (ko) | 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법 | |
Roth et al. | A secure submission system for online whistleblowing platforms | |
Bienstock et al. | Batch PIR and Labeled PSI with Oblivious Ciphertext Compression. | |
US20210034778A1 (en) | Anonymous ranking service | |
Saxena et al. | Collaborative approach for data integrity verification in cloud computing | |
KR101751971B1 (ko) | 암호화 상태의 이미지에 대한 영상처리방법 및 영상처리장치 | |
Bobde et al. | An approach for securing data on Cloud using data slicing and cryptography | |
Traverso et al. | Selecting secret sharing instantiations for distributed storage | |
Branco et al. | A New Mechanism to Preserving Data Confidentiality in Cloud Database Scenarios | |
Akintoye et al. | Towards fog-based cyber-healthcare data storage security and availability | |
Naveed et al. | The Adaptive Security of Cloud Information Management Encrypted with Cryptographic Network Coding | |
El Ahrache et al. | Enhancing Cloud Data Security Through Long-Term Secret Sharing Schemes | |
Abdel-Rahman et al. | POMS: Proxy Offloading for Multicloud Storage with Keyword Search |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |