KR101810765B1 - 상수 인코딩을 이용한 정적 워터마킹 방법 - Google Patents

상수 인코딩을 이용한 정적 워터마킹 방법 Download PDF

Info

Publication number
KR101810765B1
KR101810765B1 KR1020160026485A KR20160026485A KR101810765B1 KR 101810765 B1 KR101810765 B1 KR 101810765B1 KR 1020160026485 A KR1020160026485 A KR 1020160026485A KR 20160026485 A KR20160026485 A KR 20160026485A KR 101810765 B1 KR101810765 B1 KR 101810765B1
Authority
KR
South Korea
Prior art keywords
watermarking
value
encoding
bits
constant
Prior art date
Application number
KR1020160026485A
Other languages
English (en)
Other versions
KR20170103499A (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 KR1020160026485A priority Critical patent/KR101810765B1/ko
Publication of KR20170103499A publication Critical patent/KR20170103499A/ko
Application granted granted Critical
Publication of KR101810765B1 publication Critical patent/KR101810765B1/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • G06F2221/0733

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Signal Processing (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)

Abstract

상수 인코딩을 이용한 정적 워터마킹 방법이 개시된다. 본 발명의 일 실시예에 따른 정적 워터마킹 방법은 워터마킹 값을 수신하는 단계; 상기 수신된 워터마킹 값을 이진화하여 이진화 값으로 변환하는 단계; 상기 변환된 이진화 값 중 적어도 8비트를 10진수로 변환하여 상수로 인코딩하는 인코딩 과정을 통해 워터마킹 정보를 생성하는 단계; 및 상기 생성된 워터마킹 정보를 소스코드에 삽입하는 단계를 포함한다.

Description

상수 인코딩을 이용한 정적 워터마킹 방법 {Static Software Watermarking Method by Encoding Constant}
본 발명은 정적 워터마킹 기술에 관한 것으로서, 보다 상세하게는 난독화나 최적화 공격에 강건하면서도 눈에 잘 띄지 않는 상수를 활용하여 정적 워터마킹을 수행할 수 있는 상수 인코딩을 이용한 정적 워터마킹 방법에 관한 것이다.
최근 인터넷의 발전으로 소프트웨어 시장의 규모는 급성장하고 있고, 그에 따라 소프트웨어의 불법 복제 또한 함께 증가되고 있다. 이러한 불법 복제 소프트웨어로 인하여 개발자나 회사 등은 경제적으로 막대한 영향을 받고 있는 실정이다. 이에 소프트웨어 불법 복제로 인하여 법정 분쟁이 발생하였을 시, 원 개발자의 소프트웨어 및 모듈의 저작권을 주장할 수 있게 하는 방법으로 소프트웨어 워터마킹(watermarking) 기술이 나타나게 되었다.
소프트웨어 워터마킹은 워터마크를 삽입하는 방법에 따라 정적 워터마킹(Static Watermarking), 동적 워터마킹(Dynamic Watermarking)으로 분류되는데, 정적 워터마킹은 워터마크를 해당 프로그램의 코드나 데이터영역에 삽입하는 방법이고, 동적 워터마킹은 특정한 입력값을 넣으면 프로그램 실행과정에서 힙(heap)이나 스택(stack)에 워터마크를 생성하는 방법이다.
하지만, 이러한 워터마크 역시 악의적인 공격자들의 표적이 될 수 있다. 악의적인 공격자들은 난독화나 최적화 공격 등으로 프로그램의 실행흐름에는 영향을 주지 않으면서 프로그램 안에 삽입된 워터마크를 왜곡시켜 워터마크의 추출을 어렵게 만들거나 워터마크 자체를 제거한다.
워터마크를 강하게 만들기 위해서는 이러한 난독화, 최적화 공격 등으로부터 안전하게 만들어야 한다.
따라서, 본 발명에서는 이러한 공격으로부터 안전한 정적 워터마킹 기법을 제안한다.
본 발명의 실시예들은, 난독화나 최적화 공격에 강건하면서도 눈에 잘 띄지 않는 상수를 활용하여 정적 워터마킹을 수행할 수 있는 상수 인코딩을 이용한 정적 워터마킹 방법을 제공한다.
본 발명의 일 실시예에 따른 정적 워터마킹 방법은 워터마킹 값을 수신하는 단계; 상기 수신된 워터마킹 값을 이진화하여 이진화 값으로 변환하는 단계; 상기 변환된 이진화 값 중 적어도 8비트를 10진수로 변환하여 상수로 인코딩하는 인코딩 과정을 통해 워터마킹 정보를 생성하는 단계; 및 상기 생성된 워터마킹 정보를 소스코드에 삽입하는 단계를 포함하는 것을 특징으로 한다.
상기 워터마킹 정보를 생성하는 단계는 상기 적어도 8비트를 상수로 인코딩하고, 나머지 비트들을 비트 값에 따라 미리 설정된 산술 표현식, 대수 표현식, 논리 표현식 중 적어도 하나 이상으로 인코딩함으로써, 상기 워터마킹 정보를 생성할 수 있다.
상기 소스코드에 삽입하는 단계는 상기 소스코드의 IF문의 조건에 상기 생성된 워터마킹 정보를 삽입할 수 있다.
상기 워터마킹 정보를 생성하는 단계는 상기 변환된 이진화 값으로 표현 가능한 표현식에 포함된 4개의 변수들 중 2개의 변수에는 변수로 인코딩하고, 나머지 2개에는 상기 변환된 이진화 값의 8비트씩을 이용하여 상수로 인코딩함으로써, 상기 워터마킹 정보를 생성할 수 있다.
본 발명의 실시예들에 따르면, 난독화나 최적화 공격에 강건하면서도 눈에 잘 띄지 않는 상수를 활용하여 정적 워터마킹을 수행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 정적 워터마킹 방법을 설명하기 위한 예시도를 나타낸 것이다.
도 2는 기존 워터마킹 기법에 의해 삽입되는 워터마킹 정보와 본 발명에 의해 삽입되는 워터마킹 정보에 대한 예시도를 나타낸 것이다.
이하, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 또한, 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
기존의 정적 워터마크 기법은 사용되지 않는 코드나 데이터 영역에 워터마크를 삽입하기 때문에 난독화나 최적화 공격에 의해 워터마크가 쉽게 손실될 수 있는 문제점을 가지고 있다.
본 발명의 실시예들은, 상술한 기존 정적 워터마크 기법의 문제점을 해결하기 위한 것으로, 눈에 잘 띄지 않는 상수를 인코딩하는 상수 인코딩을 이용하여 난독화나 최적화 공격에 강건한 정적 워터마킹 방법을 제공하는 것을 그 요지로 한다.
구체적으로, 본 발명은 IF문의 조건 자체를 워터마크로 사용할 수 있으며, 프로그램에 영향을 주지 않는 IF문과, IF 문의 조건이 최적화 되지 않게 하기 위해 조건내부에 존재하는 변수를 조작할 함수를 외부에 추가적으로 삽입함으로써, 난독화나 최적화 공격에 강건할 수 있다.
따라서, IF문에 들어가는 조건 값 자체가 워터마크가 될 수 있으며, 워터마크를 인코딩하는 방법은 아래 [표 1], [표 2]와 같이 정리될 수 있다.
Figure 112016021370419-pat00001
Figure 112016021370419-pat00002
상기 표 1은 비트로 표현 가능한 표현식을 나타낸 것으로, 표 1을 통해 알 수 있듯이 표현식은 4가지로 분류될 수 있으며, ⊙와 ·는 각각 산술 연산자(arithmetic operator)와 대수 연산자(relational operator)를 나타내며, 각 변수나 상수 사이에 들어가 수식으로 나타낼 수 있다.
상기 표 2는 비트로 표현 가능한 연산자를 나타낸 것으로, X에는 임의의 변수나 상수가 올 수 있고, X와 연산자들의 조합으로 된 표현식은 2비트의 값으로 나타낼 수 있다.
상기 표 1에 도시된 수식과 비트 값의 관계, 상기 표 2에 도시된 기호, 산술 연산자, 대수 연산자와 비트 값에 대한 관계는 워터마크 값을 수식으로 표현하기 위해 미리 정의된 것이며, 이에 대한 부분은 이 기술 분야에 종사하는 당업자에게 있어서 자명하기에 이 부분에 대한 상세한 설명은 생략한다.
하나의 표현식과 다른 표현식 사이에는 1비트의 논리 연산자가 들어가 표현식의 길이를 늘일 수 있다.
예를 들어, 워터마크할 값이 7273582라고 가정하면, 7273582를 이진수 11011101111110001101110로 변환 후, 가장 우측 비트부터 산술 표현식, 대수 표현식, 논리 표현식 순으로 해당하는 비트수만큼 읽어 인코딩 한다. 맨 우측부터 10은 '+'로, 11은 '-'로, 10은 '+'로, 01은 '/'로 등등의 인코딩 과정이 완료되면 해당 값은 ((a + b) - c) != 0 || a + (c/ 2) != 0 || (c * b) - 3 == 1) 으로 변환될 수 있다.
구체적으로, 워터마크할 값 7273582에 대응하는 이진수 110 1 1 10 11 11 11 00 01 10 11 10에서, 맨 우측 12비트는 2비트씩 우측부터 순서대로 10 11 10 01 00 11로 '+', '-', '+', '/'. '*'. '-'가 되고, 그 후의 6비트는 2비트씩 우측부터 순서대로 11 11 10으로 '!=', '!=', '=='가 되며, 그 후 2비트는 1비트씩 우측부터 순서대로 1 1로 '||', '||'가 된다. 그리고 마지막에는 3비트가 남았지만 수식 표현을 위해 6비트가 필요하기 때문에 0으로 채워넣고 000110에 대해 2비트씩 우측부터 순서대로 10 01 00으로 '((X⊙X)⊙X)·X',' X⊙(X⊙X)·X', '(X⊙X)⊙X·X'으로 세 개의 수식이 만들어진다.
따라서, 맨 처음 계산한 '+', '-', '+', '/'. '*'. '-'를 '⊙'부분에 채워넣고 그 다음 계산한 '!=', '!=', '=='는 '·'부분에 채워넣으며, 각 수식 사이를 만들어놓은 '||', '||'로 연결하면 "((X+X)-X)!=X || X+(X/X)!=X || (X*X)-X==X"가 만들어지고, X부분에는 임의의 변수나 숫자를 넣어서 수식을 완성한다.
결과적으로 7273582라는 워크마크 값은 "((a+b)-c)!=0 || a+(c/2)!=0 || (c*b)-3==1"이라는 수식으로 표현될 수 있다.
본 발명은 워터마크 값을 수식으로 인코딩하여 IF 문의 조건으로 사용함으로써, 정적 워터마크의 단점인 난독화 공격이나 최적화 공격에 취약하다는 문제를 해결할 수 있다.
하지만 하나의 문자가 8비트로 표현되는 것으로 미루어 볼 때, 하나의 문자는 하나의 표현식이 되고, 워터마크 값이 조금만 길어지더라도 표현식의 길이 역시 이상하게 보일만큼 길어질 것이다. 이러한 긴 표현식은 디컴파일 된 소스코드에서 쉽게 눈에 띄게 되고, 결국 공격자에 의해 제거 될 가능성이 높다.
해당 기법의 표현식의 길이를 줄일 수 있다면, 조금 더 안전한 워터마킹이 가능할 것이다.
상술한 인코딩 후 길이가 길어지는 점은 8비트 상수를 이용하여 워터마크의 길이를 대폭 줄임으로써 해결할 수 있다.
본 발명에 따른 워터마킹 방법은 기존 기법의 문제점을 개선하기 위해 상수를 이용한다. 다시 말해, 상수 또는 변수가 들어갈 수 있는 4개의 X값 중 2곳에는 변수를 넣고 나머지 2곳에는 상수를 넣는다. 그리고 인코딩 된 워터마크의 길이를 줄이기 위하여 해당 상수 값 자체를 8비트 워터마크 정보로 사용한다.
즉, 도 1에 도시된 바와 같이, 본 발명의 워터마킹 방법은 기존 8비트를 표현할 수 있었던 하나의 표현식으로 그보다 3배 더 긴 24비트를 표현할 수 있다.
또한, 도 2a에 도시된 IF 문의 소스코드는 기존 방식에 의해 인코딩되어 삽입되는 것이며, 도 2b 도시된 IF 문의 소스코드는 본 발명에 의해 인코딩되어 삽입되는 것을 나타낸 것으로, 도 2에 도시된 일 예와 같이, 코드상에서 보이는 길이 역시 눈에 띄게 줄어, 공격자에 의해 제거될 가능성 역시 적어진다.
즉, 워터마크 값 7273582가 변환된 이진수 1 10 11 10 11111100 01101110에서, 우측의 8비트(01101110)를 10진수로 표현하면 '110'이 되고, 그 다음 8비트(11111100)을 10진수로 표현하면 '252'가 되며, 이 두 개의 숫자를 표1의 표현식의 X값에 넣어 식을 완성한다.
그 다음 나오는 비트들은 2비트씩 총 3개(6비트)에 대해, 표2를 보고 연산자를 선택하고, 그 다음 나오는 2비트에 대해 순서대로 10, 11, 10를 표2에 대응하면 각각 '+', '-', '=='이 된다.
이 연산자들은 표1의 수식이 결정되면 연산자를 넣는 곳에 배치하며, 그 다음 나오는 2비트를 보면 1이 되는데, 이것은 01과 같기 때문에 01로 표현하고, 이 01을 표1에 대응하여 최종적으로 '((X⊙X)⊙X)⊙X'인 3번째 수식을 선택한다.
선택한 수식에 상술한 연산자와 상수들을 수식에 넣으며, 최총적으로 생성된 수식은 '((X⊙X)⊙X)⊙X'이고, 이전에 계산한 두개의 상수 '110', '252'는 X의 위치 중 두 곳에 랜덤하게 넣는다. 그리고 표2를 이용하여 계산한 연산자 3개는 '⊙'부분에 넣으며, 최종적으로 생성된 워터마크는 도 2b에 도시된 바와 같이 "252+(b-c)==100"이 된다.
이와 같이, 기존 방식으로 워터마크 값 7273582를 인코딩하면 도 2a에 도시된 바와 같이 최종적으로 생성된 워터마크가 "((a + b) - c) != 0 || a + (c/ 2) != 0 || (c * b) - 3 == 1)"으로 표현되지만, 본 발명에 따른 방법을 이용하여 워터마크 값 7273582를 인코딩하면 도 2b에 도시된 바와 같이 최종적으로 생성된 워터마크가 "252+(b-c)==100"으로 표현될 수 있다.
도 1과 도 2를 통해 알 수 있듯이, 본 발명에 따른 방법에 의해 워터마킹의 길이가 3개에서 1개로 줄어들어 1/3가량 짧아지는 것을 알 수 있다.
나아가, 본 발명에 따른 워터마킹 방법은 24비트를 하나의 표현식으로 만들기 때문에 남는 비트에는 0으로 패딩을 시켜 사용할 수 있다. 이 때, 워터마크를 24로 나눈 나머지가 크다면 그만큼 쓸모없는 비트수만큼을 0으로 채워야 하는데, 24 비트 단위 인코딩에서 가장 안좋은 경우 23비트를 패딩해야 한다.
더 나아가, 본 발명에 따른 워터마킹 방법은 난독화 기법 또는 템퍼 프루핑(tamper-proofing) 기법 등과 함께 사용할 경우, 워터마크를 더욱 더 강건하게 사용할 수 있다.
상술한 상수 인코딩을 이용한 정적 워터마킹 방법은 워터마킹을 수행하는 시스템 또는 장치 예를 들어, 컴퓨터에서 수행될 수 있으며, 필요에 따라 스마트 기기, 모바일 기기 등에서도 수행될 수도 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 시스템, 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예들에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (4)

  1. 워터마킹 값을 수신하는 단계;
    상기 수신된 워터마킹 값을 이진화하여 이진화 값으로 변환하는 단계;
    상기 변환된 이진화 값 중 적어도 8비트를 10진수로 변환하여 상수로 인코딩하는 인코딩 과정을 통해 워터마킹 정보를 생성하는 단계; 및
    상기 생성된 워터마킹 정보를 소스코드에 삽입하는 단계
    를 포함하고,
    상기 워터마킹 정보를 생성하는 단계는
    상기 적어도 8비트를 상수로 인코딩하고, 나머지 비트들을 비트 값에 따라 미리 설정된 산술 표현식, 대수 표현식, 논리 표현식 중 적어도 하나 이상으로 인코딩함으로써, 상기 워터마킹 정보를 생성하는 정적 워터마킹 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 소스코드에 삽입하는 단계는
    상기 소스코드의 IF문의 조건에 상기 생성된 워터마킹 정보를 삽입하는 것을 특징으로 하는 정적 워터마킹 방법.
  4. 워터마킹 값을 수신하는 단계;
    상기 수신된 워터마킹 값을 이진화하여 이진화 값으로 변환하는 단계;
    상기 변환된 이진화 값 중 적어도 8비트를 10진수로 변환하여 상수로 인코딩하는 인코딩 과정을 통해 워터마킹 정보를 생성하는 단계; 및
    상기 생성된 워터마킹 정보를 소스코드에 삽입하는 단계
    를 포함하고,
    상기 워터마킹 정보를 생성하는 단계는
    상기 변환된 이진화 값으로 표현 가능한 표현식에 포함된 4개의 변수들 중 2개의 변수에는 변수로 인코딩하고, 나머지 2개에는 상기 변환된 이진화 값의 8비트씩을 이용하여 상수로 인코딩함으로써, 상기 워터마킹 정보를 생성하는 것을 특징으로 하는 정적 워터마킹 방법.
