KR101726512B1 - 코드 개인화를 통한 rs 코드의 보안 강화방법 - Google Patents

코드 개인화를 통한 rs 코드의 보안 강화방법 Download PDF

Info

Publication number
KR101726512B1
KR101726512B1 KR1020150131221A KR20150131221A KR101726512B1 KR 101726512 B1 KR101726512 B1 KR 101726512B1 KR 1020150131221 A KR1020150131221 A KR 1020150131221A KR 20150131221 A KR20150131221 A KR 20150131221A KR 101726512 B1 KR101726512 B1 KR 101726512B1
Authority
KR
South Korea
Prior art keywords
code
data
user
gateway server
matrix
Prior art date
Application number
KR1020150131221A
Other languages
English (en)
Other versions
KR20170033501A (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 KR1020150131221A priority Critical patent/KR101726512B1/ko
Publication of KR20170033501A publication Critical patent/KR20170033501A/ko
Application granted granted Critical
Publication of KR101726512B1 publication Critical patent/KR101726512B1/ko

Links

Images

Classifications

    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Error Detection And Correction (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 코드 개인화를 통한 RS 코드의 보안 강화방법에 관한 것으로, 클라이언트 어플리케이션으로 데이터를 인코딩하는 방법에 있어서, 사용자 키로 코드를 개인화하는 코드 개인화 단계(S1단계)와; 분산 행렬(dispers al matrix)을 생성하는 분산 행렬 생성단계(S2단계)와; 사용자 데이터를 인코딩하는 인코딩 단계(S3단계)와; 각 파일을 n개의 조각(share) 단위로 조각내는 조각단계(S4단계) 및; 데이터를 n개의 조각(share)으로 분산하여 저장하는 분산 저장단계(S5단계)로 이루어져 사용자별로 서로 다른 분산행렬(dispersal matrix)를 갖도록 사용자 키를 바탕으로 코드북을 생성하여 코드를 개인화함으로써 보다 안전하게 데이터를 보호할 수 있으면서 RS 코드(Reed-Solomon code)를 기반으로 하여 암호화/복호화 속도가 빠르고, 기존 RS 코드(Reed-Solomon code)의 장점인 저정효율(storage efficiency)을 높이면서 동시에 코드 개인화를 통해 보안 수준도 높일 수 있을 뿐만 아니라 수열 A가 임의로 생성되었을 뿐 그 외 과정은 기존 RS 코드(Reed-Solomon code)와 동일하기 때문에 이미 오픈 라이브러리(open library) 등으로 개발된 리드-솔로몬(Reed-Solomon) 최적화 구현 결과를 분산 행렬(dispersal matrix) 생성 부분만 조금 수정하여 사용할 수 있는 각별한 장점이 있는 유용한 발명이다.

Description

코드 개인화를 통한 RS 코드의 보안 강화방법{Improving security of Reed-Solomon Code using code personalization}
본 발명은 데이터를 보호하는 방법에 관한 것으로, 더욱 상세하게는 사용자별로 서로 다른 분산 행렬(dispersal matrix)를 갖도록 사용자 키를 바탕으로 코드북을 생성하여 코드를 개인화함으로써 보다 안전하게 데이터를 보호할 수 있는 코드 개인화를 통한 RS 코드의 보안 강화방법에 관한 것이다.
IT 인프라가 발전하면서 기존의 출력물로 관리되었던 많은 양의 데이터가 디지털 데이터로 변환되어 저장 및 관리되고 있다. 특히 음악 또는 동영상과 같은 일반적인 데이터뿐만 아니라 기업 기밀 자료, 고객들의 개인 정보 등의 민감한 정보들도 디지털 형태로 저장되고 있다. 이러한 디지털 데이터는 기존의 아날로그 데이터보다 작은 공간을 사용하고, 쉽고 빠르게 생성 및 수정, 공유할 수 있는 장점이 있다. 하지만 USB 메모리와 같이 매우 작은 저장장치에 수백 기가의 자료를 저장할 수 있어, 중요한 정보가 저장된 장치를 분실하거나 도난당할 경우 매우 큰 피해를 입을 수 있다. 특히 데이터 유출이 발생하는 주요 경로에 노트북 또는 이동식 디스크와 같은 저장 장치의 도난 및 분실이 높은 비율을 차지하고 있다.
이와 같은 데이터 유출을 방지하기 위해 다양한 방법이 사용되고 있으며, 주로 데이터 암호화 방법을 사용한다. 하지만 데이터 암호화 방법은 해당 데이터의 유출 자체를 막는 것이 아니라 데이터가 유출되어도 해당 데이터의 내용을 획득할 수 없도록 하는 것을 목적으로 하는 한계가 있다.
한편, 이하에서 인용되는 선행기술문헌에는 공격자가 데이터를 습득할 경우 유출된 데이터를 제어할 수 없는 문제점을 해결하기 위해, 데이터를 LS(Local share)와 RS(Remote share)로 분할한 후 LS는 사용자가 소지하고 RS는 클라우드 서비스에 저장함으로써, 공격자가 LS와 RS 중 하나를 획득하더라도 나머지 하나를 획득하지 못한다면 LS와 RS로 나누기 전의 온전한 데이터를 획득할 수 없도록 하는 방법을 소개하였다. 그러나 이러한 기술은 원래의 데이터를 획득하기 위해서는 2개로 분리된 LS와 RS를 재조합하여야 하고, 이때, LS는 데이터 소유자의 로컬 저장장치에 저장되며, RS와 재조합하기 위해서는 항상 LS를 소지해야 함으로써, 클라우드 서비스를 사용할 때 가장 큰 장점인 데이터 가용성이 낮아지는 한계가 존재한다.
이상과 같은 관점에서, 클라우드 환경에서 데이터를 보호하기 위해서는 데이터 복구과정에서 가용성을 보장하고, 데이터의 무결성 및 기밀성 또한 보장하는 기술적 수단이 필요하다는 사실을 알 수 있다.
이러한 사실을 기반으로 종래 개발된 데이터 보호기술로는 특허 제1472320호의 "클라우드 환경에 비밀분산 기법을 이용한 데이터 보호 방법"이 등록특허공보에 개시되어 있다(특허문헌 1 참조).
상기 특허 제1472320호의 "클라우드 환경에 비밀분산 기법을 이용한 데이터 보호 방법"은 도 1에 도시한 바와 같이 비밀분산 시스템이 클라우드(Cloud) 서비스에 파일을 업로드(Upload) 하는 방법에 있어서, 상기 클라우드 서비스에 업로드 할 파일을 선택하는 단계(S201); 상기 비밀분산 시스템이 비밀분산 기법에 기초하여 상기 선택된 파일을 분할하는 단계(S202); 상기 비밀분산 시스템이 상기 분할된 파일조각을 업로드 하기 위한 복수의 클라우드 서비스를 선택하는 단계(S203); 및 상기 비밀분산 시스템이 상기 선택된 복수의 클라우드 서비스에 접속하여 상기 분할된 파일조각을 상기 복수의 클라우드 서비스에 각각 업로드 하는 단계(S204)로 이루어져 상기 비밀분산 기법은 분할시에 결정된 소정개수의 파일조각에 의해서만 재조합이 가능하도록 상기 선택된 파일을 분할함으로써, 데이터 기밀성을 제공하는 것이다.
그러나 상기한 특허 제1472320호의 "클라우드 환경에 비밀분산 기법을 이용한 데이터 보호 방법"은 샤미르(Shamir)의 비밀 분산(secret sharing) 방법을 사용하고 있는 것으로 이는 일반적인 비밀 분산이라고 하는 비밀 분산(secret sharing) 입니다.
따라서 샤미르(Shamir)의 비밀 분산(secret sharing) 방법은 성능이 매우 낮다고 하는 결점이 있엇다.
일반적으로 데이터 분산 저장을 위한 인코딩 기법은 여러 기술 중 본 발명에서 활용하고자 하는 것은 (t, n) threshold 기반의 인코딩 방법이다. 이는 데이터를 n개의 조각(share)으로 분산하여 저장하고 이 중 최소 t개의 조각을 사용하여 데이터를 복원하는 것이다. (t, n) threshold 방법은 손실을 방지하기 위한 기술과 보안을 높이는 기술로 크게 구분된다. (t, n) threshold 방법은 데이터 분산 저장을 위해 사용되는 대표적인 방법으로 (n-t) 만큼의 데이터 손실을 허용하기 때문에 데이터 저장 혹은 전송의 안정성을 높이기 위해 사용되고 있다. 안정적인 데이터 저장에 목표를 두고 있기 때문에 (t, n) threshold 데이터 인코딩/디코딩 방법은 계산 효율과 저장 공간의 효율을 높이는 것을 목표로 하고 있다. 디스크 RAID, 데이터 전송 방법 등에 활용되는 대표적인 방법으로 리드-솔로몬(Reed-Solomon) 인코딩 방법이 공개 되었다. 리드-솔로몬(Reed-Solomon) 인코딩 방법의 동작 원리를 단순하게 풀어서 설명하면 다음과 같다. t개의 미지수를 갖는 서로 다른 n개의 연립방정식을 새운다. 인코딩하고자하는 데이터(plain data)는 t개의 미지수에 숨기게 되고 인코딩된 데이터(coded share)는 미지수에 데이터를 대입한 결과값이 된다. 이를 선형대수로 표현하면 도 2와 같다.
이와 유사하게 암호화를 위한 (t, n) 비밀 분산(secret sharing) 방법도 발표되었다. 데이터 저장이 아니라 데이터를 효과적으로 분산 암호화 하여 복호화를 어렵게 하는 것을 목표로 한다. 대표적으로 샤미르(Shamir)의 비밀 분산(secret sharing) 방법인데 다항식 보간법(polynomial interpolation)을 사용한다. 분산 데이터 저장과 같이 최소 t개의 조가(share) 들을 모아야 원래 데이터를 복호화할 수 있다. 이에 따라 무작위성(randomness)이 더욱 높은 반면 저장 효율은 떨어진다. 대표적인 (t, n) 분산 방법인 샤미르(Shamir)의 비밀 분산(secret sharing) 방법과 RS 코드를 비교하면 하기 표 1과 같다.
Shamir의 secret sharing과 Read-Solomon code의 비교
Original file size = b Shamir RS Code
Storage
overhead
One CSP b b/t
Total n*b n*(b/t)
Trans-mission
overhead
Upload n*b n*(b/t)
Download t*b t*(b/t)=b
최근 여러 사업자가 제공하는 스토리지 서비스들을 활용하여 분산 스토리지로서 묶어서 사용할 수 있다. 단순히 각 계정을 하나의 포탈에서 연결할 수 있게 하는 것이 아니라 각각의 분산 스토리지 노드로 활용하여 서로 다른 스토리지 들을 묶어서 하나의 스토리지처럼 활용 할 수 있다. 장점으로는 다음과 같은 것이 있다.
● 하나의 서비스에 의존적이지 않다.
● 무료 제공되는 스토리지를 모아서 큰 용량을 확보할 수 있다.
● 분산 저장 기술을 활용하여 성능을 높인다.
● 사용자가 원하는 대로 스토리지 구성을 할 수 있다.
(t, n) threshold 방법은 분산 클라우드 저장에 활용하기에 아주 적합한 인코딩 방법이다. 각 파일을 n개의 조각(share) 단위로 조각내어 서로 다른 클라우드 사업자의 저장공간에 분산 저장하고 이들을 최소 t개 모아야만 원래 파일을 만들 수 있다. 또한 일부 클라우드의 장애 발생에도 n-t의 장애 발생을 허용하고 있어 전체적인 서비스 안정성을 높일 수 있다. 본 발명에서는 샤미르(Shamir)의 방법보다는 스토리지 효율이 월등히 좋은 RS 코드의 보안성 개선을 목표로 한다. 이러한 서비스를 구현하기 위에서는 여러 요구 사항 중 중앙 서버를 사용하지 않아야 하며, 그 이유는 아래와 같다.
● 중앙 서버가 생기면 의존성이 생기게 된다.
● 중앙 서버가 성능 면에서 병목구간이 된다.
● 중앙 서버의 안정성이 전체 분산 스토리지 서비스의 안정성을 결정한다.
RS 코드 보안에 대한 단점으로는 코드북에 해당하는 도 2의 분산행렬(dispersal matrix)을 인코딩/디코딩 측에서 모두 동일하게 고정적으로 사용한다는 점이다. 중앙 서버를 사용하지 않는 환경에서 클라이언트 기반의 응용프로그램을 개발하기 위해서는 RS 코드의 분산행렬(dispersal matrix)을 모든 고객(client)들이 동일하게 사용하도록 하드코딩 해야만 한다. 이는 일부 조각(share) 들만을 확보한 상태에서도 브루트포스(brute force) 방식으로 상대적으로 쉽게 원래 데이터를 찾아 낼 수 있음을 의미한다.
특허문헌 1 : 특허 제1472320호 등록특허공보,
비특허문헌 1 : CLOUD SHREDDER: Removing the Laptop On-road Data Disclo sure Threat in the Cloud Computing Era, 2011 International Joint Conferrence of IEEE TrustCom, Nan Zhang, 2011, 공개,
본 발명은 종래 상기한 실정을 감안하여 종래 데이터 보안기술 들에서 야기되는 여러 가지 결점 및 문제점들을 해결하고자 발명한 것으로서, 그 목적은 사용자별로 서로 다른 분산행렬(dispersal matrix)를 갖도록 사용자 키를 바탕으로 코드북을 생성하여 코드를 개인화함으로써 보다 안전하게 데이터를 보호할 수 있으면서 RS 코드(Reed-Solomon code)를 기반으로 하여 암호화/복호화 속도가 빠른 코드 개인화를 통한 RS 코드의 보안 강화방법을 제공함에 있다.
본 발명의 다른 목적은 사용자별로 서로 다른 분산행렬(dispersal matrix)를 갖도록 사용자 키를 바탕으로 코드북을 생성하여 코드를 개인화함으로써 기존 RS 코드(Reed-Solomon code)의 장점인 저장효율(storage efficiency)을 높이면서 동시에 코드 개인화를 통해 보안 수준도 높일 수 있는 코드 개인화를 통한 RS 코드의 보안 강화방법을 제공하는 데 있다.
본 발명의 또 다른 목적은 수열 A가 임의로 생성되었을 뿐 그 외 과정은 기존 RS 코드(Reed-Solomon code)와 동일하기 때문에 이미 오픈 라이브러리(open library) 등으로 개발된 리드-솔로몬(Reed-Solomon) 최적화 구현 결과를 분산 행렬(dispersal matrix) 생성 부분만 조금 수정하여 사용할 수 있는 코드 개인화를 통한 RS 코드의 보안 강화방법을 제공하는 데 있다.
상기한 목적을 달성하기 위한 본 발명 코드 개인화를 통한 RS 코드의 보안 강화방법은 클라이언트 어플리케이션으로 데이터를 인코딩하는 방법에 있어서, 사용자 단말 또는 게이트웨이 서버에서 사용자 키로 코드를 개인화하는 코드 개인화 단계(S1단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 분산 행렬(dispers al matrix)을 생성하는 분산 행렬 생성단계(S2단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 사용자 데이터를 인코딩하는 인코딩 단계(S3단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 각 파일을 n개의 조각(share) 단위로 조각내는 조각단계(S4단계) 및; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 데이터를 n개의 조각(share)으로 분산하여 저장하는 분산 저장단계(S5단계)로 이루어지는 것을 특징으로 한다.
본 발명은 사용자별로 서로 다른 분산행렬(dispersal matrix)를 갖도록 사용자 키를 바탕으로 코드북을 생성하여 코드를 개인화함으로써 보다 안전하게 데이터를 보호할 수 있으면서 RS 코드(Reed-Solomon code)를 기반으로 하여 암호화/복호화 속도가 빠르고, 기존 RS 코드(Reed-Solomon code)의 장점인 저장효율(storage efficiency)을 높이면서 동시에 코드 개인화를 통해 보안 수준도 높일 수 있을 뿐만 아니라 수열 A가 임의로 생성되었을 뿐 그 외 과정은 기존 RS 코드(Reed-Solomon code)와 동일하기 때문에 이미 오픈 라이브러리(open library) 등으로 개발된 리드-솔로몬(Reed-Solomon) 최적화 구현 결과를 분산 행렬(dispersal matrix) 생성 부분만 조금 수정하여 사용할 수 있는 각별한 장점이 있다.
도 1은 종래 클라우드 환경에 비밀분산 기법을 이용한 데이터 보호 방법의 실행 순서도,
도 2는 선형대수로 표현된 리드-솔로몬(Reed-Solomon) 인코딩 방법을 나타낸 도면,
도 3은 본 발명 코드 개인화를 통한 RS 코드의 보안 강화방법의 인코딩 순서도,
도 4는 본 발명 코드 개인화를 통한 RS 코드의 보안 강화방법의 디코딩 순서도 이다.
이하, 첨부 도면을 참조하여 본 발명 코드 개인화를 통한 RS 코드의 보안 강화방법의 바람직한 실시 예를 상세하게 설명한다.
도 3은 본 발명 코드 개인화를 통한 RS 코드의 보안 강화방법의 인코딩 순서도, 도 4는 본 발명 코드 개인화를 통한 RS 코드의 보안 강화방법의 디코딩 순서도로서, 본 발명 코드 개인화를 통한 RS 코드의 보안 강화방법은 클라이언트 어플리케이션으로 데이터를 인코딩하는 방법에 있어서, 사용자 단말 또는 게이트웨이 서버에서 사용자 키로 코드를 개인화하는 코드 개인화 단계(S1단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 분산 행렬(dispers al matrix)을 생성하는 분산 행렬 생성단계(S2단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 사용자 데이터를 인코딩하는 인코딩 단계(S3단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 각 파일을 n개의 조각(share) 단위로 조각내는 조각단계(S4단계) 및; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 데이터를 n개의 조각(share)으로 분산하여 저장하는 분산 저장단계(S5단계)로 이루어져 있다.
상기 코드 개인화 단계(S1단계)에서 사용자 간 서로 다른 분산 행렬(disper sal matrix)을 갖도록 하는 것이 바람직하다.
상기 코드 개인화 단계(S1단계)에서의 코드 개인화는 사용자 키를 바탕으로 코드북을 생성하여 사용자별로 서로 다른 인코딩 결과를 갖게 한다.
또한, 상기 코드 개인화 단계(S1단계)에서의 코드 개인화 과정은 RS 코드(Reed-Solomon code)에서 사용하는 분산 행렬(dispersal matrix)로 반데몬드 행렬(Vandermonde matrix)을 임의의 수열 A = {a0, a1, … an-1}을 기반으로 생성하는 것이다.
그리고, 상기 반데몬드 행렬(gij; Vandermonde matrix)은 다음의 수학식 1과 같이 정의된다.
Figure 112015090257418-pat00001
여기서 a는 사용자 키를 바탕으로 생성된 수열을 나타내고, i와 j는 각각 i행, j열의 값을 의미한다.
따라서 사용자의 키 값으로 생성된 수열 A = [3, 4, 5]라고 하면, 반데몬드 행렬(gij; Vandermonde matrix)의 1행 2열의 값은 g12 = (a1)2 = 42 = 16으로 된다.
한편 본 발명 코드 개인화를 통한 RS 코드의 보안 강화방법의 디코딩은 사용자 단말 또는 게이트웨이 서버에서 사용자 키로 코드를 개인화하는 코드 개인화 단계(S11단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 분산 행렬(dispersal matrix)을 생성하는 분산 행렬 생성단계(S12단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 사용자 데이터를 디코딩하는 디코딩 단계(S13단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 사용자 데이터를 도출하는 사용자 데이터를 도출단계(S14단계) 및; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 사용자 데이터를 분산하여 저장하는 분산 저장단계(S15단계)로 이루어져 있다.
본 발명에서 제안하는 방법은 RS 코드의 보안 수준을 높이는 것이다. 중앙 서버가 없이 RS 코드의 보안 수준을 높이기 위해서는 사용자별로 서로 다른 분산 행렬(dispersal matrix)을 갖도록 코드 개인화 작업을 수행해야 한다. 코드 개인화는 사용자 키를 바탕으로 코드북을 생성하여 사용자별로 서로 다른 인코딩 결과를 갖게 한다. 디코딩 때 사용자 키가 다르면 다른 코드북을 생성하므로 데이터를 올바르게 디코딩할 수 없어 더욱 안전하게 데이터를 보호할 수 있다.
도 2와 도 3은 본 발명 코드 개인화를 통한 RS 코드의 보안 강화방법의 인코딩/디코딩 과정을 나타낸다. 기존 RS 코드(Reed-Solomon code)와 달리 코드 개인화 과정이 추가되어 있다. 코드 개인화 과정을 통해 사용자 간 서로 다른 분산 행렬(dispersal matrix)을 갖도록 하는 것이다.
코드가 개인화되었기 때문에 공격자는 브루트포스(brute-force) 공격을 하기 위해서 분산 행렬(dispersal matrix)도 모두 체크 해야 하는 부담이 늘었으며 이는 전체 행렬(matrix) 공간에서 순서가 있는 n개[저장할 조각(share)의 수]를 조합하는 경우만큼의 복잡도가 늘어난다. 따라서 기존 RS 코드(Reed-Solomon code)의 장점인 저장효율(storage efficiency)을 높이면서 동시에 코드 개인화를 통해 보안 수준도 높일 수 있다. 단, 사용자가 자신의 비밀 키(key)를 꼭 기억해야 한다.
코드 개인화 과정은 RS 코드(Reed-Solomon code)에서 주로 사용하는 분산 행렬(dispersal matrix)로 반데몬드 행렬(Vandermonde matrix)을 임의의 수열 A = {a0, a1, … an -1}을 기반으로 생성하는 것이다.
상기 반데몬드 행렬(Vandermonde matrix)은 상기한 수학식 1과 같이 정의 된다. 즉, 수열 A의 거듭제곱이 행렬의 열에 해당 해당하게 된다. 보통의 RS 코드(Reed-Solomon code)는 인코딩/디코딩 효율을 수열 A를 연속된 자연수로 사용하고 심지어 조직적인(systematic) RS 코드(Reed-Solomon code)에서는 분산 행령(dispersal matrix)의 일부인 t-by-t 행렬을 단위행렬로 대체 하여 단순 데이터(plain data)를 최대한 유지하는 방법을 사용한다. 본 발명은 수열 A를 사용자 키를 바탕으로 해쉬(hash) 함수[예: 일관된 해쉬(consistent hash) 등]를 사용하여 생성한다. 수열 A가 임의로 생성되었을 뿐 그 외 과정은 기존 RS 코드(Reed-Solomon code)와 동일하기 때문에 성능면에서 차이가 거의 없다. 특히 이미 오픈 라이브러리(open library) 등으로 개발된 리드-솔로몬(Reed-Solomon) 최적화 구현 결과를 분산 행렬(dispersal matrix) 생성 부분만 조금 수정하여 사용할 수 있는 것이 장점이다.
지금까지 본 발명을 바람직한 실시예로서 설명하였으나, 본 발명은 이에 한 정되지 않고 발명의 요지를 이탈하지 않는 범위 내에서 다양하게 변형하여 실시할 수 있음은 물론이다.

Claims (6)

  1. 클라이언트 어플리케이션으로 데이터를 인코딩하는 방법에 있어서, 사용자 단말 또는 게이트웨이 서버에서 사용자 키로 코드를 개인화하는 코드 개인화 단계(S1단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 분산 행렬(dispers al matrix)을 생성하는 분산 행렬 생성단계(S2단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 사용자 데이터를 인코딩하는 인코딩 단계(S3단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 각 파일을 n개의 조각(share) 단위로 조각내는 조각단계(S4단계) 및; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 데이터를 n개의 조각(share)으로 분산하여 저장하는 분산 저장단계(S5단계)로 이루어진 것을 특징으로 하는 코드 개인화를 통한 RS 코드의 보안 강화방법.
  2. 제 1항에 있어서, 상기 코드 개인화 단계(S1단계)에서 사용자 간 서로 다른 분산 행렬(disper sal matrix)을 갖도록 하는 것을 특징으로 하는 코드 개인화를 통한 RS 코드의 보안 강화방법.
  3. 제 1항에 있어서, 상기 코드 개인화 단계(S1단계)에서의 코드 개인화는 사용자 키를 바탕으로 코드북을 생성하여 사용자별로 서로 다른 인코딩 결과를 갖게 하는 것을 특징으로 하는 코드 개인화를 통한 RS 코드의 보안 강화방법.
  4. 제 1항에 있어서, 상기 코드 개인화 단계(S1단계)에서의 코드 개인화 과정은 RS 코드(Reed-Solomon code)에서 사용하는 분산 행렬(dispersal matrix)로 반데몬드 행렬(Vandermonde matrix)을 임의의 수열 A = {a0, a1, … an-1}을 기반으로 생성하는 것을 특징으로 하는 코드 개인화를 통한 RS 코드의 보안 강화방법.
  5. 제 4항에 있어서, 상기 반데몬드 행렬(Vandermonde matrix)은 하기 수학식 1과 같이 정의되는 것을 특징으로 하는 코드 개인화를 통한 RS 코드의 보안 강화방법.
    [수학식 1]
    Figure 112015090257418-pat00002

    여기서 a는 사용자 키를 바탕으로 생성된 수열을 나타내고, i와 j는 각각 i행, j열의 값을 의미한다.
  6. 데이터의 디코딩이 사용자 단말 또는 게이트웨이 서버에서 사용자 키로 코드를 개인화하는 코드 개인화 단계(S11단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 분산 행렬(dispersal matrix)을 생성하는 분산 행렬 생성단계(S12단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 사용자 데이터를 디코딩하는 디코딩 단계(S13단계)와; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 사용자 데이터를 도출하는 사용자 데이터를 도출단계(S14단계) 및; 상기 사용자 단말 또는 게이트웨이 서버에서 클라이언트 어플리케이션으로 사용자 데이터를 분산하여 저장하는 분산 저장단계(S15단계)로 이루어진 것을 특징으로 하는 코드 개인화를 통한 RS 코드의 보안 강화방법.
KR1020150131221A 2015-09-16 2015-09-16 코드 개인화를 통한 rs 코드의 보안 강화방법 KR101726512B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150131221A KR101726512B1 (ko) 2015-09-16 2015-09-16 코드 개인화를 통한 rs 코드의 보안 강화방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150131221A KR101726512B1 (ko) 2015-09-16 2015-09-16 코드 개인화를 통한 rs 코드의 보안 강화방법

Publications (2)

Publication Number Publication Date
KR20170033501A KR20170033501A (ko) 2017-03-27
KR101726512B1 true KR101726512B1 (ko) 2017-04-14

Family

ID=58497038

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150131221A KR101726512B1 (ko) 2015-09-16 2015-09-16 코드 개인화를 통한 rs 코드의 보안 강화방법

Country Status (1)

Country Link
KR (1) KR101726512B1 (ko)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1472320A (en) 1919-04-15 1923-10-30 Chemical Foundation Inc Process for preparing a fodder from straw or other materials characterized by their contents of raw fiber
KR20090044820A (ko) * 2007-11-01 2009-05-07 주식회사 하이닉스반도체 반도체 소자의 제조방법
KR101033475B1 (ko) * 2009-07-03 2011-05-09 동국대학교 경주캠퍼스 산학협력단 효율적인 개인정보 유통경로의 안전관리를 위한 개인 정보 보호 장치 및 방법
KR20130049623A (ko) * 2011-11-04 2013-05-14 주식회사 케이티디에스 데이터 분산 저장 시스템 및 그 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김성현 외 1인, 'WBAN 환경에서 RS 코드를 적용한 신뢰성 보장 기법', 한국정보과학회 2013 한국컴퓨터종합학술대회 논문집, 2013.06, pp.1285-1287

Also Published As

Publication number Publication date
KR20170033501A (ko) 2017-03-27

Similar Documents

Publication Publication Date Title
AU2015243877B2 (en) Secure storage and accelerated transmission of information over communication networks
US9245148B2 (en) Secure storage and accelerated transmission of information over communication networks
US10721062B2 (en) Utilizing error correction for secure secret sharing
US20100268966A1 (en) Efficient and secure data storage utilizing a dispersed data storage system
CN108810063B (zh) 一种多云存储环境下数据的安全分发和修复方法、系统及介质
US11245522B2 (en) Method and system for securely storing data using a secret sharing scheme
KR20170110420A (ko) 정보 보호 장치를 이용한 정보 문서 분산 저장 방법
Varalakshmi et al. Integrity checking for cloud environment using encryption algorithm
Sarkar et al. Enhancing data storage security in cloud computing through steganography
US11108543B2 (en) Method for encrypting data for distributed storage
CN106576039B (zh) 用于至少部分更新使用全或无加密方案加密的数据的方法和系统
US20210067334A1 (en) System and Method for Cryptographic Key Fragments Management
KR101566416B1 (ko) 보안성이 향상된 암·복호화 장치 및 방법
KR101726512B1 (ko) 코드 개인화를 통한 rs 코드의 보안 강화방법
KR20150002821A (ko) 복수의 저장 서비스 제공자들에 분산 및 저장된 파일의 기밀성을 보호하기 위한 방법
Mar et al. Securing cloud data using information dispersal
Choudhury et al. Data encryption in public cloud using multi-phase encryption model
CN112764677A (zh) 一种在云存储中增强数据迁移安全性的方法
Nandhini et al. Time Constrained Data Destruction in Cloud
Wu et al. Secure multi-key file-sharing for cloud storage with erasure coding
US10902144B2 (en) Method and apparatus for securing data
Mishra et al. Fast data retrieval and enhanced data security of cloud storage in luby transform
Bel et al. Inkpack
Bel et al. Inkpack: A Secure, Data-Exposure Resistant Storage System
Malakooti et al. A new orthogonal cryptographic system for database security based on Cellular automata and Hash Algorithm

Legal Events

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