KR100611989B1 - Method and apparatus for generating fingerprint codes - Google Patents

Method and apparatus for generating fingerprint codes Download PDF

Info

Publication number
KR100611989B1
KR100611989B1 KR1020040069090A KR20040069090A KR100611989B1 KR 100611989 B1 KR100611989 B1 KR 100611989B1 KR 1020040069090 A KR1020040069090 A KR 1020040069090A KR 20040069090 A KR20040069090 A KR 20040069090A KR 100611989 B1 KR100611989 B1 KR 100611989B1
Authority
KR
South Korea
Prior art keywords
group
code vectors
basic
code
classified
Prior art date
Application number
KR1020040069090A
Other languages
Korean (ko)
Other versions
KR20060020281A (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 KR1020040069090A priority Critical patent/KR100611989B1/en
Publication of KR20060020281A publication Critical patent/KR20060020281A/en
Application granted granted Critical
Publication of KR100611989B1 publication Critical patent/KR100611989B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)

Abstract

본 발명은 핑거프린트 코드를 생성하는 장치 및 방법에 관한 것으로, 본 발명에 따른 코드벡터 생성 방법은 소정의 코드벡터들의 원소들 중 일부 원소들을 포함하는 기본 코드벡터들을 생성하는 단계; 기본 코드벡터들을 다수의 그룹들로 분류하는 단계; 및 소정의 그룹으로 분류된 기본 코드벡터들과 소정의 그룹 이외의 다른 그룹으로 분류된 기본 코드벡터들을 조합함으로써 코드벡터들을 생성하는 단계를 포함하며, 동일한 조건에서 종래의 방식보다 훨씬 더 많은 핑거프린트 코드들을 생성할 수 있다.The present invention relates to an apparatus and a method for generating a fingerprint code, the method of generating a code vector according to the present invention comprises the steps of: generating basic code vectors including some of the elements of the predetermined code vectors; Classifying the basic codevectors into a plurality of groups; And generating codevectors by combining basic codevectors classified into a predetermined group and basic codevectors classified into a group other than the predetermined group, and in the same conditions, there are much more fingerprints than the conventional scheme. You can generate codes.

Description

핑거프린트 코드 생성 방법 및 장치{Method and apparatus for generating fingerprint codes}Method and apparatus for generating fingerprint codes

도 1은 종래의 ACC에 따른 핑거프린트 코드 생성 방법을 설명하기 위한 도면이다. 1 is a view for explaining a fingerprint code generation method according to a conventional ACC.

도 2는 본 발명의 바람직한 일 실시예에 따른 핑거프린트 코드 생성 장치의 구성도이다.2 is a block diagram of a fingerprint code generation device according to an embodiment of the present invention.

도 3은 도 2에 도시된 계수 치환부(2)에 의해 치환된 코드벡터들을 나타낸 표이다.3 is a table showing code vectors substituted by the coefficient substitution unit 2 shown in FIG.

도 4는 본 발명의 바람직한 일 실시예에 따른 원 코드벡터들 및 확장 코드벡터들을 나타낸 표이다.4 is a table showing original code vectors and extension code vectors according to an embodiment of the present invention.

도 5는 본 발명의 바람직한 일 실시예에 따른 핑거프린트 코드 생성 방법의 구성도이다.5 is a block diagram of a fingerprint code generation method according to an embodiment of the present invention.

본 발명은 디지털 워터마킹에 관한 것으로, 보다 상세하게는 핑거프린트 코드를 생성하는 장치 및 방법에 관한 것이다.The present invention relates to digital watermarking, and more particularly, to an apparatus and method for generating a fingerprint code.

디지털 컨텐츠는 아날로그 컨텐츠와는 달리 정보의 손실 없이 무한 복제가 가능하다는 특징이 있다. 또한, 인터넷이 대중화됨에 따라 디지털 컨텐츠의 불법 복제, 불법 유포, 및 불법 사용이 증가하고 있다. 이에 따라, 디지털 컨텐츠에 대한 불법적 유통을 방지하기 기술로써 디지털 워터마킹(watermarking) 기술이 등장하였다.Unlike analog content, digital content is characterized by infinite copying without loss of information. In addition, as the Internet becomes popular, illegal copying, illegal distribution, and illegal use of digital contents are increasing. Accordingly, digital watermarking technology has emerged as a technology for preventing illegal distribution of digital content.

디지털 워터마킹은 디지털 컨텐츠의 소유권자 정보, 판매권자 정보 등 디지털 컨텐츠에 관한 저작권 정보를 인간이 인지할 수 없는 워터마크로써 해당 디지털 컨텐츠에 삽입함으로써, 나중에 발생할 수도 있는 디지털 컨텐츠에 관한 저작권 분쟁에서 정당한 저작권자를 확인하는데 이용하기 위한 기술이다. Digital watermarking inserts copyright information about digital content such as owner information and distributor information of digital content into the digital content as unrecognizable watermarks, so that the rightful copyright holder in the copyright dispute about digital content that may occur later It is a technique to use to verify.

그런데, 종래의 디지털 워터마킹 기술에 따르면, 디지털 컨텐츠에 삽입되는 워터마크는 디지털 컨텐츠의 저작권을 확인할 수 있는데 그치기 때문에, 만약 워터마킹된 디지털 컨텐츠가 불법 복제되어 유통되고 있을 때, 그 디지털 컨텐츠의 합법적인 저작권자가 누구인지를 알 수 있지만, 누구의 의해 불법 유통이 되었는지는 알 수 없다.However, according to the conventional digital watermarking technology, the watermark inserted in the digital content can confirm the copyright of the digital content, so that when the watermarked digital content is illegally copied and distributed, the legality of the digital content is legal. It is possible to know who is the copyright owner, but not who has been illegally distributed.

