3d fragile watermarking techniques-3

Upload: sanketiiit

Post on 09-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 3d Fragile Watermarking Techniques-3

    1/12

    Computer-Aided Design 38 (2006) 11541165

    www.elsevier.com/locate/cad

    A public fragile watermarking scheme for 3D model authentication

    Chang-Min Choua,b,, Din-Chang Tsenga

    aInstitute of Computer Science and I nformation Engineering, National Central University, No. 300, Jungda Road, Jhongli City, Taoyuan, 320, TaiwanbDepartment of Electronic Engineering, Ching Yun University, No. 229, Cheng-Shing Road, Jhongli City, Taoyuan, 320, Taiwan

    Received 14 October 2005; accepted 29 June 2006

    Abstract

    A public fragile watermarking scheme based on the sensitivity of vertex geometry is proposed for 3D model authentication. In the 3D fragile

    watermarking embedding, slightly perturbing the positions of a subset of vertices is usually needed to keep them in some predefined relationship

    with their neighboring vertices. Two problems frequently arise in the embedding stage: the causality problem and the convergence problem. The

    causality problem arises while the neighboring relationship of a former processed vertex is influenced by the perturbing of its latter processed

    neighboring vertices. The convergence problem means that the original model has been heavily distorted before some vertices reach the predefined

    relationship. In this paper, we propose a multi-function vertex embedding method and an adjusting-vertex method to overcome these two problems.

    The proposed method does not need the original model and watermarks for authentication; moreover, the key for extracting watermarks is relatively

    smaller than that of previous works. For some artistic or technical models, sometimes it is very important to control the distortion ratio caused

    by watermark embedding. Our method can control the average distortion by the keys used in watermark embedding. Experimental and analytic

    results on various kinds of 3D models show the effectiveness of the scheme.c 2006 Elsevier Ltd. All rights reserved.

    Keywords: 3D authentication; Digital signature; Fragile watermarking; Tamper detection

    1. Introduction

    With the explosive growth of the Internet and the

    development of digital content designing and processing

    techniques, many valuable materials can be represented in

    digital form for exhibition and access via the Internet. Due

    to the characteristic of easy duplication and modification of

    digital content, it is necessary to develop a variety of digital

    signature or watermarking techniques for various protection

    purposes such as model authentication and ownership claiming.

    Digital signatures are designed for the receiver of electronic

    documents to verify the identity of the sender and tocheck the originality of the documents. The watermarking

    schemes are usually designed for the sender to check the

    copyright ownership (robust watermarking) or for the receiver

    to verify the authentication of the received media (fragile

    watermarking). The main difference between digital signature

    Corresponding author at: Institute of Computer Science and InformationEngineering, National Central University, No. 300, Junda Road, Jhongli City,Taoyuan, 320, Taiwan. Tel.: +886 3 4227151x35202; fax: +886 3 4222681.

    E-mail address: [email protected] (C.-M. Chou).

    and watermarking techniques is that the former attaches a small

    piece of information (the digital signature) transmitted with

    the original documents whereas the latter embeds invisible

    information (the watermarks) in the original media.Encryption techniques can be symmetric or asymmetric [1].

    Generally speaking, asymmetric methods have better security

    but are very computationally expensive when compared with

    symmetric methods. A compensation scheme is to encrypt

    the digital contents by a symmetric method and then encrypt

    the symmetric key by an asymmetric method. A typical

    digital signature scheme extracts a message digest from the

    original document and then encrypts the message digest byan asymmetric method. The message digest can represent the

    original document in such a way that two different message

    digests will be generated for two different documents even if

    they have only one bit of difference. The encrypted message

    digest is attached to the original document and transmitted to

    the receiver. Although all data types can be treated as binary

    data files and encrypted by digital signature schemes, directly

    applying digital signatures for large multimedia data sets is

    still costly and computationally expensive [1,2]. Instead of

    using digital signatures for all kinds of electronic documents,

    0010-4485/$ - see front matter c 2006 Elsevier Ltd. All rights reserved.

    doi:10.1016/j.cad.2006.06.009

    http://www.elsevier.com/locate/cadmailto:[email protected]://dx.doi.org/10.1016/j.cad.2006.06.009http://dx.doi.org/10.1016/j.cad.2006.06.009mailto:[email protected]://www.elsevier.com/locate/cad
  • 8/8/2019 3d Fragile Watermarking Techniques-3

    2/12

    C.-M. Chou, D.-C. Tseng / Computer-Aided Design 38 (2006) 11541165 1155

    Table 1

    A comparison of fragile watermarking and digital signature as applied to 3D

    models

    Functions Digital

    signature

    Fragile watermarking

    Verify the identity of the sender Yes No

    Check the integrity of the

    documents

    Yes Yes

    Locate the changed regions No Yes

    Implementation cost High Low

    Computation speed Slow Fast

    Application fields General Particular

    researchers develop various watermarking schemes for various

    multimedia data types such as video, audio, images, and

    3D models. Watermarks can be invisibly/inaudibly embedded

    in these media by altering some of their lower significant

    bits. Watermarking schemes usually dont need any complex

    computation (at most a FFT or wavelet transform [3] is used);

    thus they can be performed in a fast and low cost way compared

    with digital signature schemes.According to the application purpose, watermarking

    techniques can be classified into robust and fragile schemes.

    Robust watermarking is usually designed for ownership

    claiming while fragile watermarking is used for digital content

    authentication and verification. The design goal of robust

    watermarking is to make the embedded watermarks remain

    detectable after being attacked. In contrast, the requirements

    of fragile watermarking are to detect the slightest unauthorized

    modifications and locate the changed regions. According to the

    extraction strategies of watermarks, watermarking schemes can

    be classified into the private and the public approach. A private

    watermarking scheme needs the original model and watermarkto extract the embedded watermarks while a public (or so-called

    blind) scheme can extract watermarks in the absence of the

    original model and watermark. On the other hand, a semi-

    public watermarking scheme does not need the original model

    in the watermark extraction stage, but the original watermark

    is necessary for comparing with the extracted watermark.

    The word public used in watermarking schemes is different

    from that represented in cryptography schemes. All fragile

    watermarking schemes are public, since it makes no sense

    to use a private fragile watermark. Possible applications of

    public fragile watermarking include demonstrating that digital

    material has not been changed (or has been changed) in

    an official situation (e.g., in a court) and to confirm the

    received digital material has not been changed at the receiver

    end. The functions of the 3D fragile watermarking scheme

    are similar to that of a digital signature. Both schemes can

    check the originality of the received 3D models. Digital

    signatures can verify the identity of the sender while the 3D

    fragile watermarking can locate the changed regions. Moreover,

    for 3D models, the 3D fragile watermarking is superior to

    the digital signature scheme in its easy implementation and

    faster computation. A comparison of these two schemes is

    summarized in Table 1.

    In 3D fragile watermark embedding, slightly perturbing the

    positions of a subset of vertices is usually needed to keep

    them in some predefined relationship with their neighboring

    vertices. Two problems frequently arise in the embedding

    stage: the causality problem and the convergence problem. The

    causality problem arises when the neighboring relationship of

    a former processed vertex is influenced by the perturbing of its

    later processed neighboring vertices. The convergence problem

    means that the original model has been heavily distorted beforesome vertices reach the predefined relationship. In this paper,

    we propose a multi-function vertex embedding method and

    an adjusting-vertex method to overcome these two problems.

    The proposed method does not need the original model and

    watermarks for authentication; moreover, the key for extracting

    watermarks is relatively smaller than that of previous works.

    For some artistic or technical models, sometimes it is very

    important to control the distortion ratio caused by watermark

    embedding. Our method can control the average distortion by

    the keys used in watermark embedding.

    The remaining sections of this paper are organized as

    follows. A brief review of the robust and fragile 3D

    watermarking schemes is given in Section 2, where thecausality and convergence problems are also discussed. The

    proposed watermarking embedding scheme is described in

    Section 3; moreover, we illustrate how to examine the

    originality of the received 3D model and how to locate the

    changed regions by the proposed method. We discuss the

    control of the distortion caused by the watermark embedding

    in Section 4. In this section, a variant scheme which attaches

    a watermark digest with the original model instead of

    embedding watermarks in the original model is presented.

    Finally, experimental results and concluding summaries are

    provided in Section 5.

    2. Previous work and problems

    Watermarking techniques for still images have been

    widely studied and investigated in recent years. On the

    other hand, watermarking for 3D models gets relatively

    less notice. Initially, Ohbuchi et al. [46] proposed a

    large variety of techniques for embedding data into 3D

    polygonal models. Benedens and Busch [7,8] embedded

    private watermarks by altering 3D object with a normal

    distribution. Their watermarking systems achieved robustness

    against randomization of vertices, mesh altering (re-meshing),

    and polygon simplification operations. Praun et al. [9] proposed

    a sophisticated robust mesh watermarking scheme. They firstconstructed a set of scalar basis functions over the mesh vertices

    using multi-resolution analysis [10] and then perturbed vertices

    along the direction of the surface normal weighted by the basis

    functions. Their watermarking scheme is resistant to common

    mesh attacks such as translation, rotation, scaling, cropping,

    smoothing, simplification, and re-sampling operations. These

    above researches concentrated on 3D robust watermarking

    techniques.

    Yeo and Yeung are the pioneers for discussing 3D fragile

    watermarking [11]. They computed two indices for every

    vertex: the location index and the value index. For each vertex

    v, the location index is calculated by a hash function according

  • 8/8/2019 3d Fragile Watermarking Techniques-3

    3/12

    1156 C.-M. Chou, D.-C. Tseng / Computer-Aided Design 38 (2006) 11541165

    to the coordinates of it and its neighboring vertices, while the

    value index is calculated by another hash function based on

    its coordinates. Then they slightly perturbed every vertex to

    make these two indices equal. Unauthorized modifications willbe detected in the watermark extraction phase by checking the

    difference between these two indices. The scheme is both public

    and fragile, but there are two disadvantages:(i) The causality problem: The location index of a former

    processed vertex will be changed by the perturbing of

    later processed neighboring vertices. As one example,

    illustrated in Fig. 1, suppose we process vertices in the

    order v0, v1, v2, . . . , vn , we first process and perturb v0to make its value index (calculated from its coordinates)

    being equal to its location index (calculated from the

    coordinates of it and its neighboring vertices). However,

    the location index of v0 will be changed when we processand perturb v1 to adjust its value index. The same situation

    occurred when the following vertices are processed. To

    avoid the causality problem, we need to perturb vertices

    in a predefined order (v0, v1, v2, . . . , vn) and constrain thecalculation of the location index for each vertex only to

    involve the vertices that have been processed. For example,

    in Fig. 1, the calculation of the location index of v0 should

    only involve itself. The calculation of the location indexof v1 should only involve v0 and v1. The calculation of

    the location index of v2 can only involve v0, v1 and v2,

    and so on. This constraint can avoid the causality problem.

    A drawback of this constraint is that the capability fordetecting modification will be ruined if the predefined

    traverse order has been changed or became untraceable. For

    example, a simple model simplification (vertex decimation)

    or vertex re-numbering operation may totally disable thecapability of the scheme.(ii) The convergence problem: In the vertex perturbing stage,

    it requires perturbing the vertices of the whole model to

    make the value index and the location index of every vertex

    equal. In practice, some vertices may need to be perturbed

    more and more to satisfy the requirement as in the exampleillustrated in Fig. 2. In the figure, v0 has to be perturbed to a

    position that heavily distorts the original structure to make

    its two indices equal. It is possible that the requirement

    is met only when the model has been heavily distorted orthe requirement can never be met. Another disadvantage

    coming from the convergence problem is that the user can

    not control the distortion induced by the perturbing process.

    Fornaro and Sanna [12] proposed a public key approach

    for authentication of Constructive Solid Geometry (CSG)

    models. They computed watermarks from a model followed

    by a watermark encryption operation and then attached theencrypted watermarks to the solids or comments of the CSG

    models. The advantage of the method is that no modification

    on the original 3D model is needed and this characteristic

    is sometimes very important to some artistic or technicalmodels. The drawback of this scheme is that it can only tell

    if a model has been modified, but can not locate the modified

    regions. To locate modifications is an important issue in 3D

    fragile watermarking.

    Fig. 1. An example of the causality problem.

    Fig. 2. An example of the convergence problem.

    Lin et al. [13] proposed a scheme similar to Yeo and Yeungs

    method [11]. Their method eliminates the causality problem by

    applying two different hash functions on the vertex coordinates,

    without considering the neighboring vertices of a vertex. In the

    embedding stage, they slightly perturbed every vertex making

    these two hash function values equal; however, the convergence

    problem still occurs in this scheme. To avoid heavy distortion

    due to vertex perturbing, they set a threshold and simply skipthe vertices that could not meet the requirement under the

    threshold. This causes some embedding holes which cause

    false-alarms in the watermark detection stage.

    Wu and Cheung [14] proposed a fragile watermarking

    scheme for authenticating 3D mesh models. The watermark

    embedded by the method is invariant to translation, rotation,

    and uniform scaling, but is sensitive to other operations.

    The main idea of the method is to keep the ratio between

    the distance from the mesh center to each surface face

    and a quantization step remaining the same after the model

    is translated, rotated, or uniformly scaled. There are two

    major drawbacks in this scheme. Firstly, it is a semi-publicwatermarking scheme since the original watermark is needed

    in the decoding stage to authenticate the watermarked model.

    In fragile watermarking, a pure public watermarking scheme is

    preferred since we dont want to pay extra cost for encrypting

    the original watermark. Secondly, it fails in locating the

    changed regions since the center position of the mesh will be

    changed once any vertex has been changed. In our opinion, the

    ability of locating the changed region is important for fragile

    watermarking. However, their concept of invariant geometry

    transformation is worth further study since the transformation

    does not affect the integrity of the mesh. No other paper

    discussing the topic has been published as yet.

  • 8/8/2019 3d Fragile Watermarking Techniques-3

    4/12

    C.-M. Chou, D.-C. Tseng / Computer-Aided Design 38 (2006) 11541165 1157

    Fig. 3. An overview of our watermark embedding and extraction schemes.

    3. The proposed watermarking scheme

    In the proposed watermarking scheme, two major methods,

    the multi-function vertex embedding method and the adjusting-

    vertex method, are proposed for 3D model authentication. An

    overview of our watermark embedding and extraction schemes

    is illustrated in Fig. 3.The multi-function vertex embedding method means that the

    three coordinates of a mark vertex are assigned and embedded

    with different functions of watermark in the watermark

    embedding stage. At first, we select a set of mark vertices from

    the original mesh model. The union of the selected vertices and

    their neighboring vertices should cover the whole model. Thenwe modulate the x1 coordinate of each vertex to indicate if it

    is a mark vertex. For mark vertices, we embed wi and h(wi )

    into their x2 and x3 coordinates respectively. The embedding

    needs to ensure all mark vertices satisfy the relationship of

    hi = h(wi ) after watermark embedding, and this relationship

    will be used for the authentication check in the extraction stage.In the watermark extraction stage, we examine a mesh model

    by first checking the x1 coordinate of every vertex to see if

    it is a mark vertex. Then for each mark vertex, we extract

    the possible embedded information w and h from its x2 and

    x3 coordinates respectively and examine if it can satisfy the

    relationship h(w) = h

    . For any mark vertex that can not hold

    this predefined relationship, we set it and all its neighboring

    vertices as suspicious vertices.

    3.1. The watermark embedding scheme

    Given a mesh M(V, C), where V is the vertex set and

    C is the connectivity relationship on M, a watermark W =

    (w1, w2, . . . , wn ) is embedded by inducing each wi with a

    small displacement in a subset of V. A vertex v is noted asv(x1,x2,x3) or v

    (x 1,x2,x

    3) before or after embedding (or

    say marking), respectively. The approach for embedding wi in

    vertex v is as follows:

    (i) The three coordinates of vertex v(x1,x2,x3) are defined

    with different functions: x1 is used to indicate if v is a

    mark vertex (i.e., v is a watermark embedded vertex), x2is used for embedding watermark wi , and x3 is used for

    embedding h(wi ), where h is a predefined hash function

    and is used for checking modification.(ii) For each vertex, its x1 value is divided by a factor k

    w to

    generate an integer. If v is a mark vertex, the integer must

    be odd; otherwise, x1 is changed to x1 + kw . If v is a

    non-mark vertex, the integer must be even; otherwise, x1is changed to x1 + k

    w . That is,

    m = x1

    kw

    mod 2 (1)

  • 8/8/2019 3d Fragile Watermarking Techniques-3

    5/12

    1158 C.-M. Chou, D.-C. Tseng / Computer-Aided Design 38 (2006) 11541165

    and

    x 1 =

    x1, if(m = 1 and v is a mark vertex) or

    (m = 0 and v is not a mark vertex).

    x1 + kw , otherwise.

    (2)

    (iii) For a mark vertex v, its barycenters of x2 and x3coordinates, x c2 and x

    c3 , are calculated by averaging the

    coordinates of its neighboring vertices,

    x cj =1

    |N(v)|

    N(v)

    xj , j = 2, 3, (3)

    where N(v) is the set of vs neighboring vertices and

    |N(v)| is the size of N(v). In this paper, we use the

    barycenters of a vertex to represent the vertex features

    calculated by Eq. (3).(iv) For a mark vertex v, its xj coordinate is slightly moved

    toward x cj to the new locations xej such that |x

    ej x

    cj | are

    divisible by kqj , j = 2, 3, respectively,

    x ej =

    xj (|xj x

    c

    j | mod k

    q

    j ), ifxj > xc

    j ;xj + (|xj x

    cj | mod k

    qj ), otherwise.

    (4)

    (v) Finally, we employ kqj and k

    dj to embed watermarkwi and

    hash function value hi in xej ,

    x j =

    x ej + dj , ifxj > x

    cj

    x ej dj , otherwise, j = 2, 3, (5)

    where d2 =k

    q2

    kd2wi , d3 =

    kq3

    kd3hi , hi = h(wi ), 0 < wi < k

    d2 ,

    0 < hi < kd3 , wi , hi , k

    d2 , k

    d3 N, and h is a predefined

    hash function. The embedding perturbs x ej toward the

    original value xj with a small displacement dj which is

    always less than kqj , j = 2, 3.

    kw , kqj , k

    dj , and h will serve as the keys in the watermark

    extraction stage.

    The causality problem and the convergence problem arise

    in the embedding stage when we embed watermarks through

    the whole model. It is obvious that the barycenters (x2 and

    x3 coordinates) of a former processed vertex will be changed

    when any of its neighboring vertices was selected to be a

    mark vertex too and need to be perturbed. We propose an

    adjusting vertex method to overcome the causality problem.

    The function of the adjusting vertex is to keep the barycenters

    of the mark vertex unchanged. For each chosen mark vertex,

    we randomly assign an adjusting vertex from its neighboring

    vertices. In other words, a vertex is qualified to be a mark vertex

    as long as it can find an adjusting vertex among its neighboring

    vertices. Any mark vertex cant be taken as an adjusting

    vertex and vice versa. To avoid the causality problem, the

    neighboring vertices of the previously selected mark vertices

    cant be taken as adjusting vertices for later mark vertices. This

    constraint eliminates the causality problem but may leave a

    few isolated vertices, which is a vertex wholly surrounded by

    adjusting vertices. The isolated vertices will be treated as mark

    vertices and be perturbed after all adjusting vertices having

    been modulated. Most 3D fragile watermarking embedding

    schemes perturb the positions of a subset of vertices to keep

    them in some predefined relationship with their neighboring

    vertices. The convergence problem arises when the original

    model has been heavily distorted before some vertices reach

    the predefined relationship. The use of the adjusting vertex

    method guarantees that there is no endless perturbing while

    embedding watermarks; thus there is no convergence problem

    in the proposed method. The detailed watermark embeddingprocedure is given in Algorithm 1.

    Algorithm 1 (The Watermark Embedding Algorithm).

    for each vertex vi in the mesh model

    { vi .mark= False

    vi .mark eligible = True

    vi .adjusting eligible = True

    }

    set v1 as the active vertex, vactwhile (vact! = NULL)

    { ifvact is a mark eligible vertex and there is at least oneeligible adjusting vertex among vacts neighboring

    vertices then

    { randomly select one eligible adjusting vertex vj from

    vacts neighboring vertices as its adjusting vertexvact.mark= True

    vact.mark eligible = False

    vact.adjusting eligible = False

    vj .mark eligible = False

    for each vacts neighboring vertex vivi .adjusting eligible = False

    calculate the x2 and x3 coordinate barycenters ofvactusing Eq. (3)

    embed watermarks to vacts x2 and x3 coordinatesusing Eqs. (4) and (5)

    }

    elseifvact is surrounded by all adjusting vertices then

    { set vact as an isolated vertex

    vact.mark= True

    }

    set the next vertex as the active vertex, vact (Traverse the

    whole model)}

    set v1 as the active vertex, vactwhile (vact! = NULL)

    { modulate vacts x1 coordinate according to its mark flag

    using Eqs. (1) and (2)ifvact is a mark vertex then

    make compensation perturbation on vacts adjusting

    vertex using Eq. (6)set the next vertex as the active vertex, vact (Traverse the

    whole model)}

    for each isolated vertex vi in the mesh model

    { calculate the x2 and x3 coordinate barycenters ofviusing Eq. (3)

    embed watermarks to vi s x2 and x3 coordinates using

    Eqs. (4) and (5)}

  • 8/8/2019 3d Fragile Watermarking Techniques-3

    6/12

    C.-M. Chou, D.-C. Tseng / Computer-Aided Design 38 (2006) 11541165 1159

    Three flags are used in the algorithm to indicate the state

    of each vertex in the mesh model: the mark flag indicatesif a vertex is a mark vertex or a non-mark vertex, the

    mark eligible flag indicates if a vertex is eligible to be a markvertex, and the adjusting eligible flag indicates if a vertex is

    eligible to be an adjusting vertex. Initially, all vertices are set

    to be non-mark, mark eligible, and adjusting eligible vertices.Then we set v1 as the active vertex and traverse the whole modelstarting from v1 to select a set of mark vertices. Any traversal

    algorithm works fine in this scheme as long as it can visit everyvertex exactly once. In our experiments, a simple breadth-first

    search (BFS) algorithm is used for the mesh vertex traversal. Avertex is set to be a mark vertex if it is a mark eligible vertex

    and there is at least one eligible adjusting vertex among itsneighboring vertices. We randomly select one eligible adjusting

    vertex from its neighboring vertices as its adjusting vertexand then modify the related flags: set the active vertex as

    a mark, non-mark eligible, and non-adjusting eligible vertex.The selected adjusting vertex is set as a non-mark eligible

    vertex, and all active vertexs neighboring vertices are set asnon-adjusting eligible vertices. For each selected mark vertex,the barycenters of their x2 and x3 coordinates are calculated

    using Eq. (3). Then we slightly perturb their x2 and x3coordinates to embed watermarks by using Eqs. (4) and (5).

    A vertex that is surrounded by all adjusting vertices (i.e., anisolated vertex) is set to be a mark vertex. An isolated vertexs

    mark eligible and adjusting eligible flags are not modifiedsince these two flags wont be checked anymore if a vertex

    is surrounded by all adjusting vertices. Without adjustingvertices, the isolated vertices are watermarked after all their

    neighboring adjusting vertices have been perturbed to preventtheir barycenters from being changed. Therefore, the isolated

    vertices are not watermarked at this stage. The selection of markvertices will keep going till the end of mesh traversal.

    After the mark vertices have been selected, we traverse themesh model again with the same order as the selection of the

    mark vertices. During this iteration, we first modulate the x1coordinate of each vertex according to its mark flag using Eqs.

    (1) and (2). The x1 coordinate will be used to indicate if a vertexis a mark vertex in the watermark extraction stage. Then we

    make compensation perturbations on adjusting vertices,

    x aj = xaj

    N(mv)

    (x j xj ), j = 2, 3, (6)

    where xa2 and x

    a3 are the second and third coordinates of the

    adjusting vertex for a mark vertex v; N(mv) is the set of all vsneighboring mark vertices and adjusting vertices of previous

    mark vertices. Lastly, we embed watermarks into all isolatedvertices using the same technique as we applied for other markvertices. The union of all mark vertices and their neighboring

    vertices cover the whole model; thus we can detect any changeon the model. A brief proof of the coverage completeness is

    given below.

    Proof of coverage completeness: The union of all markvertices and their neighboring vertices cover the whole model.

    Proof. Assume there is a non-mark vertex vi which is not

    covered by any mark vertex; that is, it is surrounded by

    adjusting vertices and other non-mark vertices. If vi is

    surrounded by all adjusting vertices, it is an isolated vertex and

    will be set as a mark vertex; otherwise, vi can pick a non-mark

    vertex from its neighboring vertices to be its adjusting vertex,

    and it will be set as a mark vertex. In both cases, vi can be set

    as a mark vertex; thus, there is no such non-covered vertex vi .

    3.2. The watermark extraction scheme and tamper detection

    In the watermark extraction stage, kw , kqj , k

    dj , and h serve

    as the keys for malicious change detection. The detailed

    watermark extraction procedure is given in Algorithm 2.

    Algorithm 2 (The Watermark Extraction Algorithm).

    set all vertices in the mesh model as non-suspicious vertices

    set v1 as the active vertex, vactwhile (vact! = NULL)

    { Checkvacts x1 coordinate to see if it is a mark vertex

    ifvact is a mark vertex then{ calculate the x2 and x3 coordinate barycenters of

    vact using Eq. (3)extract w and h from vacts x2 and x3 coordinates

    using Eq. (7)ifh(w)! = h then

    set vact and all its neighboring vertices as

    suspicious vertices}

    set the next vertex as the active vertex, vact (Traverse the

    whole model)}

    Initially, all vertices of the mesh model are set to be non-

    suspicious vertices. Then we set v1 as an active vertex and

    traverse the whole model starting from v1 to examine the model.

    We check if a vertex is a mark vertex by applying its x1coordinate and kw to Eq. (1). For each mark vertex, we first

    calculate its x2 and x3 barycenters using Eq. (3), and then apply

    its x2 and x3 coordinates, the barycenters, and kqj , k

    dj to extract

    the watermarks using the following equations,

    w = (|x c2 x2| mod k

    q2 )

    kd2

    kq2

    h = (|x c3 x 3| mod kq3 )kd

    3k

    q3

    .

    (7)

    Vertices that have not been changed will satisfy the

    relationship, h(w) = h. On the other hand, a vertex that

    does not satisfy the above relationship indicates that at least

    one of its neighboring vertices or the vertex itself (or both) has

    been changed. Thus, for any mark vertex that can not satisfy

    this relationship, well set it and all its neighboring vertices

    as suspicious vertices. There is no way for a forger to modify

    a model and keeping the relationship unchanged without the

    keys. Fig. 4 shows how our scheme detects modifications

    and locates the suspicious modified regions. In Fig. 4(a), v

    is a vertex that has been changed, and wi , i = 05, are

  • 8/8/2019 3d Fragile Watermarking Techniques-3

    7/12

    1160 C.-M. Chou, D.-C. Tseng / Computer-Aided Design 38 (2006) 11541165

    Fig. 4. A mesh with one vertex changed. (a) v is a vertex that has been changed

    and wi , i = 05, are mark vertices. (b) Two mark vertices, w1 and w4, have

    detected the change. (c) These two mark vertices and their neighboring vertices

    are set to be suspicious vertices (linked by dashed lines). (d) Parts of suspicious

    vertices are released by the undetected mark vertices (changed from gray to

    non-gray nodes). In this figure, black nodes denote the mark vertices, white

    nodes denote the non-mark vertices, and gray nodes denote the suspicious

    vertices.

    mark vertices. In Fig. 4(b), two mark vertices, w1 and w4,have detected the change, whereas other four mark vertices

    dont. Fig. 4(c) shows that these two mark vertices and their

    neighboring vertices are set to be suspicious vertices (linked by

    dashed lines, shown as gray nodes). Then parts of suspicious

    vertices are released by the undetected mark vertices (changed

    from gray to non-gray nodes), as shown in Fig. 4(d). Lastly, we

    can induce the possible modified vertices: v and/or w1.

    4. Distortion control

    In 3D models, the distance between two surfaces X and Y

    can be defined as an L2 measurement [15],

    d(X, Y) =

    1

    area(X)

    x X

    d(x, Y)2dx, (8)

    where d(x , Y) is the Euclidean distance from a point x on

    X to the closest point on Y. We modify the definition of the

    L2 measurement to d(M, M) for representing the average

    distortion of all vertices in a model:

    d(M, M) =1

    |M|

    |M|i =1

    |vi vi |, (9)

    where M and M are the original and marked models,

    respectively. In our scheme, the distortion induced by

    Fig. 5. The distortion control analysis. (a) The chart ofkq versus the average

    model distortion with various kws. (b) The chart ofkw versus the average model

    distortion with various kq s.

    watermark embedding depends on the x1, x2, and x3quantization steps: kw, k

    q2 , and k

    q3 . Key value k

    w controls

    the quantization step of x1 coordinate and key values kq2 and

    kq3 control the quantization steps of x2 and x3 coordinates,

    respectively. The setting of these three key values depends on

    the desired average distortion. Fig. 5 shows how the averagedistortion d(M, M) is relative to these three parameters in the

    Venus model. Fig. 5(a) is the chart of kq versus the average

    model distortion with various kws; Fig. 5(b) is the chart of kw

    versus the average model distortion with various kq s. For the

    simplicity of discussion, we set kq2 = k

    q3 = k

    q for both charts

    in Fig. 5. From these two charts, we can see that the less kw

    and kq are, the less the distortion is. Thus the average distortion

    caused by the watermark embedding process can be controlled

    by setting appropriate kw and kq s. For example, suppose we

    want to control the average distortion under 103, we may

    reasonably set the key values of kw to be 103 and both kq s

    to be 10

    3.5 by observing the curves in Fig. 5(a) and (b).

  • 8/8/2019 3d Fragile Watermarking Techniques-3

    8/12

    C.-M. Chou, D.-C. Tseng / Computer-Aided Design 38 (2006) 11541165 1161

    Fig. 6. The steps of the watermark digest method.

    For some artistic or technical models, it is sometimes

    very important not to make any modification on the original

    mesh models. We propose a variant scheme to satisfy this

    requirement. In the variant scheme, a watermark digest (WD)

    is calculated from the original model and then attached to the

    original model for transmission. The WD consists of two parts

    of information: wm and wp . The wm part records the indices

    of the mark vertices while the wp part records the required

    perturbing displacements of all mark vertices. The receiver

    can perturb the received model according to the WD record

    and then check the originality of the received model by the

    method described in Section 3. This scheme is simple and the

    original model need not be modified. To ensure security, the WD

    needs to be encrypted. In other words, the WD plays the same

    role as the message digest in the digital signature scheme.

    Users can treat this method as a simple scheme for extracting

    message digests from 3D models. Fig. 6 illustrates the idea of

    this alternative method.

    5. Experimental results and conclusions

    We evaluated the proposed watermarking scheme on a set

    of 3D models with various unauthorized attacks. Table 2 liststhe models used in our experiments. In these models, about

    38%45% of vertices were chosen to be mark vertices. The key

    values have to be carefully chosen since they directly influence

    the average distortion of the marked models. The settings of kd2and kd3 depend on the range of embedded integer watermarks,

    wi , and the hash function ofwi , h(wi ), respectively. According

    to Eq. (5), kd2 has to be set greater than all wi and kd3 has tobe set

    greater than all h(wi ). For example, if the selected set of integer

    watermarks is in the range [0, n] and the hash function of this

    watermark set is in the range [0, m], we may set kd2 = n + 1 and

    kd3 = m + 1. The setting of key values kw and kq s depends on

    the desired average distortion. Key values kw

    and kq s directly

    Fig. 7. One example of 3D fragile watermarking. (a) The original Venus model.

    (b) The marked Venus model. (c) The marked Venus model changed by various

    attacks simultaneously, where A denotes the region of invisible noise added,

    B denotes the region of an extra vertex added, and C denotes the region of

    some vertices deleted. (d) The detection results: the marked areas represent the

    suspicious regions.

    relate to the quantization steps ofx2 and x3 coordinates, thus the

    smaller the key values are, the smaller the average distortion

    is. Key values kds, which relate to the watermarks embedded

    within each quantization step of x2 and x3 coordinates, have

    no certain relationship to the average distortion. Table 3 lists

    several experimental results of various models to illustrate the

  • 8/8/2019 3d Fragile Watermarking Techniques-3

    9/12

    1162 C.-M. Chou, D.-C. Tseng / Computer-Aided Design 38 (2006) 11541165

    Table 2

    The list of models used in our experiments

    Model name Number of vertices/faces Number of mark vertices Model

    Apple 891/1704 343

    Beethoven 2655/5028 1 022

    Blade 24 998/49 992 10 320

    Dinosaur 14 070/28 136 6 213

    Horse 48 485/96 966 20 241

    Pulley 25 482/50 964 10 402

    Rocker-arm 10 044/20 088 4 142

    Triceratops 2832/5660 1 132

    Venus 8268/16 532 3 175

    relationship between the setting of key values and the averagedistortion. The precision level is 104 for the original Venusmodel, and is 106 for all other original models in Table 3.As shown in Table 3, smaller key values will produce smaller

    average distortion, but will increase the precision requirementof the marked model. Extra precision requirement will cause a

    size overload of the marked model. Users should determine thetrade-off between a small average distortion and a small-sized

    overload.Fig. 7 illustrates how a Venus model is watermarked and

    the detected changes by our scheme. Fig. 7(a) shows theoriginal Venus model. The Venus model has 8268 vertices and

    16 532 faces; 3175 vertices were chosen to embed watermarks.

    Fig. 7(b) shows the same view of the marked model. These two

    models are visually identical. Fig. 7(c) shows a marked Venus

    model that has been illegally changed by various operations:

    noising, vertex adding, and vertex deleting simultaneously.

    The regions labeled A, B, and C denote the regions

    of invisible noise added, an extra vertex added, and some

    vertices deleted, respectively. The proposed scheme locates

    these changed regions by setting all regions that can not hold

    the predefined neighborhood relationship as suspicious regions.

    Fig. 7(d) shows the detected suspicious regions with marks. In

    this experiment, we tried to control the average distortion within

    10

    4. By observing the charts of Fig. 5, we set kw

    = 10

    4

  • 8/8/2019 3d Fragile Watermarking Techniques-3

    10/12

    C.-M. Chou, D.-C. Tseng / Computer-Aided Design 38 (2006) 11541165 1163

    Table 3

    The average distortion of various models with different settings of key values

    Model/Precision level of original

    model

    kw kq

    2 kq

    3 kd2 k

    d3 Hash function Average distortion/Precision requirement of marked model

    Blade/106

    0.01 0.01 0.01 250 250 h(wi ) = wi 0.019382/105

    0.001 0.01 0.01 250 250 h(wi ) = wi 0.018326/106

    0.01 0.001 0.001 250 250 h(wi

    ) = wi

    0.003973/106

    0.001 0.001 0.001 250 250 h(wi ) = wi 0.002088/106

    0.0001 0.001 0.001 250 250 h(wi ) = wi 0.001982/107

    0.001 0.0001 0.0001 250 2 50 h(wi ) = wi 0.000383/107

    0.0001 0.0001 0.0001 250 250 h(wi ) = wi 0.000192/107

    0.0001 0.0001 0.0001 250 500 h(wi ) = 2wi 0.000193/107

    0.0001 0.0001 0.0001 500 250 h(wi ) = 0.5wi 0.000215/107

    0.0001 0.0001 0.0001 500 500 h(wi ) = wi 0.000213/107

    0.00001 0.00001 0.00001 250 250 h(wi ) = wi 0.000019/108

    Pulley/106

    0.01 0.01 0.01 250 250 h(wi ) = wi 0.013444/105

    0.001 0.01 0.01 250 250 h(wi ) = wi 0.012352/106

    0.01 0.001 0.001 250 250 h(wi ) = wi 0.003285/106

    0.001 0.001 0.001 250 250 h(wi ) = wi 0.001330/106

    0.0001 0.001 0.001 250 250 h(wi ) = wi 0.001222/107

    0.001 0.0001 0.0001 250 2 50 h(wi ) = wi 0.000332/1070.0001 0.0001 0.0001 250 250 h(wi ) = wi 0.000136/10

    7

    0.0001 0.0001 0.0001 250 500 h(wi ) = 2wi 0.000146/107

    0.0001 0.0001 0.0001 500 250 h(wi ) = 0.5wi 0.000146/107

    0.0001 0.0001 0.0001 500 500 h(wi ) = wi 0.000155/107

    0.00001 0.00001 0.00001 250 250 h(wi ) = wi 0.000014/108

    Rocker-arm/106

    0.01 0.01 0.01 250 250 h(wi ) = wi 0.014812/105

    0.001 0.01 0.01 250 250 h(wi ) = wi 0.013800/106

    0.01 0.001 0.001 250 250 h(wi ) = wi 0.003286/106

    0.001 0.001 0.001 250 250 h(wi ) = wi 0.001266/106

    0.0001 0.001 0.001 250 250 h(wi ) = wi 0.001153/107

    0.001 0.0001 0.0001 250 2 50 h(wi ) = wi 0.000323/107

    0.0001 0.0001 0.0001 250 250 h(wi ) = wi 0.000121/107

    0.0001 0.0001 0.0001 250 500 h(wi ) = 2wi 0.000130/107

    0.0001 0.0001 0.0001 500 250 h(wi ) = 0.5wi 0.000134/107

    0.0001 0.0001 0.0001 500 500 h(wi ) = wi 0.000143/107

    0.00001 0.00001 0.00001 250 250 h(wi ) = wi 0.000013/108

    Venus/104

    0.01 0.01 0.01 250 250 h(wi ) = wi 0.013823/105

    0.01 0.001 0.001 250 250 h(wi ) = wi 0.003250/106

    0.001 0.001 0.001 250 250 h(wi ) = wi 0.001343/106

    0.0001 0.001 0.001 250 250 h(wi ) = wi 0.001222/107

    0.001 0.0001 0.0001 250 2 50 h(wi ) = wi 0.000326/107

    0.0001 0.0001 0.0001 250 250 h(wi ) = wi 0.000125/107

    0.0001 0.0001 0.0001 250 500 h(wi ) = 2wi 0.000134/107

    0.0001 0.0001 0.0001 500 250 h(wi ) = 0.5wi 0.000132/107

    0.0001 0.0001 0.0001 500 500 h(wi ) = wi 0.000141/107

    and kqj = 10

    5, j = 2, 3, to achieve the requirement. As a

    result, the average distortion of the marked Venus model was

    104.5. The value ofkdj was set to 256; thus all watermarks were

    integers randomly generated in the range [0, 255]. A simple

    hash function h(x) = x was used for the change detection.

    For engineering/technical models with flat surfaces, distor-

    tion control of the watermark effect on the flat surfaces is the

    most important issue. Our scheme can control the watermark

    effect with proper key value setting. Fig. 8 shows the marked

    results of three engineering models with different key value set-

    tings. We set kq2 = k

    q3 = k

    q for all models in Fig. 8. Fig. 8(a)

    and (b) show that the surfaces of marked models Blade and

    Pulley keep flat while the average distortion is around 103,

    and become rugged while the average distortion is around 102.

    Fig. 8(c) shows that the surface of the marked model Rocker-

    arm stays flat when the average distortion is around 104, and

    becomes rugged when the average distortion is around 103.

    The precision levels of these three original models are all 10 6.

    According to Table 3, if we want to keep these marked surfaces

    flat, the precision level requirements of marked models Blade,

    Pulley and Rocker-arm are 106, 106 and 107, respectively.

    Users can set the key values according to their requirements of

    precision level and visual effect of marked models. However,

    for conservative users who do not want to make any change on

  • 8/8/2019 3d Fragile Watermarking Techniques-3

    11/12

    1164 C.-M. Chou, D.-C. Tseng / Computer-Aided Design 38 (2006) 11541165

    Fig. 8. The marked results of three engineering models with different key value settings in front and back views. (a) The Blade model with various levels of

    distortion. (b) The Pulley model with various-level distortions. (c) The Rocker-arm model with various-level distortions.

    the original models, we recommend they choose the alternative

    watermark digest method instead of the direct watermark em-

    bedding scheme.

    Our scheme is superior in that the average distortion of the

    marked models is under control by the user while the other

    schemes may suffer from the distortion problem due to the

    convergence problem. In addition, a relatively small key is

    needed for watermark extraction in our watermarking scheme.

    In Yeo and Yeungs work [11], three lookup tables each with256 binary entries (2563 = 768 bits) and two predefined hash

    functions are needed to extract watermarks while the proposed

    scheme needs only three floating-point numbers (kq2 , k

    q3 , and

    kw), two integers (kd2 and kd3 ) and a predefined hash function

    for watermark extraction (32 3 + 16 2 = 128 bits). In both

    schemes, the key size is independent of the size of the 3D mesh

    model. Moreover, our scheme can detect the changed regions

    and give a reasonable guess of unauthorized modifications. We

    think the ability of locating unauthorized modifications is an

    important issue in 3D fragile watermarking.

    Fig. 9 shows an example of how our watermarking scheme

    detects unauthorized modification and gives a reasonable guess

    to the kind of change that has been added on the marked model.

    Fig. 9(a) shows a marked Dinosaur model. The Dinosaur

    model has 14 070 vertices and 28 136 faces. 6213 vertices

    were chosen to embed watermarks. Fig. 9(b) shows a marked

    Dinosaurmodel changed by cutting the end of its tail. Fig. 9(c)

    shows the cutting plane and vertices on the cutting plane.

    The mark vertices (black nodes) detected a modification since

    their neighboring relations were changed. Fig. 9(d) shows these

    detected mark vertices setting themselves and their neighboringvertices as suspicious vertices (turn to gray nodes). As a

    result, these detected suspicious vertices roughly form a circle.

    Two possible attacks are most likely to produce this situation:

    cropping and vertex decimation. Thus, we may reasonably

    suspect that a part of the Dinosaur model has been cut from

    this circle (the cutting plane) or a part of vertices around this

    circle has been decimated.

    The main contributions of the proposed scheme are

    summarized as follows: (i) The causality problem has been

    overcome using the adjusting vertex method so that the traverse

    order is not needed in the watermark extraction stage. (ii)

    The adjusting vertex method eliminates the possible problem

  • 8/8/2019 3d Fragile Watermarking Techniques-3

    12/12

    C.-M. Chou, D.-C. Tseng / Computer-Aided Design 38 (2006) 11541165 1165

    Fig. 9. An example of detecting modification. (a) The marked Dinosaur model.

    (b) The marked Dinosaur model changed by cutting the end of its tail. (c) The

    cutting plane. (d) The circle formed by the suspicious vertices. In this figure,black nodes denote the mark vertices and white nodes denote the non-mark

    vertices.

    of endless perturbing on mark vertices. This concept can

    effectively limit the distortion ratio caused by watermark

    embedding. (iii) Different functions are defined for the three

    coordinates of vertices so that multiple meaningful information

    can be embedded in one vertex. This characteristic is helpful

    for other 3D applications such as robust watermarking and

    data hiding. (iv) The average distortion of the marked models

    is under user control with proper key value setting. (v)

    The proposed scheme can detect and locate all unauthorized

    modifications even if various multiple illegal changes are madeon a model simultaneously. (vi) The proposed scheme is public

    and a relative small key is needed for the watermark extraction.

    (vii) A variant scheme which attaches a watermark digest

    with the original model instead of embedding watermarks in

    the original model is proposed. It can be treated as a simple and

    easy implementation version of the digital signature scheme in

    extracting a message digest from 3D models.

    Acknowledgements

    The authors thank the anonymous reviewers for their

    valuable comments and suggestions which improved the

    readability and quality of this paper. The Blade model was

    provided courtesy of IMATI-GE/CNR by the AIM@SHAPE

    Shape Repository. The Pulley model was provided courtesy of

    INRIA by the AIM@SHAPE Shape Repository.

    References

    [1] Schneier B. Applied cryptography: Protocols, algorithms, and source code

    in C. 2nd ed. New York: Wiley; 1996.

    [2] Xie L, Arce GR. A class of authentication digital watermarks for secure

    multimedia communication. IEEE Trans Image Process 2001;10(11):

    175464.

    [3] Barni M, Bartolini F, Piva A. Improved wavelet-based watermarking

    through pixel-wise masking. IEEE Trans Image Process 2001;10(5):

    78391.

    [4] Ohbuchi R, Mukaiyama A, Takahashi S. A frequency-domain approach

    to watermarking 3D shapes. Comput Graph Forum 2002;21(3):37382.

    [5] Ohbuchi R, Masuda H, Aono M. Watermarking three-dimensional

    polygonal models through geometric and topological modifications. IEEE

    J Sel Areas Commun 1998;16:55160.

    [6] Ohbuchi R, Takahashi S, Miyazawa T, Mukaiyama A. Watermarking 3D

    polygonal meshes in the mesh spectral domain. In: Proc of the graphics

    interface. 2001.

    [7] Benedens O. Geometry-based watermarking of 3-D models. IEEE

    Comput Graph Appl 1999;19:4655.

    [8] Benedens O, Busch C. Towards blind detection of robust watermarks in

    polygonal models. Comput Graph Forum 2000;19:C199208.

    [9] Praun E, Hoppe H, Finkelstein A. Robust mesh watermarking. In: ACM

    siggraph proc. 1999.

    [10] Hoppe H. Progressive meshes. In: ACM siggraph proc. 1996.

    [11] Yeo BL, Yeung MM. Watermarking 3D objects for verification. IEEE

    Comput Graph Appl 1999;19:3645.[12] Fornaro C, Sanna A. Public key watermarking for authentication of CSG

    models. Comput Aided Des 2000;32:72735.

    [13] Lin HY, Liao HY, Lu CS, Lin JC. Fragile watermarking for authenticating

    3-D polygonal meshes. IEEE Trans Multimedia 2005;7(6):9971006.

    [14] Wu HT, Cheung YM. A fragile watermarking scheme for 3D meshes. In:

    Proc the 7th workshop on multimedia and security. 2005.

    [15] Khodakovsky A, Schroder P, Sweldens W. Progressive geometry

    compression. In: ACM siggraph proc. 2000.