KR20010044804A - 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법 - Google Patents

그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법 Download PDF

Info

Publication number
KR20010044804A
KR20010044804A KR1020010015934A KR20010015934A KR20010044804A KR 20010044804 A KR20010044804 A KR 20010044804A KR 1020010015934 A KR1020010015934 A KR 1020010015934A KR 20010015934 A KR20010015934 A KR 20010015934A KR 20010044804 A KR20010044804 A KR 20010044804A
Authority
KR
South Korea
Prior art keywords
data
file
storing
secret data
secret
Prior art date
Application number
KR1020010015934A
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 KR1020010015934A priority Critical patent/KR20010044804A/ko
Publication of KR20010044804A publication Critical patent/KR20010044804A/ko

Links

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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/0092Payload characteristic determination in a watermarking scheme, e.g. number of bits to be embedded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0083Image watermarking whereby only watermarked image required at decoder, e.g. source-based, blind, oblivious

Landscapes

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

Abstract

본 발명은 그래픽 파일내에 데이터를 숨겨두고 이를 복원할 수 있도록 한 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법에 관한 것이다. 일반적으로 다른 사람이 알아 볼 수 없도록 데이터를 보관하는 방법은 암호화 방법이나, 기타 비밀번호를 이용한 접근 금지 방법 등이 있으나, 이러한 데이터 보관 방법은 모두 비밀 데이터 파일이 존재하는 것 자체를 숨길 수 는 없었고, 이로 인해 해킹 또는 제3자에게 노출될 우려가 있었다. 본 발명은 사용자가 비밀스럽게 관리를 원하는 비밀 데이터를 BMP, JPG 등의 그래픽 파일 내에 그 파일의 그림손상을 최소화하여 암호화된 상태로 저장하고, 그 반대로 숨겨진 데이터를 다시 원래대로 꺼내 보여줄 수 있도록 함에 특징이 있다. 저장시 압축과 암호화를 겸하고, 복원시 압축해제 및 암호 해독에 의한 복원 과정을 거쳐 비밀 데이터를 복원한다. 그래픽 파일이 BMP파일인 경우 BMP 그래픽 파일의 내부적으로 사용하지 않는(실재 Pixel 데이터에 영향을 주지 않는)공간에 비밀 데이터를 나누어 저장하고, JPG 그래픽 파일 인 경우 JPG의 기본적 압축/해제 과정에서 허프만 엔코딩(Huffman encoding) 직전의 8X8 이미지 정보중 제일 마지막 한 비트 (혹은 이미지 손상을 최소화 하는 다른 위치)에 원하는 비밀 데이터를 나누어 저장하는 방법으로 비밀 데이터를 그래픽 파일에 숨겨서 저장하고 이를 복원하도록 함에 특징이 있다.

Description