이러한 문제를 해결하기 위하여 소위 핑거프린팅(fingerprinting)이란 기술이 제안되었다. 핑거프린팅은 디지털 컨텐츠를 구매한 구매자의 정보를 디지털 컨텐츠에 삽입하는 기술로써, 불법 유통된 디지털 컨텐츠에서 핑거프린트라 불리는 구매자 정보를 추출하여 해당 디지털 컨텐츠의 불법 유통자를 식별할 수 있도록 한 것이다.  In order to solve this problem, a so-called fingerprinting technique has been proposed. Fingerprinting is a technology of inserting information of a buyer who purchases digital content into digital content. The fingerprinting information is extracted from illegally distributed digital content to identify illegal distributors of the digital content.

그런데, 이와 같은 핑거프린팅 기술을 여러 사용자들이 공모하여 공격하는 일들이 발생하게 되었다. 공모 공격(collusion attack)이란 불리는 이러한 공격들에는 여러 가지의 타입들이 존재한다. 그 중, 하나가 여러 사용자들이 그들의 컨텐츠들을 합하여 평균함으로써 추적 불가능한 새로운 핑거프린트 코드를 갖는 컨텐츠를 생성하는 것이다. 이러한 공모 공격에 대항하기 위하여 ACC(Anti-Collusion Codes)란 핑거프린트 코드 생성 방법이 제안되었다. However, many users have conspired to attack such fingerprinting technology. There are several types of these attacks, called collusion attacks. One of them is creating content with a new fingerprint code that is not trackable by several users summing up their contents. In order to counter this collusion attack, a fingerprint code generation method called anti-collusion codes (ACC) has been proposed.

도 1은 종래의 ACC에 따른 핑거프린트 코드 생성 방법을 설명하기 위한 도면이다. 1 is a view for explaining a fingerprint code generation method according to a conventional ACC.

도 1을 참조하면, 종래의 ACC는 BIBD(Balanced Incomplete Block Designs)에 따른 부속 행렬(incidence matrix)을 사용하여 핑거프린트 코드들을 생성한다.Referring to FIG. 1, a conventional ACC generates fingerprint codes using an incidence matrix according to Balanced Incomplete Block Designs (BIBD).

(k-1)의 강인도를 가진 ACC 코드벡터들((k-1)-resilient ACC codevectors)은 (v, k, 1) BIBD의 부속 행렬의 칼럼의 비트 컴플리멘트들(bit complements)로써 정하여진다. 이와 같은 v 차원의 코드벡터들을 사용하여 n=(v2-v)/(k2-k)명의 사용자들을 나타낼 수 있다. The (k-1) -resilient ACC codevectors with a robustness of (k-1) are the bit complements of the columns of the submatrix of (v, k, 1) BIBD. It is decided. Such v-dimensional code vectors may be used to represent n = (v 2 -v) / (k 2 -k) users.

도 1에 도시된 행렬 C는 (7, 3, 1) BIBD의 부속 행렬이며, 7 명의 사용자들을 나타낼 수 있다. 다음과 같이, 행렬 C의 칼럼들이 ACC의 코드벡터들이 된다. 여기에서, 칼럼 벡터들의 계수는 안티포달 형식(antipodal form)을 사용하여 치환되었다. The matrix C shown in FIG. 1 is an adjunct matrix of the (7, 3, 1) BIBD and may represent seven users. As follows, the columns of the matrix C become the code vectors of the ACC. Here, the coefficients of the column vectors were substituted using an antipodal form.

W1 = -U1-U2+U3-U4+U5+U6+U7,W1 = -U1-U2 + U3-U4 + U5 + U6 + U7,

W2 = -U1+U2-U3+U4+U5-U6+U7,W2 = -U1 + U2-U3 + U4 + U5-U6 + U7,

ㆍㆍㆍ   ㆍ ··

W7 = +U1+U2+U3-U4-U5-U6+U7W7 = + U1 + U2 + U3-U4-U5-U6 + U7

도 1에 도시된 바와 같이, W1은 이미지 1에 삽입되고, W2는 이미지 2에 삽입되고, W3은 이미지 3에 삽입되고, W4는 이미지 4에 삽입되고, W5는 이미지 5에 삽입되고, W6은 이미지 6에 삽입되고, W7은 이미지 7에 삽입된다. As shown in Figure 1, W1 is inserted into image 1, W2 is inserted into image 2, W3 is inserted into image 3, W4 is inserted into image 4, W5 is inserted into image 5, and W6 is inserted into It is inserted in image 6 and W7 is inserted in image 7.

사용자 1이 W1이 삽입된 이미지 1을 구매하고, 사용자 2가 W2가 삽입된 이미지 2를 구매하고, 사용자 1과 사용자 2가 공모하는 경우를 예로 들어보자. 이 경우, W1과 W2를 합하여 평균한 값, 즉 (W1+W2)/2는 (-1, 0, 0, 0, 1, 0, 1)이 된다. For example, suppose that User 1 purchases Image 1 with W1 inserted, User 2 purchases Image 2 with W2 inserted, and User 1 and User 2 conspire. In this case, the sum of the sum of W1 and W2, that is, (W1 + W2) / 2 is (-1, 0, 0, 0, 1, 0, 1).

