KR20210028853A - 이진데이터의 압축방법 및 그 장치 - Google Patents

이진데이터의 압축방법 및 그 장치 Download PDF

Info

Publication number
KR20210028853A
KR20210028853A KR1020190109915A KR20190109915A KR20210028853A KR 20210028853 A KR20210028853 A KR 20210028853A KR 1020190109915 A KR1020190109915 A KR 1020190109915A KR 20190109915 A KR20190109915 A KR 20190109915A KR 20210028853 A KR20210028853 A KR 20210028853A
Authority
KR
South Korea
Prior art keywords
crc
data
estimated
true
bits
Prior art date
Application number
KR1020190109915A
Other languages
English (en)
Inventor
김정훈
Original Assignee
김정훈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김정훈 filed Critical 김정훈
Priority to KR1020190109915A priority Critical patent/KR20210028853A/ko
Publication of KR20210028853A publication Critical patent/KR20210028853A/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/55Compression Theory, e.g. compression of random number, repeated compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3077Sorting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3091Data deduplication
    • H03M7/3093Data deduplication using fixed length segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

<압축과정>
먼저, 원본데이터가 16바이트라고 하면( 16바이트씩 원본 압축대상 데이터를 끊어 있었다고 가정), [1] 이 원본에 대한 CRC (Cyclic redundancy code) 값을 계산한다. 이를 진정 CRC 코드라고 하자. 한편 CRC알고리즘은 비트변조를 확인할수 있는 알고리즘으로서 본 발명에서 CRC알고리즘을 썼으나, 다양한 비트변조 확인알고리즘으로 대체할수 있음은 물론이다.
[2] 다음으로 원본데이터를 m 가지의 미리 준비된 키 가운데 사용자가 임의로 설정한 키로 특정 암호화 함수로 암호화를 수행한다. m 가지의 이 키의 종류가 바로 한번의 압축과정을 통해서 전달할수 있는 비트의 수가 된다. 예를들어 2가지이면, 0과 1 이렇게 1비트를 압축할수 있는 것이며, 4가지면 00,01,10,11 2비트를 압축할수 있게 되는것이다. 본 사례에서는 m=2 , 즉 0, 1 두가지 경우를 압축할수 있는 실시례를 보인다.
암호 전후의 크기 변화가 없는 암호화 알고리즘을 적용하여 암호화를 수행한다. 암호화 알고리즘은 매우 다양할 수 있다.
[3] 이렇게 암호화된 데이터를 상기 [1]에서 계산한 진정CRC 를 이용하여 데이터 변조를 수행한다.
예를들어, CRC-8 의경우 "10110111" 이 계산되었다면, 각 비트 값에 따라 "1"인 경우, 암호화데이터의 특정 바이트를 모두 비트반전 시키는 변조를 하고, "0"인 경우 그대로 두는 형태로 변조를 실시할수 있다. 이러한 변조방법은 무수하게 많을수 있지만, 궁극적으로 변조후에 CRC 값에 따라 다시 원래대로 돌릴수 있는 변조방법이면 무엇이든지 가능하다.
본 실시례에서는 CRC-8 이 진정CRC라고 한다고 했을때 8비트의 CRC-8을 참조로 해서, 암호화데이터의 첫 8바이트를 상기 규칙에 따라 변조하는 방식을 적용하였다.
상기의 과정을 거쳐서 진정key로 암호화 시키고 진정CRC로 암호화데이터의 특정영역을 변조한 데이터가 최종 압축데이터가 된다.
실질 압축데이터는 사용자가 임의로 설정할 수 있는 m가지의 키가 나타낼수 있는 이진데이터열이다.
<압축해제 과정>
압축해제 과정은, CRC-8/16/32에 따라 다르지만 본 실시례에서 CRC-8을 적용하여 진정 CRC를 만들었으므로, 8비트의 256종의 추정 CRC를 가정할수 있고,
각 256종의 CRC코드를 각각 모두 테스트를 수행하여 압축해제한다.
<1> 먼저, n번째의 특정 CRC 코드를 추정CRC로 하여(CRC-n) 압축해제를 수행해보면,
상기 최종압축데이터에서 상기 압축과정 [3]의 변조를 추정 CRC비트값에 따라 역으로 수행하여, 아래와 같이 추정 복원을 한다.
<2> 다음으로 M 가지의 모든 암호화 key값에 대하여(m번째 key를 key-m 이라고 하자) 위의 추정복원데이터를 암호해제를 수행한 데이터를 추정원본 데이터라고 하고 그 각각의 그 암호해제 데이터에 대한 추정CRC 값을 계산한다.
그리고 그 추정원본에 대한 CRC 코드와 n번째 추정 CRC코드 값이 같은지를 확인한다.
한편 전체 테스트의 수는 CRC-8의 경우 256종의 CRC 와 m 종의 key이므로 256 * m 이 된다 CRC-N 의 경우 2^N*m 개의 테스트가 필요하게 된다.
다만 CRC-8의 경우만으로도 정확히 압축해제되므로 큰 의미는 없다.
상기 <2>과정에서 추정원본에 대한 CRC코드와 추정CRC코드(CRC-n) 이 동일하면, 상기 추정원본 데이터를 다시 추정 key 로( key m )으로 암호화를 한 다음,
추정원본 CRC코드로 변조규칙에 따라 변조를 수행하고 이 변조된 추정암호화 데이터가 진정 암호화데이터와 동일한지를 마지막으로 비교하여 같다면,
추정CRC코드(CRC-n) 및 추정 키(key-m)이 압축당시의 진정 key 및 진정 CRC코드가 된다.