그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법{A method saving and restoring secret data into/from graphic files}
본 발명은 암호화 프로그램에 관한 것으로, 특히 사용자가 입력한 데이터를 BMP, JPG 등의 그래픽 파일 내에 기존 그림의 손상을 최소화하여 암호화된 상태로 저장하고, 그 반대로 숨겨진 데이터를 다시 원래대로 꺼내 보여주기 위한 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법에 관한 것이다.
일반적으로 컴퓨터 사용이 보편화되면서 각종 자료들을 컴퓨터의 데이터로 보관하고 있는데, 다른 사람에게 공개하고 싶지 않는 데이터는 비밀번호 등을 이용한 접근방지 또는 통상의 암호화 방법에 의해 암호화된 파일로 저장하고 있다.
그런데 이러한 파일들은 저장된 데이터 목록 중에는 파일 목록이 나타나고 다만 비밀번호와 암호 해독 프로그램이 없으면 그 파일을 읽지 못할 뿐이다. 그렇지만 비밀번호 해킹 프로그램 및 암호 해독 프로그램들이 공공연히 인터넷상에 나도는 요즈음에는 그 암호화된 파일이 쉽게 해독될 수 있다는 문제점이 있다.
또한 인터넷이 일반화되면서 호기심에 의한 해킹 사고도 빈번히 일어나고 있으며, 특히 이-메일에 대해서는 다른 사람에게 노출될 우려가 매우 높고, 실수로 다른 사람에게 이-메일을 보내는 경우도 있다.
그러므로 비밀 데이터로서 보관 또는 누군가에게 전송하기 위한 종래의 방법은 기존에 알려진 암호화 방법을 이용하고 있으나, 이는 암호화된 파일 존재 자체를 숨길 수는 없고 그러한 암호화된 파일이 더욱 해킹자에게 호기심을 자극하는 문제점이 있었다.
따라서 본 발명은 상기한 문제점을 감안하여 그래픽 파일내에 데이터를 숨겨두고 이를 복원할 수 있도록 한 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법을 제공하기 위한 것이다.
본 발명은 사용자가 비밀스럽게 관리를 원하는 데이터(이하, '비밀 데이터'라 칭함)를 BMP, JPG 등의 그래픽 파일 내에 그 파일의 그림손상을 최소화하여 암호화된 상태로 저장하고, 그 반대로 숨겨진 데이터를 다시 원래대로 꺼내 보여줄 수 있도록 함에 특징이 있다.
BMP 그래픽 파일은 내부적으로 사용하지 않는(실재 Pixel 데이터에 영향을 주지않는)공간이 많다. 그 의미 없는 국소 공간에 데이터를 저장한다. 필요시 압축하여 데이터를 저장한다. 픽셀의 해당 RGB 값 각각이 1바이트 이상이라면 그 각각의 LSB 1비트를 변경해도 원 이미지에 미치는 손상은 크지 않다. 256 컬러 이하의 이미지는 매 2, 4, 8 픽셀단위로 격자 형태로 주기적으로 검정색 등으로 이미지 손상을 주면 그 결과는 시각적으로 불투명 유리 효과와 유사하다.
또한 JPG의 기본적 압축/해제 과정에서 휴먼 엔코딩(Huffman encoding) 이전에 임의의 데이터를 삽입하면 나중에 휴먼 디코딩(Huffman decoding)후 동일한 데이터를 얻을 수 있다. 휴먼 엔코딩 직전의 8X8 이미지 정보중 제일 마지막 한 비트에 원하는 데이터를 나누어 저장한다.
그러므로 본 발명은 비밀 데이터 파일의 존재 자체를 다른 사람이 알수 없고, 다른 사람이 볼 때 단순히 BMP, JPG 또는 기타 형식의 그래픽 파일만 존재하고, 그 그래픽 파일을 단순히 읽는 경우 해당 파일의 그래픽이 보여지므로 다른 사람에게 비밀 데이터의 노출 우려가 없다.
도 1은 본 발명에 의한 그림에 비밀 데이터를 저장하는 방법 흐름도
도 2는 본 발명에 의한 그림에서 비밀 데이터를 복원하는 방법 흐름도
도 3은 본 발명에 의해 BMP 그래픽 파일에 데이터를 저장하는 방법 흐름도
도 4는 본 발명에 의해 BMP 그래픽 파일에서 숨겨진 비밀 데이터를 복원하는 방법을 보인 흐름도
도 5는 본 발명에 의한 JPG 그래픽 파일에 비밀 데이터를 저장하는 방법을 보인 흐름도
도 6은 본 발명에 의한 JPG 그래픽 파일에 숨겨진 비밀 데이터를 복원하는 방법을 보인 흐름도
도 7은 본 발명에 의한 무손실 포맷을 이용한 일반적 데이터 압축 저장 방법을 보인 흐름도
도 8은 본 발명에 의한 무손실 포맷을 이용한 일반적 데이터 복원방법을 보인 흐름도
도 9는 본 발명에 적용되는 관용키 알고리즘을 이용한 암호화 흐름도
도 10은 본 발명에 적용되는 관용키 알고리즘을 이용한 복호화 방법 흐름도
* 도면의 주요부분에 대한 부호의 설명 *
DS : 비밀 데이터 DE : 암호화된 비밀 데이터
DF : 파일 저장용 데이터 HS : 시드의 해쉬(SHA) 값
SS : 비밀의 그림 특수 스트링 MS : 데이터 복원용 메모리 영역
DI : 이미지 데이터 DU : 사용자 데이터
SK : 암호화 키용 시드 값 KE : 암호화키 값
DO : 원본 데이터
이하, 본 발명의 실시 예를 첨부된 도면을 참조해서 상세히 설명하면 다음과 같다.
도 1은 본 발명에 의한 그림에 비밀 데이터를 저장하는 방법 흐름도이다. 이에 도시된 바와 같이, 사용자가 그림 파일에 숨겨 저장하고자 하는 비밀 데이터(DS)를 암호화하여 암호화된 비밀데이터(DE)로 만드는 제1과정(S100)과; 비밀의 그림 특수 스트링(SS)과 시드(Seed)의 해쉬(HASH)(SHA) 값(HS) 및 상기 암호화된 비밀데이터(DE)를 순서대로 파일 저장용 데이터(DF)로서 저장하는 제2과정(S200)과; 대상 그래픽 파일의 포맷에 맞게 그림의 손상을 최소화하도록 일정한 규칙 또는 그래픽 파일의 사용하지 않는 빈 공간에 상기 파일 저장용 데이터(DF)의 내용을 그래픽 파일의 공간에 나누어 저장하는 제3과정(S300);을 수행하여 비밀 데이터를 그림 파일 속에 숨겨서 저장한다.
도 2는 본 발명에 의한 그림에서 비밀 데이터를 복원하는 방법 흐름도이다.
이에 도시된 바와 같이, 그래픽 파일의 종류를 파악하는 제4과정(S400)과; 그래픽 파일의 종류에 맞게 비밀 데이터가 저장된 부분의 모든 데이터를 읽어서 메모리(MS)에 저장하는 제5과정(S500)과; 상기 데이터 메모리(MS)의 첫 부분에 특별한 문자열이 있는가를 판단하는 제6과정(S600)과; 첫 부분에 특별한 문자열이 있으면, 비밀의 데이터가 포함된 그림으로 판단하고 그 비밀의 그림에서 암호화된 데이터를 추출하는 제7과정(S700)과; 암호화된 데이터를 추출하여 복호화 하고 복호화에 성공되었는지를 판단하여, 복호화에 성공하면 비밀데이터를 출력하는 제8과정(S800)을 수행하도록 이루어진다.
그림 파일에 숨겨서 저장하고자 하는 비밀 데이터(DS)는 암호화 과정(S100)을 거쳐 그림 파일에 숨겨서 저장하고 그 암호화된 비밀 데이터는 복호화 과정(S800)을 거쳐 원래의 비밀 데이터(DS)로서 복원하여 출력하게 된다.
사용자가 그림 파일 속에 숨기고자 하는 비밀 데이터(DS)를 암호화하는 제1과정(S100)은, 상기 그래픽 파일에 저장되는 비밀 데이터(DS)는 그 내용의 보안을 위해 암호화하는 과정으로서 암호화 방법은 관용키 알고리즘을 사용하고 암호화와 복호화의 키 값이 서로 동일하다. 본 발명에서는 일 실시 예로서 관용키 알고리즘을 이용한 방법에 대해서 비밀데이터 삽입 및 추출 방법을 설명한 이후에 도 9 및 도 10을 참조해서 설명한다.
제2과정(S200)은, 비밀의 그림임을 나타내는 특수 스트링(SS)과, 암호화 해독을 위한 시드(Seed)의 해쉬(SHA) 값(HS) 및 암호화된 비밀 데이터(DE)를 순서대로 파일 저장용 데이터(DF)로서 저장한다. 이는 그림 파일을 읽어서 복원할 때 그림 파일 속에 비밀데이터가 숨겨져 있는지의 여부를 알 수 있도록 하는 비밀의 그림 특수 스트링(SS)을 먼저 저장하고 암호 해독을 위한 시드의 해쉬 값(HS)과 암호화된 비밀데이터(DE)를 비밀데이터 파일 저장용 데이터(DF)로서 저장한다.
이렇게 그림 파일 속에 숨겨서 저장하기 위한 비밀 데이터 파일을 만든 후, 그림 파일 속에 상기한 비밀 데이터 파일 저장용 데이터(DF)를 그림 파일의 형식에 따라 또는 저장 방식에 따라 그림 파일 속에 숨겨서 저장하는 제3과정(S300)을 수행한다. 압축 또는 암호화 과정을 거친 경우 또는 압축이나 암호화 과정이 없는 경우에도 적어도 비밀 그림임을 나타내는 특수 스트링(SS)을 비밀 데이터(DS)에 포함시켜 그래픽 파일 속에 삽입하는데, 이하의 설명에서는 편의상 상기 비밀 데이터 파일 저장용 데이터(DF)를 사용자 데이터(DU)로 표현한다.
제3과정(S300)은, 그림 파일의 특성에 따라 BMP파일인 경우 비밀데이터를 나누어 저장하는 공간을 미리 할당하여 정해두거나, JPG 파일인 경우 그림 파일과 함께 직접 DCT처리를 하거나 또는 일반 그림 압축 방법을 이용하거나 할 수 있다.
BMP 그래픽 파일은 내부적으로 사용하지 않는(실재 Pixel 데이터에 영향을 주지 않는)공간이 많다. 그 의미 없는 국소 공간에 데이터를 저장한다. 필요시 압축하여 데이터를 저장한다.
픽셀의 해당 RGB 값 각각이 1바이트 이상이라면 그 각각의 LSB 1비트를 변경해도 원 이미지에 미치는 손상은 크지 않다. 256 컬러 이하의 이미지는 매 2, 4, 8 픽셀단위로 격자 형태로 주기적으로 검정색 등으로 이미지 손상을 주면 그 결과는 시각적으로 불투명 유리 효과와 유사하다.
도 3은 본 발명에 의해 BMP 그래픽 파일에 데이터를 저장하는 방법 흐름도이다. 먼저, BMP 파일을 열고 그 정보를 읽어서 이미지 데이터(DI)를 저장하고 그 BMP 파일의 이미지 종류를 판단하는 제1단계(S301)와; 상기 BMP 파일이 흑백(Monochrome ; 2컬러)이미지 인 경우, 그림에 숨기고자하는 사용자 데이터(DU)를 상기 BMP 파일 이미지 데이터(DI)의 매 2번째 비트 공간에 나누어 저장하는 제2단계(S302)와; 상기 BMP파일이 16컬러 또는 2^24컬러인 경우, BMP 파일 이미지 데이터(DI)의 매 7번째 비트 공간에 사용자 데이터(DU)를 나누어 저장하는 제3단계(S303)와; 상기 BMP파일이 256컬러인 경우, BMP파일 이미지 데이터(DI)의 매 16번째 비트 공간에 사용자 데이터(DU)를 나누어 저장하는 제4단계(S304)와; 상기 BMP 파일이 2^16컬러 이미지인 경우, 상기 BMP 파일 이미지 데이터(DI)의 매 두 번째 바이트의 첫(MSB) 비트에 사용자 데이터(DU)를 저장하는 제5단계(S305)와; 상기 BMP 파일이 2^32컬러 이미지인 경우, 상기 BMP 파일 이미지 데이터(DI)의 매 4바이트마다 첫 1바이트 전체에 사용자 데이터(DU)를 저장하는 제6단계(S306)와; 상기 제2단계(S302) - 제6단계(S306)중 어느 한 단계를 거쳐 이미지 데이터(DI)에 사용자 데이터(DU)를 삽입하여 저장한 변경된 이미지 데이터(DI)를 BMP 그래픽 파일로서 저장하는 제7단계(S307)를 수행하여 BMP 파일 내에 사용자 데이터를 숨겨서 저장한다.
BMP 모노크롬(BMP Monochrome)은 1비트가 1픽셀을 나타내는 모드로서 매 두 번째(혹은 4번째 등) 비트에 데이터를 저장한다. 원본 이미지 손상이 심하고 마치 격자 마스크를 씌운 효과가 나타나거나 원본 이미지를 알아보기 힘들 수도 있다.
BMP 16컬러 및 2^24 컬러인 경우, 매 8번째 비트마다 값을 저장하는데, 16컬러 모드에서는 4비트가 한 픽셀을 표시하므로, 결과적으로 두 픽셀 당 한번씩 이미지 손실이 생기며 결과적으로 이미지 손실이 비교적 심하다.
2^24컬러 모드에서는 3바이트가 한 픽셀을 표시하고, 각 1바이트가 R,G,B컬러 값을 가진다. 따라서 각 RGB 값에는 ±1 차이밖에 나지 않으므로 원본 이미지 손실이 매우 적다.
BMP 256 컬러인 경우, 8비트가 1픽셀을 나타내는 모드로서 매 두 바이트마다 마지막 1비트에 데이터를 저장한다. 결과적으로 두 픽셀당 하나씩 원본 이미지 색번호 값이 ±1 만큼 변하므로 원본 이미지 손상이 비교적 적다.
BMP 2^16 컬러인 경우 2바이트로 1픽셀을 나타내는데 2바이트의 최상위 비트는 사용하지 않고 나머지 15비트를 RGB컬러 값을 5비트씩 사용한다. 그러므로 매 2바이트마다 최상위 비트에 데이터를 저장한다. 이는 원본 이미지 손실이 없으며 사용하지 않는 공간에 데이터를 저장한다.
BMP 2^32컬러인 경우, 4바이트로 1픽셀을 나타내는데, 첫 1바이트는 사용하지 않고 나머지 3바이트가 각각 R,G,B값을 나타낸다. 그러므로 매 4바이트마다 첫 1바이트 전체에 데이터를 저장한다. 이는 이미지 손실이 없으며 사용하지 않은 공간에 데이터를 저장한다.
이와 같이 BMP 파일에 비밀데이터를 숨겨서 저장하는 경우 일부(예; 모노크롬, 16컬러) BMP 파일은 그 손상이 심하기 때문에 비밀 데이터를 숨겨서 사용하기에는 적합하지 않으나, 256컬러는 이미지 손실이 미약하고, 2^16컬러, 2^32컬러 등에서는 빈 공간을 활용하기 때문에 이미지 손상이 없으므로 비밀 데이터를 숨겨서 저장하는데에 적합하다.
도 4는 본 발명에 의해 BMP 그래픽 파일에서 숨겨진 비밀 데이터를 복원하는 방법을 보인 흐름도이다.
상기 저장방법에 의해 BMP 파일의 컬러 특성에 따라 비밀 데이터가 저장된 위치가 다르므로 저장방법에 규정된 위치의 데이터를 읽어서 이를 비밀 데이터로서 복원하면 된다.
이는 도 2의 암호화된 데이터 추출 과정인 제7과정(S700)에서 수행한다.
비밀 데이터가 숨겨져 있는 BMP 파일을 열고 정보를 읽어서 이미지 데이터(DI)를 저장하고(S701), BMP파일의 컬러 특성을 판단하여 모노크롬인 경우 상기 이미지 데이터(DI)의 매 두 번째 비트 값을 비밀데이터 저장용 공간(DS)에 순서대로 저장하며(S702), 16컬러 또는 2^24컬러인 경우 상기 이미지 데이터(DI)의 매 7번째 비트 값을 비밀데이터 저장용 공간(DS)에 순서대로 저장하고(S703), 256컬러인 경우 상기 이미지 데이터(DI)의 매 16번째 비트 값을 비밀데이터 저장용 공간(DS)에 순서대로 저장하며(S704), 2^16컬러인 경우 상기 이미지 데이터(DI)의 매 2바이트의 첫 비트 값을 비밀 데이터 저장용 공간(DS)에 순서대로 저장하고(S705), 2^32컬러인 경우 상기 이미지 데이터(DI)의 매 4바이트의 첫 1바이트 값을 비밀데이터 저장용 공간(DS)에 순서대로 저장하고(S706), 변경된 비밀 데이터 저장용 공간(DS)의 데이터를 비밀 데이터로서 출력한다(S707).
이와 같이 상기 BMP 파일의 컬러 모드에 따라서 비밀 데이터를 저장한 공간이 다르므로 그 컬러 모드에 따라 해당되는 위치에서 읽어들인 데이터를 비밀 데이터 공간(DS)에 순서대로 저장한 후 그 비밀 데이터 공간의 데이터를 복원된 비밀데이터로서 출력하면 그림 파일 속에서 비밀 데이터를 찾을 수 있게 된다.
한편, 그래픽 파일이 JPG인 경우, JPG는 DCT 과정 등에서 원본 이미지 정보가 손실되지만 허프만 코딩(Huffman coding) 자체는 비손실 압축이다. JPG의 기본적 압축/해제 과정에서 허프만 엔코딩(Huffman encoding) 이전에 임의의 데이터를 삽입하면 나중에 허프만 디코딩(Huffman decoding)후 동일한 데이터를 얻을 수 있다. 허프만 엔코딩 직전의 8×8 이미지 정보중 제일 마지막 한 비트에 원하는 데이터를 나누어 저장한다.
도 5는 본 발명에 의한 JPG 그래픽 파일에 비밀 데이터를 저장하는 방법을 보인 흐름도이다.
JPG 그래픽파일에 비밀 데이터를 숨겨서 저장하는 방법은, 제3과정(S300)에서 이루어지며, 원본 이미지의 컬러 모델을 RGB에서 YIQ로 변환하는 제1단계(S311)와; 색차신호를 다운 샘플링(Down Sampling)하는 제2단계(S312)와; 8×8 블록 DCT를 수행하는 제3단계(S313)와; DCT 계수를 양자화하는 제4단계(S314)와; 원본 이미지의 8×8 데이터 중 마지막 1비트에 사용자의 비밀 데이터(DS) 값을 나누어 저장하는 제5단계(S315)와; 지그재그 허프만(Zigzag Huffman) 코딩을 하는 제6단계(S316) 및 그 코딩된 데이터를 JPG 파일로 저장하는 제7단계(S317)로 이루어진다.
도 6은 본 발명에 의한 JPG 그래픽 파일에 숨겨진 비밀 데이터를 복원하는 방법을 보인 흐름도이다.
JPG데이터 복원은, 도 2의 제7과정(S700)에서 이루어지며, JPG 이미지를 지그재그 허프만 디코딩하는 단계(S711)와; 디코딩 결과 8×8데이터중 마지막 1비트 값을 순서대로 저장하여 사용자 비밀 데이터를 복원하는 단계(S712)로 이루어진다.
한편 본 발명에서는 무손실 압축 이미지 포맷을 이용할 수 있는데, 픽셀 값을 변경하여 압축하면 복원시 원래 값을 얻을 수 있다. BMP 와 마찬가지로 RGB 컬러 값을 ±1 변경하더라도 원본 이미지와의 차이는 크지 않다.
도 7은 본 발명에 의한 무손실 포맷을 이용한 일반적 데이터 압축 저장 방법을 보인 흐름도이다. 원본 그래픽 파일의 이미지 데이터로 로드시키는 제1단계(S321)와; RGB 컬러값 마지막 비트(LSB)에 사용자 비밀 데이터(DS) 값을 나누어 저장하는 제2단계(S322)와; 무손실 압축을 하는 제3단계(S323)와; 압축된 데이터를 그래픽 파일로서 저장하는 제3단계(S324)로 이루어진다.
도 8은 본 발명에 의한 무손실 포맷을 이용한 일반적 데이터 복원방법을 보인 흐름도이다. 그래픽 파일의 이미지 데이터를 로드하는 제1단계(S721)와; 압축을 해제하는 제2단계(S722)와; RGB 컬러값의 마지막 비트(LSB) 값을 사용자의 비밀 데이터(DS)로서 순서대로 저장하여 복원하는 제3단계(S723)로 이루어진다.
이와 같이 무손실 압축방법을 이용한 경우 압축된 그래픽 파일을 해제하고 비밀데이터 추출 과정(S700)을 거치면 그래픽 파일 중에 삽입되었던 비밀 데이터(DS)를 추출 할 수 있게 된다.
한편, 본 발명에 의해 그래픽 파일에 비밀 데이터를 숨겨서 저장하는 경우, 먼저 그 비밀 데이터를 암호화 한 후 그 암호화된 데이터를 그림 파일 속에 숨기도록 함으로써 좀더 비밀유지를 보완할 수 있다.
도 9는 본 발명에 적용되는 관용키 알고리즘을 이용한 암호화 흐름도이다. 이에 도시된 바와 같이, 암호화 키 용 시드(Seed) 값(SK)(예; 문자열, 그 외 데이터)을 해쉬(SHA) 값(HS)으로 저장하는 단계(S101)와; 상기 암호화 키용 시드 값(SK)을 해쉬하여 MD5 암호화 키 값(KE)으로 저장하는 단계(S102)와; 원본 데이터(DO)를 상기 암호화 키(KE)를 이용하여 암호화된 데이터(DE)로서 저장하는 단계(S103)와; 상기 해쉬 값(HS)과 상기 암호화된 데이터(DE)를 파일로 저장하는 단계(S104)를 수행한다.
도 10은 본 발명에 적용되는 관용키 알고리즘을 이용한 복호화 방법 흐름도이다. 파일에 저장된 시드 해쉬(SHA) 값(HS)과 암호화된 데이터(DE)를 로드시키는 제1단계(S801)와; 사용자에게 시드 값을 요청하는 제2단계(S802)와; 사용자가 입력한 시드 값을 해쉬(SHA)하여 그 값(HU)을 저장하는 제3단계(S803)와; 상기 파일에 저장되었던 해쉬 값(HS)과 상기 사용자가 입력한 시드 값을 해쉬한 값(HU)을 비교하여 같은지를 판단하는 제4단계(S804)와; 파일의 시드 해쉬 값(HS)과 사용자가 입력한 시드 해쉬 값(HU)이 같으면 그 시드 값을 해쉬(MD5)하여 복호화 키 값(KE)으로 저장하는 제5단계(S805)와; 그 복호화 키 값(KE)을 이용하여 상기 파일에서 읽은 암호화된 데이터(DE)를 복호화 하여 사용자의 데이터인 원본 데이터(DO)를 복원하는 제6단계(S806)를 수행하도록 이루어진다.
이상에서 상술한 바와 같은 본 발명은, 사용자가 입력한 모든 바이너리 데이터(비밀 데이터)를 BMP, JPG등의 그래픽 파일에 숨겨서 저장하되, 그림의 손상을 최소화하여 암호화된 상태로 저장하고 그 반대로 숨겨진 데이터를 다시 원래대로 추출하여 복원할 수 있으므로, 비밀 데이터 파일의 존재 자체를 다른 사람이 알 수 없고, 다른 사람이 볼 때 단순히 BMP, JPG 또는 기타 형식의 그래픽 파일만 존재하고, 그 그래픽 파일을 단순히 읽는 경우 해당 파일의 그래픽이 보여지므로 다른 사람에게 비밀 데이터의 노출 우려가 없다.