다섯 번째 위치와 일곱 번째 위치에 1이 발생한다는 사실은 사용자 1과 사용자 2가 공모자들임을 식별할 수 있도록 해준다. 왜냐하면, 다섯 번째 위치와 일곱 번째 위치에 1이 발생하는 경우는 (W1+W2)/2가 행해진 경우, 즉 사용자 1과 사용자 2가 공모한 경우에 유일하게 나타나기 때문이다.The fact that 1 occurs in the fifth and seventh positions helps identify that User 1 and User 2 are conspirators. This is because 1 occurs in the fifth and seventh positions only when (W1 + W2) / 2 is performed, that is, when user 1 and user 2 conspire.

이상과 같이, 종래의 ACC는 어떤 코드벡터들의 논리적 합의 값이 다른 코드벡터들의 논리적 합들의 값들에 대하여 유일하다는 특성을 이용하여 공모자들을 색출할 수 있었다. 그러나, 종래의 ACC에 의하면, (v, k, 1) BIBD의 부속 행렬을 사용하여 n=(v2-v)/(k2-k) 명의 사용자들만을 지원할 수 있다는 문제점이 있었다. As described above, the conventional ACC was able to extract conspirators using the property that the logical sum of certain codevectors is unique to the values of logical sums of other codevectors. However, according to the conventional ACC, there is a problem that only n = (v 2 -v) / (k 2 -k) users can be supported by using an auxiliary matrix of (v, k, 1) BIBD.

본 발명이 이루고자 하는 기술적 과제는 동일한 조건에서 종래의 방식보다 훨씬 더 많은 핑거프린트 코드들을 생성할 수 있는 장치 및 방법을 제공하는데 있으며, 상기된 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는데 있다. SUMMARY OF THE INVENTION The present invention has been made in an effort to provide an apparatus and a method capable of generating much more fingerprint codes than the conventional method under the same conditions, which can be read by a computer recording a program for executing the method on a computer. To provide a recording medium.

상기 기술적 과제를 해결하기 위한 본 발명에 따른 코드벡터 생성 방법은 소정의 코드벡터들의 원소들 중 일부 원소들을 포함하는 기본 코드벡터들을 생성하는 단계; 상기 생성된 기본 코드벡터들을 다수의 그룹들로 분류하는 단계; 및 소정의 그룹으로 분류된 기본 코드벡터들과 상기 소정의 그룹 이외의 다른 그룹으로 분류된 기본 코드벡터들을 조합함으로써 코드벡터들을 생성하는 단계를 포함한다.According to an aspect of the present invention, there is provided a method of generating a code vector, the method comprising: generating basic code vectors including some elements among elements of predetermined code vectors; Classifying the generated basic codevectors into a plurality of groups; And generating code vectors by combining the basic code vectors classified into a predetermined group and the basic code vectors classified into a group other than the predetermined group.

상기 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된 코드벡터 생성 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다. In order to solve the above other technical problem, the present invention provides a computer-readable recording medium having recorded thereon a program for executing the above-described code vector generation method on a computer.

이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 바람직한 일 실시예에 따른 핑거프린트 코드 생성 장치의 구성도이다.2 is a block diagram of a fingerprint code generation device according to an embodiment of the present invention.

도 2를 참조하면, 본 실시예에 따른 핑거프린트 코드 생성 장치는 원천 코드벡터 추출부(1), 계수 치환부(2), 기본 코드벡터 생성부(3), 기본 코드벡터 분류부(4), 및 기본 코드벡터 조합부(5)로 구성된다.Referring to FIG. 2, the fingerprint code generating apparatus according to the present embodiment includes a source code vector extractor 1, a coefficient replacer 2, a basic code vector generator 3, and a basic code vector classifier 4. , And a basic code vector combination section 5.

원천 코드벡터 추출부(1)는 BIBD의 부속 행렬로부터 원천 코드벡터들을 추출 한다. 본 실시예에 따르면, 원천 벡터 추출부(1)는 (7, 3, 1) BIBD의 부속 행렬 C의 칼럼 벡터들을 원천 코드벡터들로 한다.The source code vector extractor 1 extracts source code vectors from an adjunct matrix of BIBD. According to the present embodiment, the source vector extracting unit 1 sets the column vectors of the sub-matrix C of the (7, 3, 1) BIBD as source code vectors.

계수 치환부(2)는 원천 코드벡터 추출부(1)에 의해 추출된 원천 코드벡터들의 계수들을 안티포달 형식을 사용하여 치환한다. 즉, 계수 치환부(2)는 계수 "1"은 그대로 두고, 계수 "0"은 "-1"로 치환한다.The coefficient replacement unit 2 replaces the coefficients of the source code vectors extracted by the source code vector extraction unit 1 using an antipodal format. That is, the coefficient replacement part 2 leaves the coefficient "1" as it is, and replaces the coefficient "0" with "-1".

도 3은 도 2에 도시된 계수 치환부(2)에 의해 치환된 코드벡터들을 나타낸 표이다.3 is a table showing code vectors substituted by the coefficient substitution unit 2 shown in FIG.