Description

이진데이터의 압축방법 및 그 장치{BINARY DATA COMPRESSION METHOD AND APPARATUS THEREOF}
정보이론
발명을 실시하기 위한 구체적 내용에 상술
발명을 실시하기 위한 구체적 내용에 상술
발명을 실시하기 위한 구체적 내용에 상술
발명을 실시하기 위한 구체적 내용에 상술
본 발명은 데이터압축방법에 관한 발명으로서,
구체적으로는,
아래 그림과 같다.
Figure pat00001
<압축과정>
압축대상이 되는 전체 데이터가 있다고 할때(이 데이터는 다른 알고리즘으로 압축되어도 무방함) 이 데이터를 특정한 바이트 길이로 분할하고 각 분할원본을 대상으로 분할원본의 크기를 그대로 유지하면서도 비트를 추가로 더 담아서 압축하는 것이 기본원리이다. 그런데 적어도 진정 CRC가 CN 비트라면, 각 비트별로 분할데이터의 각 바이트를 변조하는 형태라면 분할데이터의 크기는 CN 바이트 이상이어야 안정적으로 압축 및 압축해제가 가능하다. 상기와 같이 변조방법에 따라 최소한 분할데이터의 크기의 기준은 존재할수 있다.
본 실시례에서는 진정 CRC 크기가 8비트이고, 분할 원본데이터는 16바이트 단위로 한 예시를 보인다.
먼저, 분할 원본데이터가 16바이트라고 하면( 16바이트씩 원본 압축대상 데이터를 끊어 있었다고 가정), [1] 이 원본에 대한 CRC (Cyclic redundancy code) 값을 계산한다. 이를 진정 CRC 코드라고 하자. 한편 CRC알고리즘은 비트변조를 확인할수 있는 알고리즘으로서 본 발명에서 CRC알고리즘을 썼으나, 다양한 비트변조 확인알고리즘으로 대체할수 있음은 물론이다.
[2] 다음으로 원본데이터를 m 가지의 미리 준비된 키 가운데 사용자가 임의로 설정한 키로 특정 암호화 함수로 암호화를 수행한다. m 가지의 이 키의 종류가 바로 한번의 압축과정을 통해서 1개의 분할원본을 이용해서 전달할수 있는 비트의 수가 된다. 예를들어 2가지이면, 0과 1 이렇게 1비트를 압축할수 있는 것이며, 4가지면 00,01,10,11 2비트를 압축할수 있게 되는것이다. 본 사례에서는 m=2 , 즉 0, 1 두가지 경우를 압축할수 있는 실시례를 보인다.
암호 전후의 크기 변화가 없는 암호화 알고리즘을 적용하여 암호화를 수행한다. 암호화 알고리즘은 매우 다양할 수 있다.
[3] 이렇게 암호화된 데이터를 상기 [1]에서 계산한 진정CRC 를 이용하여 데이터 변조를 수행한다.
예를들어, CRC-8 의경우 "10110111" 이 계산되었다면, 각 비트 값에 따라 "1"인 경우, 암호화데이터의 특정 바이트를 모두 비트반전 시키는 변조를 하고, "0"인 경우 그대로 두는 형태로 변조를 실시할수 있다. 이러한 변조방법은 무수하게 많을수 있지만, 궁극적으로 변조후에 CRC 값에 따라 다시 원래대로 돌릴수 있는 변조방법이면 무엇이든지 가능하며, 변조 위치 또한 본 실시례에서는 첫바이트부터 암호화 데이터의 CRC비트의 길이 번째 바이트를 변조영역으로 잡았으나, 암호화 데이터내에 있다면 어떠한 변조영역을 임의로 설정하여도 무방하다. 단 압축측과 압축해제측이 이 약속을 서로 알고있어야 함은 물론이다.
본 실시례에서는 CRC-8 이 진정CRC라고 한다고 했을때 8비트의 CRC-8을 참조로 해서, 암호화데이터의 첫 8바이트를 상기 규칙에 따라 변조하는 방식을 적용하였다.
Figure pat00002
상기의 과정을 거쳐서 진정key로 암호화 시키고 진정CRC로 암호화데이터의 특정영역을 변조한 데이터가 최종 압축데이터가 된다.
실질 압축데이터는 사용자가 임의로 설정할 수 있는 m가지의 키가 나타낼수 있는 이진데이터열이다.
<압축해제 과정>
압축해제 과정은, CRC-8/16/32 또는 임의의 CRC 비트수에 따라 다르지만 본 실시례에서 CRC-8을 적용하여 진정 CRC를 만들었으므로, 8비트의 256종의 추정 CRC를 가정할수 있고,
각 256종의 CRC코드를 각각 모두 테스트를 수행하여 압축해제한다.
만약 진정 CRC 코드가 CN 비트였다면, 총 2 ^ CN 가지수의 추정 CRC가 나오게 된다.
<1> 먼저, 2^ CN 가지수의 추정 CRC 에 있어서 n번째의 특정 CRC 코드를 추정CRC로 하여(CRC-n) 압축해제를 수행해보면,
상기 최종압축데이터에서 상기 압축과정 [3]의 변조를 추정 CRC비트값에 따라 역으로 수행하여, 아래와 같이 추정 복원을 한다.
Figure pat00003
<2> 다음으로 M 가지의 모든 암호화 key값에 대하여(m번째 key를 key-m 이라고 하자) 위의 추정복원데이터를 암호해제를 수행한 데이터를 추정원본 데이터라고 하고 그 각각의 그 암호해제 데이터에 대한 추정CRC 값을 계산한다.이때 추정 CRC의 비트수는 진정 CRC의 비트수와 동일하게 한다.
그리고 그 추정원본에 대한 CRC 코드와 n번째 추정 CRC코드 값이 같은지를 확인한다.
한편 전체 테스트의 수는 CRC-8의 경우 256종의 CRC 와 m 종의 key이므로 256 * m 이 된다 CRC-N 의 경우 2^N*m 개의 테스트가 필요하게 된다.
다만 CRC-8의 경우만으로도 정확히 압축해제되므로 큰 의미는 없다.
Figure pat00004
상기 <2>과정에서 추정원본에 대한 CRC코드와 추정CRC코드(CRC-n) 이 동일하면, 상기 추정원본 데이터를 다시 추정 key 로( key m )으로 암호화를 한 다음,
추정원본 CRC코드로 변조규칙에 따라 변조를 수행하고 이 변조된 추정암호화 데이터가 진정 암호화데이터와 동일한지를 마지막으로 비교하여 같다면,
Figure pat00005
추정CRC코드(CRC-n) 및 추정 키(key-m)이 압축당시의 진정 key 및 진정 CRC코드가 된다.
진정 key가 산출되면, 진정키가 M개의 키중에 몇번째 키였는지에 따라 전달하고자했던 비트값이 압축해제 된다.
한편 진정 CRC의 비트길이 CN 와 분할 원본의 바이트수 크기 DBN 에 따라 연속하여 압축비트를 몇 비트 까지 저장할 수 있는지가 결정되는데, 예를들어, 10000비트를 압축하고자 했는데 CRC = 1 이고 DBN = 3 이라면, 8000 비트만큼만 연속하여 저장할수 있을수 있다면. 그리고 나머지 2000비트는 별도로 새로운 블럭으로 구분하여 압축이 필요하므로,
CN, DBN에 따라 연속하여 b 비트만큼을 압축할 수 있다면, 압축 블럭헤드에 CN, DBN, b 에 대한 정보를 부가할수 있다.
Figure pat00006
<중첩압축 알고리즘>
한편 상기에서 설명한 압축은 하나의 분할원본에 있어서 1회에 그치지 않고 중첩하여 압축을 수행할수있다. 하기는 3차에 걸쳐 중첩하여 적용한 사례이다.
압축해제시에는 3차 압축된 데이터부터 차례대로 각 압축과정의 반대로진행하면 되며, 압축 및 압축해제측에서 몇차에 걸친 중첩이 있었는지만 알고있으면 된다.
Figure pat00007
또한 한단계 더 나아가서,
예를들어 키가 2가지 종류였다면, 0, 1을 추가로 전송할 수 있다는 이야기가 되므로, 1비트의 압축효과를 이용하면 하기와 같이 부가데이터를 1비트를 부가하여도 전체적인 비트의 손해는 없다.
이제 임의의 이진데이터가 있다고 하면, 하기와 같이
001010111101011100001111101...
01을 처음만날때마다 데이터를 분할하면 아래와 같다.
001/01/01/11101/01/1100001/111101...
이제 이 데이터를 각각을 원본 바이너리 클러스터라고 하고, 최하위 1비트를 제거하여 압축바이너리클러스터를 만든다.하기에서 보듯 압축바이너리 클러스터는 모두 0으로 끝나게 된다. 이렇게 하고, 뒤에다 일반데이터를 순차적으로붙여서 모두 K비트로 일정하게 만들어서 결합하면, n개의 압축바이너리 클러스터에 대하여 nK 비트의 압축데이터가 생성되게 된다.
이러한 방식에서는 상기 발명에서 이야기한 CRC변조, key 로 인한 1비트 압축의 효과는 부가데이터로 인해 상쇄되고, 원본바이너리 클러스터를 압축바이너리 클러스터로 만드는 과정의 1비트의 이익이 생기게 된다.
Figure pat00008