Claims (11)

  1. 사용자가 그림 파일에 숨겨 저장하고자 하는 비밀 데이터(DS)에 비밀의 그림임을 나타내는 특수 스트링을 비밀 데이터의 첫 부분에 포함시켜 사용자 데이터(DU)로서 만드는 과정과;
    상기 비밀 데이터를 숨기고자 하는 대상이 되는 그래픽 파일의 포맷에 맞게 그림의 손상을 최소화하도록 일정한 규칙 또는 그래픽 파일의 사용하지 않는 빈 공간에 상기 사용자 데이터(DU)의 내용을 그래픽 파일의 공간에 나누어 저장하는 과정을 수행하여 비밀 데이터를 그림 파일 속에 숨겨서 저장하고,
    데이터 복원시 그래픽 파일의 종류를 파악하는 과정과;
    그래픽 파일의 종류에 따라 상기 저장 과정에서 비밀 데이터가 저장된 부분의 모든 데이터를 읽어서 메모리(MS)에 저장하는 과정과;
    상기 데이터 메모리(MS)의 첫 부분에 특별한 스트링이 있는가를 판단하는 과정과;
    첫 부분에 특별한 스트링이 있으면, 비밀의 데이터가 포함된 그림으로 판단하고 그 비밀의 그림에서 사용자 데이터가 저장된 부분의 데이터를 순서대로 비밀데이터로서 저장하여 비밀 데이터를 복원하는 과정을 수행하여 그림 파일 속에 숨겨진 비밀 데이터를 복원하는 것을 특징으로 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법.
  2. 제 1 항에 있어서, 상기 비밀데이터는,
    그림 파일에 숨겨서 저장하고자 하는 비밀 데이터(DS)를 암호화시키는 암호화 과정을 더 포함하여 그림 파일에 숨겨서 저장하고,
    복원하는 과정에서 그 암호화된 비밀 데이터를 복호화하는 과정을 더 포함시켜 원래의 비밀 데이터(DS)로서 복원하는 것을 특징으로 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법.
  3. 사용자가 그림 파일에 숨겨 저장하고자 하는 비밀 데이터(DS)를 암호화하여 암호화된 비밀데이터(DE)로 만드는 제1과정(S100)과;
    비밀의 그림 특수 스트링(SS)과 시드(Seed)의 해쉬(HASH)(SHA) 값(HS) 및 상기 암호화된 비밀데이터(DE)를 순서대로 파일 저장용 데이터(DF)로서 저장하는 제2과정(S200)과;
    대상 그래픽 파일의 포맷에 맞게 그림의 손상을 최소화하도록 일정한 규칙 또는 그래픽 파일의 사용하지 않는 빈 공간에 상기 파일 저장용 데이터(DF)의 내용을 그래픽 파일의 공간에 나누어 저장하는 제3과정(S300);을 수행하여 비밀 데이터를 그림 파일 속에 숨겨서 저장하고,
    그래픽 파일의 종류를 파악하는 제4과정(S400)과;
    그래픽 파일의 종류에 맞게 비밀 데이터가 저장된 부분의 모든 데이터를 읽어서 메모리(MS)에 저장하는 제5과정(S500)과;
    상기 데이터 메모리(MS)의 첫 부분에 특별한 문자열이 있는가를 판단하는 제6과정(S600)과;
    첫 부분에 특별한 문자열이 있으면, 비밀의 데이터가 포함된 그림으로 판단하고 그 비밀의 그림에서 암호화된 데이터를 추출하는 제7과정(S700)과;
    암호화된 데이터를 추출하여 복호화하고 복호화에 성공되었는지를 판단하여, 복호화에 성공하면 비밀데이터를 출력하는 제8과정(S800)을 수행하여 그림 파일에서 비밀 데이터를 복원하는 것을 특징으로 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법.
  4. 제 3 항에 있어서, 상기 제 3 과정(S300)에서 비밀데이터를 숨겨서 저장하고자 하는 대상이 되는 파일의 종류를 판단하여 BMP 그래픽 파일인 경우,
    BMP 파일을 열고 그 정보를 읽어서 이미지 데이터(DI)를 저장하고 그 BMP 파일의 이미지 종류를 판단하는 제1단계(S301)와;
    상기 BMP 파일이 흑백(Monochrome ; 2컬러)이미지 인 경우, 그림에 숨기고자하는 사용자 데이터(DU)를 상기 BMP 파일 이미지 데이터(DI)의 매 2번째 비트 공간에 나누어 저장하는 제2단계(S302)와;
    상기 BMP파일이 16컬러 또는 2^24컬러인 경우, BMP 파일 이미지 데이터(DI)의 매 7번째 비트 공간에 사용자 데이터(DU)를 나누어 저장하는 제3단계(S303)와;
    상기 BMP파일이 256컬러인 경우, BMP파일 이미지 데이터(DI)의 매 16번째 비트 공간에 사용자 데이터(DU)를 나누어 저장하는 제4단계(S304)와;
    상기 BMP 파일이 2^16컬러 이미지인 경우, 상기 BMP 파일 이미지 데이터(DI)의 매 두 번째 바이트의 첫(MSB) 비트에 사용자 데이터(DU)를 저장하는 제5단계(S305)와;
    상기 BMP 파일이 2^32컬러 이미지인 경우, 상기 BMP 파일 이미지 데이터(DI)의 매 4바이트마다 첫 1바이트 전체에 사용자 데이터(DU)를 저장하는 제6단계(S306)와;
    상기 제2단계(S302) - 제6단계(S306)중 어느 한 단계를 거쳐 이미지 데이터(DI)에 사용자 데이터(DU)를 삽입하여 저장한 변경된 이미지 데이터(DI)를 BMP 그래픽 파일로서 저장하는 제7단계(S307)를 수행하여 BMP 파일 내에 사용자 데이터를 숨겨서 저장하는 것을 특징으로 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법.
  5. 제 4 항에 있어서, 제 7 과정에서 BMP 그래픽 파일에서 숨겨진 비밀 데이터를 복원하는 경우는,
    비밀 데이터가 숨겨져 있는 BMP 파일을 열고 정보를 읽어서 이미지 데이터(DI)를 저장하고 BMP파일의 컬러 특성을 판단하는 단계(S701)와,
    모노크롬인 경우 상기 이미지 데이터(DI)의 매 두 번째 비트 값을 비밀데이터 저장용 공간(DS)에 순서대로 저장하는 단계(S702)와,
    16컬러 또는 2^24컬러인 경우 상기 이미지 데이터(DI)의 매 7번째 비트 값을 비밀데이터 저장용 공간(DS)에 순서대로 저장하는 단계(S703)와,
    256컬러인 경우 상기 이미지 데이터(DI)의 매 16번째 비트 값을 비밀데이터 저장용 공간(DS)에 순서대로 저장하는 단계(S704)와,
    2^16컬러인 경우 상기 이미지 데이터(DI)의 매 2바이트의 첫 비트 값을 비밀 데이터 저장용 공간(DS)에 순서대로 저장하는 단계(S705)와,
    2^32컬러인 경우 상기 이미지 데이터(DI)의 매 4바이트의 첫 1바이트 값을 비밀데이터 저장용 공간(DS)에 순서대로 저장하는 단계(S706)와,
    상기 BMP 파일의 컬러 특성에 따라 해당되는 부분에서 비밀데이터 값을 추출하여 저장한 후 변경된 비밀 데이터 저장용 공간(DS)의 데이터를 비밀 데이터로서 출력하는 단계(S707)를 수행하는 것을 특징으로 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법.
  6. 제 3 항에 있어서, 제 3 과정(S300)에서 JPG 그래픽 파일에 비밀 데이터를 저장하는 경우는,
    원본 이미지의 컬러 모델을 RGB에서 YIQ로 변환하는 제1단계(S311)와;
    색차신호를 다운 샘플링(Down Sampling)하는 제2단계(S312)와;
    8×8 블록 DCT를 수행하는 제3단계(S313)와;
    DCT 계수를 양자화하는 제4단계(S314)와;
    원본 이미지의 8×8 데이터 중 마지막 1비트에 사용자의 비밀 데이터(DS) 값을 나누어 저장하는 제5단계(S315)와;
    지그재그 허프만(Zigzag Huffman) 코딩을 하는 제6단계(S316) 및 그 코딩된 데이터를 JPG 파일로 저장하는 제7단계(S317)로 이루어지는 것을 특징으로 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법.
  7. 제 6 항에 있어서, 제 7 과정(S700)에서 비밀 데이터가 숨겨진 그래픽 파일이 JPG 파일 인 경우,
    JPG 이미지를 지그재그 허프만 디코딩하는 단계(S711)와;
    디코딩 결과 8×8데이터중 마지막 1비트 값을 순서대로 저장하여 사용자 비밀 데이터를 복원하는 단계(S712)로 이루어진 것을 특징으로 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법.
  8. 제 3 항에 있어서, 제3과정의 비밀 데이터 저장방법은,
    원본 그래픽 파일의 이미지 데이터로 로드시키는 제1단계(S321)와;
    RGB 컬러값 마지막 비트(LSB)에 사용자 비밀 데이터(DS) 값을 나누어 저장하는 제2단계(S322)와;
    무손실 압축을 하는 제3단계(S323)와;
    압축된 데이터를 그래픽 파일로서 저장하는 제3단계(S324)로 비밀 데이터를 압축하여 저장하는 것을 특징으로 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법.
  9. 제 8 항에 있어서, 상기 무손실 포맷을 이용하여 비밀 데이터를 그래픽 파일 속에 숨겨서 저장한 경우,
    그래픽 파일의 이미지 데이터를 로드하는 제1단계(S721)와;
    압축을 해제하는 제2단계(S722)와;
    RGB 컬러값의 마지막 비트(LSB) 값을 사용자의 비밀 데이터(DS)로서 순서대로 저장하여 복원하는 제3단계(S723)로 이루어진 것을 특징으로 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법.
  10. 제 3 항에 있어서, 제 2 과정은,
    암호화 키 용 시드(Seed) 값(SK)(예; 문자열, 그 외 데이터)을 해쉬(SHA) 값(HS)으로 저장하는 단계(S101)와;
    상기 암호화 키용 시드 값(SK)을 해쉬하여 MD5 암호화 키 값(KE)으로 저장하는 단계(S102)와;
    원본 데이터(DO)를 상기 암호화 키(KE)를 이용하여 암호화된 데이터(DE)로서 저장하는 단계(S103)와;
    상기 해쉬 값(HS)과 상기 암호화된 데이터(DE)를 파일로 저장하는 단계(S104)를 수행하여 비밀 데이터를 암호화하여 저장하는 것을 특징으로 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법.
  11. 제 10 항에 있어서, 비밀데이터를 암호화하여 저장한 경우,
    파일에 저장된 시드 해쉬(SHA) 값(HS)과 암호화된 데이터(DE)를 로드시키는 제1단계(S801)와;
    사용자에게 시드 값을 요청하는 제2단계(S802)와;
    사용자가 입력한 시드 값을 해쉬(SHA)하여 그 값(HU)을 저장하는 제3단계(S803)와;
    상기 파일에 저장되었던 해쉬 값(HS)과 상기 사용자가 입력한 시드 값을 해쉬한 값(HU)을 비교하여 같은지를 판단하는 제4단계(S804)와;
    파일의 시드 해쉬 값(HS)과 사용자가 입력한 시드 해쉬 값(HU)이 같으면 그 시드 값을 해쉬(MD5)하여 복호화 키 값(KE)으로 저장하는 제5단계(S805)와;
    그 복호화 키 값(KE)을 이용하여 상기 파일에서 읽은 암호화된 데이터(DE)를 복호화 하여 사용자의 데이터인 원본 데이터(DO)를 복원하는 제6단계(S806)를 수행하여 복원하는 것을 특징으로 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법.