도 3을 참조하면, 첫 번째 코드벡터는 (-1, -1, 1, -1, 1, 1, 1)이다. 이것은 (7, 3, 1) BIBD의 부속 행렬 C의 첫 번째 칼럼 벡터 (0, 0, 1, 0, 1, 1, 1)를 안티포달 형식을 사용하여 치환한 것이다. 다른 코드벡터들도 이와 같은 방식으로 치환된다. Referring to FIG. 3, the first code vector is (-1, -1, 1, -1, 1, 1, 1). This replaces the first column vector (0, 0, 1, 0, 1, 1, 1) of submatrix C of the (7, 3, 1) BIBD using the antipodal form. Other codevectors are substituted in this way.

기본 코드벡터 생성부(3)는 계수 치환부(2)에 의해 계수가 치환된 원천 코드벡터들의 원소들 중 일부 원소들을 포함하는 기본 코드벡터들을 생성한다. 보다 상세하게 설명하면, 기본 벡터 생성부(3)는 계수 치환부(2)에 의해 계수가 치환된 원천 코드벡터들의 원소들 중 양의 계수의 원소들만을 포함하고, 나머지 원소들은 0으로 한 제 1 기본 코드벡터들을 생성하고, 음의 계수의 원소들만을 포함하고, 나머지 원소들은 0으로 한 제 2 기본 코드벡터들을 생성한다. The basic code vector generation unit 3 generates basic code vectors including some of elements of the original code vectors whose coefficients are replaced by the coefficient replacement unit 2. In more detail, the base vector generating unit 3 includes only elements of positive coefficients among the elements of the source code vectors whose coefficients are replaced by the coefficient substituting unit 2, and the remaining elements are zero. Generate one basic codevectors, and generate second basic codevectors containing only negative coefficient elements, with the remaining elements being zero.

즉, 제 1 기본 코드벡터들은 U3+U5+U6+U7, U2+U4+U5+U7, U2+U3+U4+U6, U1+U4+U6+U7, U1+U3+U4+U5, U1+U2+U5+U6, U1+U2+U3+U7이 될 것이고, 제 2 기본 코드벡터들은 -U1-U2-U4, -U1-U3-U6, -U1-U5-U7, -U2-U3-U5, -U2-U6-U7, -U3-U4-U7, -U4-U5-U6이 될 것이다.That is, the first basic code vectors are U3 + U5 + U6 + U7, U2 + U4 + U5 + U7, U2 + U3 + U4 + U6, U1 + U4 + U6 + U7, U1 + U3 + U4 + U5, and U1 +. U2 + U5 + U6, U1 + U2 + U3 + U7, and the second basic code vectors are -U1-U2-U4, -U1-U3-U6, -U1-U5-U7, -U2-U3-U5 , -U2-U6-U7, -U3-U4-U7, -U4-U5-U6.

기본 코드벡터 분류부(4)는 기본 코드벡터 생성부(3)에 의해 생성된 제 1 기본 코드벡터들을 제 1 그룹으로 분류하고, 기본 코드벡터 생성부(3)에 의해 생성된 제 2 기본 코드벡터들을 제 2 그룹으로 분류한다. The basic codevector classification unit 4 classifies the first basic codevectors generated by the basic codevector generation unit 3 into a first group, and the second basic code generated by the basic codevector generation unit 3. Classify the vectors into the second group.

도 4는 본 발명의 바람직한 일 실시예에 따른 원 코드벡터들 및 확장 코드벡터들을 나타낸 표이다.4 is a table showing original code vectors and extension code vectors according to an embodiment of the present invention.

도 4를 참조하면, U3+U5+U6+U7, U2+U4+U5+U7, U2+U3+U4+U6, U1+U4+U6+U7, U1+U3+U4+U5, U1+U2+U5+U6, U1+U2+U3+U7은 제 1 그룹으로 분류되어 있고, -U1-U2-U4, -U1-U3-U6, -U1-U5-U7, -U2-U3-U5, -U2-U6-U7, -U3-U4-U7, -U4-U5-U6은 제 2 그룹으로 분류되어 있다. 4, U3 + U5 + U6 + U7, U2 + U4 + U5 + U7, U2 + U3 + U4 + U6, U1 + U4 + U6 + U7, U1 + U3 + U4 + U5, U1 + U2 + U5 + U6, U1 + U2 + U3 + U7 are classified into the first group, -U1-U2-U4, -U1-U3-U6, -U1-U5-U7, -U2-U3-U5, -U2 -U6-U7, -U3-U4-U7, -U4-U5-U6 are classified into the second group.

기본 코드벡터 조합부(5)는 기본 코드벡터 분류부(4)에 의해 제 1 그룹으로 분류된 제 1 코드벡터들과 제 2 그룹으로 분류된 제 2 기본 코드벡터들을 조합함으로써 확장 코드벡터들을 생성한다. The basic codevector combiner 5 generates extended codevectors by combining the first codevectors classified into the first group by the basic codevector classifier 4 and the second basic codevectors classified into the second group. do.

보다 상세하게 설명하면, 기본 코드벡터 조합부(5)는 제 1 그룹으로 분류된 기본 코드벡터들과 제 2 그룹으로 분류된 기본 코드벡터들을 서로 다르게 짝 지음으로써 원 코드벡터들(original codevectors)을 생성한다. 도 4를 참조하면, 첫 번째 원 코드벡터는 제 1 그룹으로 분류된 기본 코드벡터들 중 U3+U5+U6+U7과 제 1 그룹으로 분류된 기본 코드벡터들 중 -U1-U2-U4를 짝 지은 것이다.In more detail, the base code vector combination unit 5 matches the original code vectors classified into the first group with the base code vectors classified into the second group differently. Create Referring to FIG. 4, the first circle code vector is paired with U3 + U5 + U6 + U7 among the basic code vectors classified into the first group and -U1-U2-U4 among the basic code vectors classified into the first group. It is built.