KR1020160026485A 2016-03-04 2016-03-04 상수 인코딩을 이용한 정적 워터마킹 방법 KR101810765B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160026485A KR101810765B1 (ko) 2016-03-04 2016-03-04 상수 인코딩을 이용한 정적 워터마킹 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160026485A KR101810765B1 (ko) 2016-03-04 2016-03-04 상수 인코딩을 이용한 정적 워터마킹 방법

Publications (2)

Publication Number Publication Date
KR20170103499A KR20170103499A (ko) 2017-09-13
KR101810765B1 true KR101810765B1 (ko) 2017-12-20

Family

ID=59967984

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160026485A KR101810765B1 (ko) 2016-03-04 2016-03-04 상수 인코딩을 이용한 정적 워터마킹 방법

Country Status (1)

Country Link
KR (1) KR101810765B1 (ko)

Also Published As

Publication number Publication date
KR20170103499A (ko) 2017-09-13

Similar Documents

Publication Publication Date Title
US8458476B2 (en) Watermarking computer program code
US20170116410A1 (en) Software protection
US8321689B2 (en) Watermarking computer code by equivalent mathematical expressions
KR20130007543A (ko) 코드 불변식을 이용한 스테가노그래픽 메시징 시스템
CN102341806A (zh) 软件保护
Rathor et al. IP core steganography using switch based key-driven hash-chaining and encoding for securing DSP kernels used in CE systems
CN111819542A (zh) 编译设备和方法
US20090113553A1 (en) Method and system for hiding information in the instruction processing pipeline
US8661559B2 (en) Software control flow watermarking
CN104765986B (zh) 一种基于隐写术的代码保护及还原方法
KR101810765B1 (ko) 상수 인코딩을 이용한 정적 워터마킹 방법
Jeon et al. A robust steganography-based software watermarking
US11699209B2 (en) Method and apparatus for embedding and extracting digital watermarking for numerical data
Hamilton et al. An evaluation of the resilience of static java bytecode watermarks against distortive attacks
US9547758B2 (en) Program cable obfuscation based upon recently executed program code
CN106874715A (zh) 一种防逆向破解的加密方法及系统
Kumar et al. A comparative analysis of static java bytecode software watermarking algorithms
CN117473470B (zh) 动态水印生成方法及系统、水印溯源方法
EP3834106B1 (en) System and method for watermarking software
Chaurasia et al. Securing Reusable Hardware IP cores using Palmprint Biometric
JP2011120127A (ja) 電子透かし埋込装置、電子透かし読取装置、及びプログラム
JP2002300374A (ja) 電子透かし情報処理を実行させるプログラム
KR101408388B1 (ko) 소프트웨어 저작권 보호를 위한 워터마킹 장치 및 방법
CN113868603A (zh) 一种保护方法、装置、设备及存储介质
Zhang et al. An improved dynamic graph watermark 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