KR1020010015934A 2001-03-27 2001-03-27 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법 KR20010044804A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010015934A KR20010044804A (ko) 2001-03-27 2001-03-27 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010015934A KR20010044804A (ko) 2001-03-27 2001-03-27 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법

Publications (1)

Publication Number Publication Date
KR20010044804A true KR20010044804A (ko) 2001-06-05

Family

ID=19707465

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010015934A KR20010044804A (ko) 2001-03-27 2001-03-27 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법

Country Status (1)

Country Link
KR (1) KR20010044804A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100416258B1 (ko) * 2001-10-12 2004-01-24 삼성전자주식회사 이미지 데이터의 암호화가 가능한 이미지 데이터 처리장치및 이를 이용한 암호화방법
KR101538491B1 (ko) * 2013-11-04 2015-07-22 박배억 이미지를 부가 데이터의 저장 및 이동 수단으로 이용하는 방법 및 장치
US9875351B2 (en) 2013-07-16 2018-01-23 Nokia Technologies Oy Methods, apparatuses, and computer program products for hiding access to information in an image
KR20180072158A (ko) 2016-12-21 2018-06-29 동양대학교 산학협력단 타임스탬프 정보를 이용한 데이터 숨김 방법
KR101966032B1 (ko) 2019-01-07 2019-04-04 동양대학교 산학협력단 디렉토리 목록정보 변경을 이용한 데이터 숨김방법
KR101977008B1 (ko) 2019-01-07 2019-05-09 동양대학교 산학협력단 시간정보 왜곡보정이 가능한 타임스탬프를 이용한 데이터 숨김방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10285383A (ja) * 1997-04-08 1998-10-23 Nippon Telegr & Teleph Corp <Ntt> 個人情報作成方法および装置
KR19980063646U (ko) * 1997-04-18 1998-11-25 배순훈 텔레텍스트정보 음성출력장치
JPH11317859A (ja) * 1998-05-06 1999-11-16 Nec Corp 電子透かしシステム及び電子透かし挿入装置と電子画像復調装置
KR20000007020A (ko) * 1999-11-19 2000-02-07 원치선 데이터 감춤 기법을 이용한 채널 공유 방법
JP2000148015A (ja) * 1998-09-10 2000-05-26 Kowa Co 電子透かしの埋め込み方法、その方法を記憶した記憶媒体、および埋め込まれた電子透かしの証明方法ならびに電子透かしの埋め込み装置
KR20000036133A (ko) * 1996-10-15 2000-06-26 포만 제프리 엘 데이터 은폐 방법 및 데이터 추출 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000036133A (ko) * 1996-10-15 2000-06-26 포만 제프리 엘 데이터 은폐 방법 및 데이터 추출 방법
JPH10285383A (ja) * 1997-04-08 1998-10-23 Nippon Telegr & Teleph Corp <Ntt> 個人情報作成方法および装置
KR19980063646U (ko) * 1997-04-18 1998-11-25 배순훈 텔레텍스트정보 음성출력장치
JPH11317859A (ja) * 1998-05-06 1999-11-16 Nec Corp 電子透かしシステム及び電子透かし挿入装置と電子画像復調装置
JP2000148015A (ja) * 1998-09-10 2000-05-26 Kowa Co 電子透かしの埋め込み方法、その方法を記憶した記憶媒体、および埋め込まれた電子透かしの証明方法ならびに電子透かしの埋め込み装置
KR20000007020A (ko) * 1999-11-19 2000-02-07 원치선 데이터 감춤 기법을 이용한 채널 공유 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100416258B1 (ko) * 2001-10-12 2004-01-24 삼성전자주식회사 이미지 데이터의 암호화가 가능한 이미지 데이터 처리장치및 이를 이용한 암호화방법
US9875351B2 (en) 2013-07-16 2018-01-23 Nokia Technologies Oy Methods, apparatuses, and computer program products for hiding access to information in an image
KR101538491B1 (ko) * 2013-11-04 2015-07-22 박배억 이미지를 부가 데이터의 저장 및 이동 수단으로 이용하는 방법 및 장치
KR20180072158A (ko) 2016-12-21 2018-06-29 동양대학교 산학협력단 타임스탬프 정보를 이용한 데이터 숨김 방법
KR101966032B1 (ko) 2019-01-07 2019-04-04 동양대학교 산학협력단 디렉토리 목록정보 변경을 이용한 데이터 숨김방법
KR101977008B1 (ko) 2019-01-07 2019-05-09 동양대학교 산학협력단 시간정보 왜곡보정이 가능한 타임스탬프를 이용한 데이터 숨김방법