또한, 기본 코드벡터 조합부(5)는 제 1 그룹으로 분류된 기본 코드벡터들과 제 2 그룹으로 분류된 기본 코드벡터들의 계수들을 안티포달 형식을 사용하여 치환 하고, 이것들을 서로 다르게 짝 지음으로써 확장 코드벡터들(extended codevectors)을 생성한다. 이때, 치환의 결과로서 제 1 그룹으로 분류된 기본 코드벡터들은 제 2 그룹이 되고, 제 2 그룹으로 분류된 기본 코드벡터들은 제 1 그룹이 된다. Also, the base code vector combination unit 5 replaces coefficients of the base code vectors classified into the first group and the base code vectors classified into the second group by using an antipodal form, and pairs them differently. Generate extended codevectors. At this time, as a result of the substitution, the basic code vectors classified into the first group become the second group, and the basic code vectors classified into the second group become the first group.

도 4를 참조하면, 첫 번째 확장 코드벡터는 원 코드벡터들 중 일곱 번째 코드벡터의 그룹 B의 기본 코드벡터 -U4-U5-U6을 안티포달 형식을 사용하여 치환한 U4+U5+U6과 원 코드벡터들 중 첫 번째 코드벡터의 그룹 A의 기본 코드벡터 U3+U5+U6+U7의 계수들을 안티포달 형식을 사용하여 치환한 -U3-U5-U6-U7을 짝 지은 것이다. 이와 같은 방식으로 조합될 수 있는 원 코드벡터들의 개수는 (7-1)!이다. Referring to FIG. 4, the first extended code vector includes a circle U4 + U5 + U6 and a circle in which the base code vector -U4-U5-U6 of the group B of the seventh code vector of the original code vectors is substituted using an antipodal format. A pair of -U3-U5-U6-U7 paired with the coefficients of the base code vector U3 + U5 + U6 + U7 of the group A of the first codevector of the codevectors using an antipodal form. The number of original code vectors that can be combined in this manner is (7-1)!

본 실시예에서 총 조합될 수 있는 코드벡터들의 개수는 (7-1)! x 2이다. 따라서, (7, 3, 1) BIBD의 부속 행렬 C에 기초하여 생성할 수 있는 코드벡터들의 개수는 종래 ACC에 의하면 7개이었지만, 본 실시예에 의하면 (7-1)! x 2 = 1440개가 된다. In this embodiment, the total number of code vectors that can be combined is (7-1)! x 2. Therefore, the number of code vectors that can be generated based on the submatrix C of the (7, 3, 1) BIBD is seven according to the conventional ACC, but according to this embodiment (7-1)! x 2 = 1440.

결국, v 차원의 코드벡터들을 가지며, (k-1)의 강인도를 가진 (v, k, 1) BIBD의 부속 행렬을 사용하여 핑거프린트 코드를 생성하는 경우, 종래의 ACC에 의하면, n=(v2-v)/(k2-k) 명의 사용자들만을 지원할 수 있었지만, 본 실시예에 의하면 (n-1)! x 2 명의 사용자들을 지원할 수 있다.After all, in the case of generating a fingerprint code using the sub-matrix of (v, k, 1) BIBD having the code vectors of the dimensional dimension and having a stiffness of (k-1), according to the conventional ACC, n = Only (v 2 -v) / (k 2 -k) users could be supported, but according to this embodiment, (n-1)! x 2 users can be supported.

도 2에 도시된 바와 같이, 핑거프린트 코드 생성 장치에 의하여 생성된 코드벡터들은 이미지 1부터 이미지 1440까지 할당될 수 있다. 이때, 제 1 그룹의 기본 코드벡터들은 이미지의 영역 A에 할당하고, 제 2 그룹의 기본 코드벡터들은 이미지의 영역 B에 할당함으로써 핑거프린트 코드 생성 장치에 의하여 생성된 코드벡터들이 1440 개의 이미지들에 대해 서로 다른 핑거프린트 코드로 작용할 수 있도록 할 수 있다. As shown in FIG. 2, code vectors generated by the fingerprint code generating apparatus may be allocated from image 1 to image 1440. In this case, the basic code vectors of the first group are allocated to the region A of the image, and the basic code vectors of the second group are allocated to the region B of the image so that the code vectors generated by the fingerprint code generating apparatus are assigned to 1440 images. It can be used for different fingerprint codes.

다음은 본 실시예에 따라 생성된 핑거프린트 코드들을 사용하여 사용자들을 식별하는 예이다. 이미지 1을 구매한 사용자 1과 이미지 2를 구매한 사용자 2가 공모하였다고 하자. 이때, 이미지들에 삽입된 핑거프린트코드는 다음과 같다.The following is an example of identifying users using the fingerprint codes generated according to the present embodiment. Suppose User 1, who purchased Image 1, and User 2, who purchased Image 2. In this case, the fingerprint codes inserted into the images are as follows.

W1 = [ U3 + U5 + U6 + U7 ] 영역 A ∥ [ - U1 - U2 - U4 ]W1 = [U3 + U5 + U6 + U7] Area A ∥ [-U1-U2-U4]

W2 = [ U2 + U4 + U5 + U7 ] 영역 A ∥ [ - U1 - U3 - U6 ]W2 = [U2 + U4 + U5 + U7] Area A ∥ [-U1-U3-U6]