Claims (1)

  1. 국내우선권 및 국제우선권주장출원의 선출원으로서 별도의 청구범위를 기재하지 아니함.
KR1020190109915A 2019-09-05 2019-09-05 이진데이터의 압축방법 및 그 장치 KR20210028853A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190109915A KR20210028853A (ko) 2019-09-05 2019-09-05 이진데이터의 압축방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190109915A KR20210028853A (ko) 2019-09-05 2019-09-05 이진데이터의 압축방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20210028853A true KR20210028853A (ko) 2021-03-15

Family

ID=75134669

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190109915A KR20210028853A (ko) 2019-09-05 2019-09-05 이진데이터의 압축방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR20210028853A (ko)

Similar Documents

Publication Publication Date Title
US9710333B2 (en) Segment deduplication system with encryption and compression of segments
US8705742B2 (en) Data compression apparatus and data decompression apparatus
US6122379A (en) Method and apparatus for performing simultaneous data compression and encryption
US8762348B2 (en) Segment deduplication system with compression of segments
US10785545B2 (en) Systems and methods for simultaneous compression and encryption
US9998144B2 (en) Generating a code alphabet of symbols to generate codewords for words used with a program
US20090115646A1 (en) Data processing system and method
US11329666B2 (en) Method and system for compressing and/or encrypting data files
JP2005217842A (ja) データ圧縮方法、データ復元方法及びそのプログラム
US20110069833A1 (en) Efficient near-duplicate data identification and ordering via attribute weighting and learning
CN102804800A (zh) 带有加密段的段去除重复系统
CN104811209A (zh) 一种抗最长匹配检测的压缩文件数据嵌入方法及装置
US20190036543A1 (en) A Method of Protecting Data Using Compression Algorithms
JP2023529948A (ja) データの圧縮と暗号化の為のシステム及び方法
US10230391B2 (en) Compression and/or encryption of a file
KR20210028853A (ko) 이진데이터의 압축방법 및 그 장치
KR20210028357A (ko) 이진데이터의 압축방법 및 그 장치
KR101048661B1 (ko) 데이터에 대한 압축 및 암호화 연산을 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
Dhanawe et al. Hiding file on Android Mobile and Sending APK file through whats app using Steganography and Compression techniques
CHETAN et al. Performance Analysis of Data Compression Using Lossless Run Length Encoding
JP2011041102A (ja) 圧縮暗号化装置、復号伸長装置、それらの方法及びプログラム
US20180041334A1 (en) Improved compression and/or encryption of a file
JPH10294669A (ja) データ圧縮を伴う暗号通信方法
EP0810737A2 (en) Method and apparatus for performing simultaneous data compression and encryption
KR20210042438A (ko) 이진데이터의 압축방법 및 그 장치