Similar Documents

Publication Publication Date Title
Abu-Marie et al. Image Based Steganography Using Truth Table Based and Determinate Array on RGB Indicator.
JP5415446B2 (ja) 画像に除去可能な可視透かしを挿入する方法と装置、及びその透かしを除去する方法と装置
Liu et al. Reversible data hiding in encrypted images using chunk encryption and redundancy matrix representation
CN110110535B (zh) 一种基于像素矩阵的低失真隐写方法
Bhautmage et al. Advanced video steganography algorithm
AbdelWahab et al. Efficient combination of RSA cryptography, lossy, and lossless compression steganography techniques to hide data
KR20010044804A (ko) 그림 파일 속에 비밀 데이터를 숨겨 저장/복원하는 방법
Zeki et al. Steganographic software: analysis and implementation
Rohini et al. Lossless medical image security
Swain et al. A dynamic approach to image steganography using the three least significant bits and extended hill cipher
US7606426B1 (en) Image processing apparatus and method and storage medium
Kavitha et al. Lossless steganography on avi file using swapping algorithm
CN116194927A (zh) 用于数字水印的系统、方法和装置
Reddy et al. Steganpeg steganography+ JPEG
Anumol et al. Enhanced security in medical image steganography-a hybrid approach using spatial and transform domain
JP2001211310A (ja) 画像データ操作方法およびその処理プログラムを記録した記録媒体
Leelavathi et al. A high capacity reversible data hiding scheme in efficient LZW compression
Sendhooran et al. Data Hiding with Encrypted Multi Secret Sharing using Modified LSB Technique
AlSinani et al. Improving data security using modified LSB-based image steganography technique
Yang et al. Transparent and perceptually enhanced JPEG image encryption
JP2001045265A (ja) 画像信号処理装置
Harsoor et al. Reversible data hiding in encrypted image
Reddy et al. A novel technique for JPEG image steganography and its performance evaluation
KR100526411B1 (ko) 영상 데이터의 암호화 및/또는 복호화 장치 및 그 방법
Lubis et al. Design of Steganographic Applications in A Processed Image using Algorithm Dynamic Markov Compression

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application