공모에 의해 생성된 핑거프린트 코드는 다음과 같다.The fingerprint code generated by the competition is as follows.

│(W1+W2)/2│= (0, 0.5, 0.5, 0.5, 1, 0.5, 1) 영역 A ∥ (1, 0.5, 0.5, 0.5, 0, 0.5, 0) 영역 B│ (W1 + W2) / 2│ = (0, 0.5, 0.5, 0.5, 1, 0.5, 1) Region A ∥ (1, 0.5, 0.5, 0.5, 0, 0.5, 0) Region B

영역 A의 다섯 번째 위치와 일곱 번째 위치에 1이 발생한다는 사실과 영역 B의 첫 번째 위치에서 1이 발생한다는 사실로부터 사용자 1과 사용자 2가 공모자들임을 식별할 수 있도록 해준다. 왜냐하면, 영역 A의 다섯 번째 위치와 일곱 번째 위치에 1이 발생하고, 영역 B의 첫 번째 위치에서 1이 발생하는 경우는 (W1+W2)/2가 행해진 경우, 즉 사용자 1과 사용자 2가 공모한 경우에 유일하게 나타나기 때문이다. The fact that 1 occurs in the fifth and seventh positions of region A, and that 1 occurs in the first position of region B, helps identify User 1 and User 2 as contributors. Because 1 occurs in the fifth and seventh positions of the area A, and 1 occurs in the first position of the area B when (W1 + W2) / 2 is performed, that is, User 1 and User 2 collude. It is because it appears only in one case.

도 5는 본 발명의 바람직한 일 실시예에 따른 핑거프린트 코드 생성 방법의 구성도이다.5 is a block diagram of a fingerprint code generation method according to an embodiment of the present invention.

도 5를 참조하면, 본 실시예에 따른 핑거프린트 코드 생성 방법은 다음과 같은 단계들로 구성된다. 본 핑거프린트 코드 생성 방법은 도 2에 도시된 핑거프린트 코드 생성 장치에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 핑거프린트 코드 생성 장치에 관하여 이상에서 기술된 내용은 본 핑거프린트 생성 방법에도 적용된다.Referring to FIG. 5, the fingerprint code generation method according to the present embodiment includes the following steps. The fingerprint code generation method includes steps that are processed in a time series in the fingerprint code generation device shown in FIG. 2. Therefore, even if omitted below, the above description of the fingerprint code generating apparatus is applied to the present fingerprint generating method.

11 단계에서 핑거프린트 코드 생성 장치는 BIBD의 부속 행렬로부터 원천 코드벡터들을 추출한다. In operation 11, the fingerprint code generating apparatus extracts source code vectors from an auxiliary matrix of BIBD.

12 단계에서 핑거프린트 코드 생성 장치는 11 단계에서 추출된 원천 코드벡터들의 계수들을 안티포달 형식을 사용하여 치환한다.In operation 12, the fingerprint code generating apparatus replaces coefficients of the source code vectors extracted in operation 11 using an antipodal format.

13 단계에서 핑거프린트 코드 생성 장치는 12 단계에서 계수가 치환된 원천 코드벡터들의 원소들 중 일부 원소들을 포함하는 기본 코드벡터들을 생성한다. 보다 상세하게 설명하면, 13 단계에서 핑거프린트 코드 생성 장치는 12 단계에서 계수가 치환된 원천 코드벡터들의 원소들 중 양의 계수의 원소들만을 포함하고, 나머지 원소들은 0으로 한 제 1 기본 코드벡터들을 생성하고, 음의 계수의 원소들만을 포함하고, 나머지 원소들은 0으로 한 제 2 기본 코드벡터들을 생성한다. In operation 13, the fingerprint code generating apparatus generates basic code vectors including some elements of elements of the source code vectors whose coefficients are substituted in operation 12. More specifically, in step 13, the fingerprint code generating apparatus includes only elements of positive coefficients among the elements of the source code vectors whose coefficients are substituted in step 12, and the remaining elements are set to 0, the first basic code vector. Generate second basic codevectors containing only elements of negative coefficients and zeroing the remaining elements.

14 단계에서 핑거프린트 코드 생성 장치는 13 단계에서 생성된 제 1 기본 코드벡터들을 제 1 그룹으로 분류하고, 기본 코드벡터 생성부(3)에 의해 생성된 제 2 기본 코드벡터들을 제 2 그룹으로 분류한다. In operation 14, the fingerprint code generating apparatus classifies the first basic code vectors generated in operation 13 into a first group, and classifies the second basic code vectors generated by the basic code vector generator 3 into a second group. do.

15 단계에서 핑거프린트 코드 생성 장치는 14 단계에서 제 1 그룹으로 분류된 제 1 코드벡터들과 제 2 그룹으로 분류된 제 2 기본 코드벡터들을 조합함으로써 확장 코드벡터들을 생성한다. In operation 15, the fingerprint code generating apparatus generates extension code vectors by combining the first code vectors classified into the first group and the second basic code vectors classified into the second group.

보다 상세하게 설명하면, 15 단계에서 핑거프린트 코드 생성 장치는 14 단계에서 제 1 그룹으로 분류된 기본 코드벡터들과 제 2 그룹으로 분류된 기본 코드벡터들을 서로 다르게 짝 지음으로써 원 코드벡터들을 생성한다. In more detail, in step 15, the fingerprint code generating apparatus generates original code vectors by pairing the base code vectors classified into the first group and the base code vectors classified into the second group differently. .

또한, 15 단계에서 핑거프린트 코드 생성 장치는 14 단계에서 제 1 그룹으로 분류된 기본 코드벡터들과 제 2 그룹으로 분류된 기본 코드벡터들의 계수들을 안티포달 형식을 사용하여 치환하고, 이것들을 서로 다르게 짝 지음으로써 확장 코드벡터들을 생성한다. 이때, 치환의 결과로서 제 1 그룹으로 분류된 기본 코드벡터들은 제 2 그룹이 되고, 제 2 그룹으로 분류된 기본 코드벡터들은 제 1 그룹이 된다. In operation 15, the fingerprint code generating apparatus replaces the coefficients of the basic code vectors classified into the first group and the basic code vectors classified into the second group by using an antipodal format in step 14, and different them from each other. Create extended codevectors by pairing. At this time, as a result of the substitution, the basic code vectors classified into the first group become the second group, and the basic code vectors classified into the second group become the first group.

한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium.

상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.The computer-readable recording medium may be a magnetic storage medium (for example, a ROM, a floppy disk, a hard disk, etc.), an optical reading medium (for example, a CD-ROM, DVD, etc.) and a carrier wave (for example, the Internet). Storage medium).

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관 점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.

본 발명에 따르면, 동일한 조건에서 종래의 방식보다 훨씬 더 많은 핑거프린트 코드들을 생성할 수 있다는 효과가 있다. 즉, v 차원의 코드벡터들을 가지며, (k-1)의 강인도를 가진 (v, k, 1) BIBD의 부속 행렬을 사용하여 핑거프린트 코드를 생성하는 경우, 종래의 ACC에 의하면, n=(v2-v)/(k2-k) 명의 사용자들만을 지원할 수 있었지만, 본 발명에 의하면 (n-1)! x 2 명의 사용자들을 지원할 수 있다.According to the present invention, there is an effect that it is possible to generate much more fingerprint codes than the conventional method under the same conditions. That is, in the case of generating a fingerprint code using the sub-matrix of (v, k, 1) BIBD having v-dimensional code vectors and having a stiffness of (k-1), according to the conventional ACC, n = Only (v 2 -v) / (k 2 -k) users could be supported, but according to the present invention, (n-1)! x 2 users can be supported.

또한, 원천 코드벡터 당 지원할 수 있는 사용자들의 수를 효율 E라 할 때, 종래의 ACC에 의하면, E = n / v 이지만, 본 발명에 의하면, E = [n + (n-1)!] / v 로써 훨씬 더 좋은 효율을 나타낸다. In addition, when the number of users that can be supported per source code vector is E, according to the conventional ACC, E = n / v, but according to the present invention, E = [n + (n-1)!] / v represents much better efficiency.

Claims (5)

(a) 코드 생성 장치가 소정의 코드벡터들의 원소들 중 일부 원소들을 포함하는 기본 코드벡터들을 생성하는 단계; (a) generating, by the code generating apparatus, basic codevectors including some of the elements of the predetermined codevectors; (b) 상기 코드 생성 장치가 상기 생성된 기본 코드벡터들을 상기 기본 코드 벡터들의 값에 기초하여 다수의 그룹들로 분류하는 단계; 및(b) the code generating apparatus classifying the generated basic codevectors into a plurality of groups based on values of the basic codevectors; And (c) 상기 코드 생성 장치가 소정의 그룹으로 분류된 기본 코드벡터들과 상기 소정의 그룹 이외의 다른 그룹으로 분류된 기본 코드벡터들을 조합함으로써 코드벡터들을 생성하는 단계를 포함하는 것을 특징으로 하는 코드벡터 생성 방법.and (c) generating, by the code generating apparatus, the code vectors by combining the base code vectors classified into a predetermined group and the base code vectors classified into a group other than the predetermined group. Vector generation method. 제 1 항에 있어서,The method of claim 1, 상기 소정의 그룹으로 분류된 기본 코드벡터들과 상기 다른 그룹으로 분류된 기본 코드벡터들은 이미지의 서로 다른 영역들에 할당되는 것을 특징으로 하는 코드벡터 생성 방법.And the basic code vectors classified into the predetermined group and the basic code vectors classified into the other group are allocated to different regions of the image. 제 1 항에 있어서,The method of claim 1, 상기 (b) 단계는 양의 계수의 원소들만을 포함하는 기본 코드벡터들을 제 1 그룹으로 분류하고, 음의 계수의 원소들만을 포함하는 기본 코드벡터들을 제 2 그룹으로 분류하고,In step (b), the basic code vectors including only elements of positive coefficients are classified into a first group, and the basic code vectors including only elements of negative coefficients are classified into a second group. 상기 (c) 단계는 상기 제 1 그룹으로 분류된 기본 코드벡터들과 상기 제 2 그룹으로 분류된 기본 코드벡터들을 서로 다르게 짝을 지음으로써 상기 코드벡터들을 생성하는 것을 특징으로 하는 코드벡터 생성 방법.In the step (c), the code vectors are generated by pairing the base code vectors classified into the first group and the base code vectors classified into the second group differently. 제 3 항에 있어서,The method of claim 3, wherein 상기 (c) 단계는 상기 제 1 그룹으로 분류된 기본 코드벡터들과 상기 제 2 그룹으로 분류된 기본 코드벡터들의 계수들을 안티포달의 형식을 사용하여 치환하고, 상기 계수들이 치환된 기본 코드벡터들을 서로 다르게 짝을 지음으로써 상기 코드벡터들 중 확장 코드벡터들을 생성하는 것을 특징으로 하는 코드벡터 생성 방 법.In the step (c), the coefficients of the basic code vectors classified into the first group and the basic code vectors classified into the second group are replaced using an antipodal form, and the basic code vectors substituted with the coefficients are replaced. And generating extended codevectors among the codevectors by pairing differently. 제 1 항 내지 제 4 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체. A computer-readable recording medium having recorded thereon a program for executing the method of any one of claims 1 to 4.
KR1020040069090A 2004-08-31 2004-08-31 Method and apparatus for generating fingerprint codes KR100611989B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040069090A KR100611989B1 (en) 2004-08-31 2004-08-31 Method and apparatus for generating fingerprint codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040069090A KR100611989B1 (en) 2004-08-31 2004-08-31 Method and apparatus for generating fingerprint codes

Publications (2)

Publication Number Publication Date
KR20060020281A KR20060020281A (en) 2006-03-06
KR100611989B1 true KR100611989B1 (en) 2006-08-11

Family

ID=37127455

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040069090A KR100611989B1 (en) 2004-08-31 2004-08-31 Method and apparatus for generating fingerprint codes

Country Status (1)

Country Link
KR (1) KR100611989B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100837256B1 (en) * 2006-09-06 2008-06-12 한국과학기술원 Method for making anti-collusion fingerprint codes from the semi regular GD-PBIBD with parameters ?^?, ?^2?-2,?^?-1,?,0,1
US20120317421A1 (en) * 2012-06-19 2012-12-13 Concurix Corporation Fingerprinting Executable Code

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010050788A (en) * 1999-09-30 2001-06-25 니시무로 타이죠 Code generating method and unit thereof, code detecting method and unit thereof, and watermark embedding unit and watermark detecting unit
KR20010102892A (en) * 2001-10-18 2001-11-17 최종욱 Method for watermarking of vector image
JP2002152486A (en) 2000-11-07 2002-05-24 Zenrin Co Ltd Digital watermarking processing method for vector type image data and digital watermarking information control system
WO2002101519A2 (en) * 2001-06-08 2002-12-19 Cloakware Corporation Method and system for generating sustainable digital watermarks
KR20040015911A (en) * 2002-08-14 2004-02-21 학교법인대우학원 A Blind Watermarking Method by Grouping Codewords for VQ-Quantized Images

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010050788A (en) * 1999-09-30 2001-06-25 니시무로 타이죠 Code generating method and unit thereof, code detecting method and unit thereof, and watermark embedding unit and watermark detecting unit
JP2002152486A (en) 2000-11-07 2002-05-24 Zenrin Co Ltd Digital watermarking processing method for vector type image data and digital watermarking information control system
WO2002101519A2 (en) * 2001-06-08 2002-12-19 Cloakware Corporation Method and system for generating sustainable digital watermarks
KR20010102892A (en) * 2001-10-18 2001-11-17 최종욱 Method for watermarking of vector image
KR20040015911A (en) * 2002-08-14 2004-02-21 학교법인대우학원 A Blind Watermarking Method by Grouping Codewords for VQ-Quantized Images

Also Published As

Publication number Publication date
KR20060020281A (en) 2006-03-06

Similar Documents

Publication Publication Date Title
Arnold et al. Techniques and applications of digital watermarking and content protection
US8051492B2 (en) System and method for tracing tardos fingerprint codes
JP4406642B2 (en) Data fingerprinting method
Lu Multimedia security: steganography and digital watermarking techniques for protection of intellectual property: steganography and digital watermarking techniques for protection of intellectual property
Cox et al. Digital watermarking and steganography
Barni et al. Data hiding for fighting piracy
EP1256086B1 (en) Methods and apparatus for multi-layer data hiding
US20030190054A1 (en) Method and system for distributing digital content with embedded message
JP2005227756A (en) Desynchronized fingerprinting method and system, for digital multimedia data
JP2010158024A (en) Fingerprinting of data object
US7899205B2 (en) Data content identification
JP2005503621A (en) Using multiple watermarks to protect content material
US20130290330A1 (en) Method for extracting fingerprint of publication, apparatus for extracting fingerprint of publication, system for identifying publication using fingerprint, and method for identifying publication using fingerprint
CN101410832B (en) Systems and methods of extracting and identifying DVD optical disc fingerprint
CN108564520B (en) GIS vector data copyright authentication method based on Moran index
KR100611989B1 (en) Method and apparatus for generating fingerprint codes
KR20070076130A (en) Information embedding and extracting method for image authentification
KR20090030454A (en) Watermark inserting method to vector data for using azimuth information and watermark detecting method to the same
Kim et al. A content-based fragile watermarking scheme for image authentication
KR100652009B1 (en) Fingerprinting code structure and collusion customer identifying method using the same
KR100722924B1 (en) Averaging attack resilient digital fingerprinting method using GD-PBIBD
JP3692902B2 (en) Watermark information embedding device, watermark information embedding method, watermark information reading device, and watermark information reading method
JP3774631B2 (en) Information embedding device, information restoring device and method, computer program, and storage medium
KR101601562B1 (en) Method and Device for Extracting Fingerprint of Text Content
JP2743917B1 (en) Card type recording medium and its validity verification method

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
FPAY Annual fee payment

Payment date: 20120730

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130730

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140730

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150730

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160728

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee