U.S. patent application number 11/457559 was filed with the patent office on 2007-01-18 for embedding and detecting watermarks.
Invention is credited to Yuan He, Lin Luo, Ling Shao, Ming Su, Zhe Xiang.
Application Number | 20070014429 11/457559 |
Document ID | / |
Family ID | 37609911 |
Filed Date | 2007-01-18 |
United States Patent
Application |
20070014429 |
Kind Code |
A1 |
He; Yuan ; et al. |
January 18, 2007 |
EMBEDDING AND DETECTING WATERMARKS
Abstract
A watermark embedding method for embedding a secret message
sequence in a document. The techniques include obtaining layout
information of the document, extracting a digest of the document by
using a Hash function, calculating embedded positions where the
secret message sequence is embedded in the document, and
dispersedly hiding the secret message sequence in each of the
calculated embedded positions by altering the layout of the
document. Also provided is a watermark embedding apparatus, a
corresponding watermark detecting method and apparatus, and a
method and system for detecting document integrity. The integrity
of documents in various forms can be detected, and secret
information to be hidden can be embedded therein and extracted
therefrom. The techniques described are not limited to the document
either in soft copy or in hard copy and have good robustness.
Inventors: |
He; Yuan; (Beijing, CN)
; Luo; Lin; (Beijing, CN) ; Su; Ming;
(US) ; Shao; Ling; (Yang District, CN) ;
Xiang; Zhe; (Hai Dian, CN) |
Correspondence
Address: |
LAW OFFICE OF IDO TUCHMAN (YOR)
82-70 BEVERLY ROAD
KEW GARDENS
NY
11415
US
|
Family ID: |
37609911 |
Appl. No.: |
11/457559 |
Filed: |
July 14, 2006 |
Current U.S.
Class: |
382/100 |
Current CPC
Class: |
G06T 1/0028 20130101;
G06F 40/106 20200101; H04K 1/00 20130101; H04L 9/3236 20130101;
G06T 2201/0051 20130101; H04L 2209/608 20130101; G06T 2201/0062
20130101; H04L 2209/16 20130101 |
Class at
Publication: |
382/100 |
International
Class: |
G06K 9/00 20060101
G06K009/00 |
Foreign Application Data
Date |
Code |
Application Number |
Jul 14, 2005 |
CN |
200510084619.6 |
Claims
1. A watermark embedding method for embedding a secret message
sequence in a document, said method comprising: obtaining layout
information of said document; extracting a digest of said document
by using a Hash function; calculating embedded positions where said
secret message sequence is embedded in said document; and
dispersedly hiding said secret message sequence in each of said
calculated embedded positions by altering the layout of said
document.
2. The watermark embedding method according to claim 1, wherein
said calculating the embedded positions is performed by means of
the Hash digest of said document and a finite state machine driven
by a public key encrypted algorithm.
3. The watermark embedding method according to claim 2, wherein
said calculating the embedded positions further comprises:
calculating an initial state based on the extracted document digest
and said secret message sequence; calculating a state sequence
based on the initial state and a public key; and calculating the
embedded position sequence based on the state sequence.
4. The watermark embedding method according to claim 1, wherein
said obtaining the layout information further comprises dividing
said document into a plurality of segments.
5. The watermark embedding method according to claim 1, wherein
said document is a text document.
6. The watermark embedding method according to claim 4, wherein
said hiding the secret message sequence further comprises
dispersedly hiding each secret message of said secret message
sequence by altering inter-word spaces in the corresponding segment
indicated by each of the calculated embedded positions.
7. The watermark embedding method according to claim 4, wherein
said hiding the secret message sequence further comprises
dispersedly hiding each secret message of said secret message
sequence by altering font styles in the corresponding segment
indicated by each of the calculated embedded positions.
8. The watermark embedding method according to claim 1, wherein
said document is an electronic document.
9. The watermark embedding method according to claim 8, wherein
said document is a document in printer description language format,
and wherein said watermark embedding method further comprises:
before said step of obtaining the layout information, performing
printer language analysis on the document in printer description
language format, and separating a printer command and content of
the electronic document itself for further processing; after said
step of hiding the secret message sequence, reassembling the
printer command and the content of the document embedded with the
secret message sequence to generate a reassembled printer language
document for printing.
10. The watermark embedding method according to claim 1, wherein
said document is an image document, and said method further
comprises a performing layout analysis on the image document before
said obtaining the layout information.
11. The watermark embedding method according to claim 1, wherein
said document is in paper format, and before said obtaining the
layout information, said method further comprising: scanning the
document in paper format to obtain an image document; performing
layout analysis on the image document.
12. A watermark embedding apparatus for embedding a secret message
sequence in a document, said apparatus comprising: a layout
information obtaining unit for obtaining layout information of said
document; a digest extracting unit for extracting a digest of said
document by using a Hash function; an embedded position calculating
unit for calculating embedded positions where said secret message
sequence is embedded in said document; an information hiding unit
for dispersedly hiding said secret message sequence in each of said
calculated embedded positions by altering the layout of said
document.
13. The watermark embedding apparatus according to claim 12,
wherein said embedded position calculating unit calculates the
embedded positions by means of a public key driven finite state
machine.
14. The watermark embedding apparatus according to claim 13,
wherein said embedded position calculating unit further comprises:
a unit for calculating an initial state based on the extracted
digest and said secret message sequence; a unit for calculating a
state sequence based on the initial state and a public key; a unit
for calculating the embedded position sequence based on the state
sequence.
15. The watermark embedding apparatus according to claim 12,
wherein said document is a text document.
16. The watermark embedding apparatus according to claim 12,
wherein said layout information obtaining unit further comprises a
unit for dividing said document into a plurality of segments.
17. The watermark embedding apparatus according to claim 16,
wherein said information hiding unit dispersedly hides each secret
message of said secret message sequence by altering inter-word
spaces in the corresponding segment indicated by each of the
calculated embedded positions.
18. The watermark embedding apparatus according to claim 16,
wherein said information hiding unit dispersedly hides each secret
message of said secret message sequence by altering font styles in
the corresponding segment indicated by each of the calculated
embedded positions.
19. The watermark embedding apparatus according to claim 12,
wherein said document is an electronic document.
20. The watermark embedding apparatus according to claim 19,
wherein said document is a document in printer description language
format, and wherein said watermark embedding apparatus further
comprises: a printer language analysis unit for performing printer
language analysis on the document in printer description language
format, and separating a printer command and content of the
electronic document itself for further processing; a printer
language reassembling unit for reassembling the printer command and
the content of the document embedded with the secret message
sequence to generate a reassembled printer language document for
printing.
21. The watermark embedding apparatus according to claim 20,
wherein the watermark embedding apparatus can be disposed between a
document editor and a printer.
22. The watermark embedding apparatus according to claim 12,
wherein said document is an image document, and said watermark
embedding apparatus further comprises a unit for performing layout
analysis on the image document to obtain the layout
information.
23. A watermark detecting method for detecting from a document a
secret message sequence embedded therein, said method comprising:
obtaining layout information of said document; extracting a digest
of said document by using a Hash function; calculating embedded
positions where said secret message sequence is embedded in said
document; extracting each secret message of said secret message
sequence based on layout changes in each of the calculated embedded
positions, respectively.
24. The watermark detecting method according to claim 23, wherein
said calculating the embedded positions is performed by means of a
public key driven finite state machine.
25. The watermark detecting method according to claim 24, further
comprising repeating said calculating the embedded positions and
said extracting the secret message sequence until it is determined
that all the embedded secret messages have been extracted based on
current state, said digest of the document and each of said
extracted secret messages.
26. The watermark detecting method according to claim 25, wherein
said calculating the embedded positions further comprises:
calculating a previous state based on the current state and a
private key; and calculating the embedded positions based on the
calculated states.
27. The watermark detecting method according to claim 23, wherein
said obtaining the layout information further comprises dividing
said document into a plurality of segments.
28. The watermark detecting method according to claim 27, wherein
said extracting the secret message sequence further comprising
extracting each secret message of said secret message sequence
based on inter-word space changes in the corresponding segment
indicated by each of the calculated embedded positions,
respectively.
29. The watermark detecting method according to claim 27, wherein
said extracting the secret message sequence further comprises
extracting each secret message of said secret message sequence
based on font style changes in the corresponding segment indicated
by each of the calculated embedded positions, respectively.
30. The watermark detecting method according to claim 23, wherein
said document is a text document.
31. The watermark detecting method according to claim 23, wherein
said document is an electronic document.
32. The watermark detecting method according to claim 23, wherein
said document is an image document, and wherein said method further
comprises a step of performing layout analysis on the image
document before said step of obtaining the layout information.
33. The watermark detecting method according to claim 23, wherein
said document is in paper format, and before said obtaining the
layout information, said method further comprises: scanning the
document in paper format to obtain an image document; and
performing layout analysis on the image document.
34. A watermark detecting apparatus for detecting from a document a
secret message sequence embedded therein, that said apparatus
comprising: a layout information obtaining unit for obtaining
layout information of said document; a digest extracting unit for
extracting a digest of said document by using a Hash function; an
embedded position calculating unit for calculating embedded
positions where said secret message sequence is embedded in said
document; and an information extracting unit for extracting each
secret message of said secret message sequence based on layout
changes in each of the calculated embedded positions,
respectively.
35. The watermark detecting apparatus according to claim 34,
wherein said embedded position calculating unit calculates the
embedded positions by means of a public key driven finite state
machine.
36. The watermark detecting apparatus according to claim 35,
further comprises: a deciding unit for deciding whether all the
embedded secret messages have been extracted based on current
state, said digest of the document and each of said extracted
secret messages.
37. The watermark detecting apparatus according to claim 36,
wherein said embedded position calculating unit further comprises:
a unit for calculating a previous state based on the current state
and a private key; a unit for calculating the embedded positions
based on the calculated states; and wherein said unit for
calculating the state and said unit for calculating the embedded
positions perform iterative calculation when the decision result of
said deciding unit indicates that there still are the embedded
secret messages to be extracted.
38. The watermark detecting apparatus according to claim 34,
wherein said layout information obtaining unit further comprises a
unit for dividing said document into a plurality of segments.
39. The watermark detecting apparatus according to claim 38,
wherein said information extracting unit extracts each secret
message of said secret message sequence based on inter-word space
changes in the corresponding segment indicated by each of the
calculated embedded positions, respectively.
40. The watermark detecting apparatus according to claim 38,
wherein said information extracting unit extracts each secret
message of said secret message sequence based on font style changes
in the corresponding segment indicated by each of the calculated
embedded positions, respectively.
41. The watermark detecting apparatus according to claim 34,
wherein said document is a text document.
42. The watermark detecting apparatus according to claim 34,
wherein said document is an electronic document.
43. The watermark detecting apparatus according to claims 34,
wherein said document is an image document, and wherein said
watermark detecting apparatus further comprises a unit for
performing layout analysis on the image document to obtain the
layout information.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority under 35 U.S.C. .sctn.119
to China Patent Application No. 200510084619.6 filed Jul. 14, 2005,
the entire text of which is specifically incorporated by reference
herein.
BACKGROUND OF THE INVENTION
[0002] The present invention generally relates to information
security fields, and particularly to information security fields
utilizing digital watermarking techniques and information hiding
techniques.
[0003] Paperless office environment and electronic transactions are
extensively adopted in current business world. Many important
documents, such as wills, forms, identification and contracts,
etc., require strict authentication and integrity assurance. For
those documents containing sensitive information, even a small
revision, such as adding, deleting, or modifying a paragraph,
phrase, or word, is not allowed since it may cause great change to
the meaning of the content and lead to great damage in business
activities.
[0004] Digital signature is a traditionally well-known technique to
verify the integrity of electronic content. This technique firstly
generates a digest of the content by a one-way hash function, and
then encrypts the digest by using the author's private key and
appends it to the content to be signed. The whole procedure is the
so-called digital signature. People who have the corresponding
public key can decrypt the digest and verify whether it's the same
as the hash value of the received content.
[0005] However, in most real applications, paper is still in an
indispensable position. Signed documents are often printed out or
faxed. In such cases, since digital signature requires side
information (encrypted digest) transmitted together with the
electronic document itself, it has noting to do with the case where
electronic documents are printed out. Furthermore, digital
signature can only ensure the integrity of the document, but cannot
hide any additional information that the author will not let others
to directly see.
[0006] Furthermore, with the development of digital techniques and
the Internet, digital watermarking techniques have become a hotspot
of multimedia information security research fields and an important
branch of information hiding technique research fields. The
techniques verify ownership of the data by embedding watermark
information into original data. Such embedded watermark may be a
segment of characters, identification or serial numbers and the
like, and is often invisible or unobservable. The watermark is
tightly combined with the original data (for example, text, image,
audio or video data) and hidden therein, and can be maintained
after being subjected to operations which do not destroy use value
or commercial value of source data.
[0007] Text watermarking usually refers to the watermarking for
text documents. A typical text document consists of regular
structures including words, inter-word spaces, lines, paragraphs,
and sometimes equations and graphs. Unlike data hiding method in
still images and videos, there is less space in the text document
to hide information.
[0008] In general, watermarking can be used in two kinds of
applications: copyright protection and integrity check. For the two
kinds of applications, the corresponding attack models and the
technical requirements differ a lot. When used for copyright
protection, the purpose of attack is to make the watermark
irretrievable. Since text watermarking is vulnerable to deliberate
destroy, it may encounter big technical challenges when using it
for content protection. But in the application of integrity check,
the potential attack is not to remove the watermark, but to modify
the meaning of the watermark or the content. So, in this case, some
deliberate destruction, such as non-linear processing, is not very
important, but the robustness against distortions caused by normal
printing, copying, and scanning is still required to match
real-life applications.
[0009] Existing watermarking techniques are mostly symmetric
watermarking techniques. In general, the integrity protection by
means of symmetric watermarking techniques is realized by firstly
encrypting the signature by applying public key algorithms into the
digest of the text, and then hiding the encrypted digest into the
document by symmetric watermarking techniques. However, for some
applications, in addition to the need of verifying the integrity,
there exists the need of adding extra secret information, for
example, information which the author might not want others to see.
If such information is embedded by means of symmetric watermarking,
then a person, which is authorized to detect a watermark, can
easily forge another watermark without permission, since embedding
and extracting of the symmetric watermark can be derived from each
other.
BRIEF SUMMARY OF THE INVENTION
[0010] Thus, an exemplary aspect of the present invention is a
watermark embedding method for embedding a secret message sequence
in a document. The method includes an obtaining operation of
obtaining layout information of the document. An extracting
operation is performed to extract a digest of said document by
using a Hash function. A calculating operation calculates embedded
positions where the secret message sequence is embedded in the
document. A hiding operation dispersedly hides the secret message
sequence in each of the calculated embedded positions by altering
the layout of the document.
[0011] Another exemplary aspect of the invention is a watermark
detecting method for detecting from a document a secret message
sequence embedded therein. The method includes obtaining layout
information of the document. An extracting operation extracts a
digest of the document using a Hash function. A calculating
operation calculates embedded positions where the secret message
sequence is embedded in the document. An extracting operation
extracts each secret message of the secret message sequence based
on layout changes in each of the calculated embedded positions,
respectively.
[0012] A further exemplary aspect of the invention is a watermark
embedding apparatus for embedding a secret message sequence in a
document. The apparatus includes a layout information obtaining
unit for obtaining layout information of the document. A digest
extracting unit is configured to extract a digest of the document
by using a Hash function. An embedded position calculating unit is
configured to calculate embedded positions where the secret message
sequence is embedded in the document. An information hiding unit is
configured to dispersedly hide the secret message sequence in each
of the calculated embedded positions by altering the layout of the
document.
[0013] Yet another exemplary aspect of the invention is a watermark
detecting apparatus for detecting from a document a secret message
sequence embedded therein. The apparatus includes a layout
information obtaining unit for obtaining layout information of the
document. A digest extracting unit is configured to extract a
digest of the document by using a Hash function. An embedded
position calculating unit is configured to calculate embedded
positions where the secret message sequence is embedded in the
document. An information extracting unit is configured to extract
each secret message of the secret message sequence based on layout
changes in each of the calculated embedded positions,
respectively.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
[0014] FIG. 1 shows a flowchart of a method 100 for embedding a
watermark in an electronic text document according to an embodiment
of the present invention;
[0015] FIG. 2 shows a finite state machine (FSM) used in the method
100 as shown in FIG. 1;
[0016] FIG. 3 shows an example of result after a word triple
grouping process of a text document;
[0017] FIG. 4 shows a flowchart of a method for embedding a
watermark in a text image document according to another embodiment
of the present invention;
[0018] FIG. 5 shows a structural block diagram of a watermark
embedding apparatus for embedding a watermark in a text document
according to an embodiment of the present invention;
[0019] FIG. 6 shows an example of applications of the watermark
embedding apparatus as shown in FIG. 5 in document integrity
protection fields;
[0020] FIG. 7 shows a structural block diagram of a watermark
embedding apparatus 700 for embedding a watermark in a text
document according to another embodiment of the present
invention;
[0021] FIG. 8 shows an example of applications of the watermark
embedding apparatus as shown in FIG. 7 in document integrity
protection fields;
[0022] FIG. 9 shows an example of applications of a watermark
detecting method and apparatus according to the present invention
in document integrity protection fields;
[0023] FIG. 10 shows a flowchart of a watermark detecting method
1000 for detecting and extracting from an electronic text document
a watermark embedded therein (i.e., a secret message sequence m)
and then verifying integrity of the text document according to an
embodiment of the present invention;
[0024] FIG. 11 shows a finite state machine (FSM) used in the
method as shown in FIG. 10; and
[0025] FIG. 12 shows a structural block diagram of a watermark
detecting apparatus for detecting and extracting a watermark
embedded in a text document according to an embodiment of the
present invention.
DETAILED DESCRIPTION OF THE INVENTION
[0026] The present invention will be described with reference to
embodiments of the invention. The embodiments below do not limit
the present invention described in claims and all the combinations
of components described in the embodiments are not necessary for
means to solve the invention.
[0027] As will be appreciated by one skilled in the art, the
present invention may be embodied as a method, system, or computer
program product. Accordingly, the present invention may take the
form of an entirely hardware embodiment, an entirely software
embodiment (including firmware, resident software, micro-code,
etc.) or an embodiment combining software and hardware aspects that
may all generally be referred to herein as a "circuit," "module" or
"system." Furthermore, the present invention may take the form of a
computer program product on a computer-usable storage medium having
computer-usable program code embodied in the medium.
[0028] Any suitable computer usable or computer readable medium may
be utilized. The computer-usable or computer-readable medium may
be, for example but not limited to, an electronic, magnetic,
optical, electromagnetic, infrared, or semiconductor system,
apparatus, device, or propagation medium. More specific examples (a
non-exhaustive list) of the computer-readable medium would include
the following: an electrical connection having one or more wires, a
portable computer diskette, a hard disk, a random access memory
(RAM), a read-only memory (ROM), an erasable programmable read-only
memory (EPROM or Flash memory), an optical fiber, a portable
compact disc read-only memory (CD-ROM), an optical storage device,
a transmission media such as those supporting the Internet or an
intranet, or a magnetic storage device. Note that the
computer-usable or computer-readable medium could even be paper or
another suitable medium upon which the program is printed, as the
program can be electronically captured, via, for instance, optical
scanning of the paper or other medium, then compiled, interpreted,
or otherwise processed in a suitable manner, if necessary, and then
stored in a computer memory. In the context of this document, a
computer-usable or computer-readable medium may be any medium that
can contain, store, communicate, propagate, or transport the
program for use by or in connection with the instruction execution
system, apparatus, or device. The computer-usable medium may
include a propagated data signal with the computer-usable program
code embodied therewith, either in baseband or as part of a carrier
wave. The computer usable program code may be transmitted using any
appropriate medium, including but not limited to the Internet,
wireline, optical fiber cable, RF, etc.
[0029] Computer program code for carrying out operations of the
present invention may be written in an object oriented programming
language such as Java, Smalltalk, C++ or the like. However, the
computer program code for carrying out operations of the present
invention may also be written in conventional procedural
programming languages, such as the .degree. C" programming language
or similar programming languages. The program code may execute
entirely on the user's computer, partly on the user's computer, as
a stand-alone software package, partly on the user's computer and
partly on a remote computer or entirely on the remote computer or
server. In the latter scenario, the remote computer may be
connected to the user's computer through a local area network (LAN)
or a wide area network (WAN), or the connection may be made to an
external computer (for example, through the Internet using an
Internet Service Provider).
[0030] The present invention is described below with reference to
flowchart illustrations and/or block diagrams of methods, apparatus
(systems) and computer program products according to embodiments of
the invention. It will be understood that each block of the
flowchart illustrations and/or block diagrams, and combinations of
blocks in the flowchart illustrations and/or block diagrams, can be
implemented by computer program instructions. These computer
program instructions may be provided to a processor of a general
purpose computer, special purpose computer, or other programmable
data processing apparatus to produce a machine, such that the
instructions, which execute via the processor of the computer or
other programmable data processing apparatus, create means for
implementing the functions/acts specified in the flowchart and/or
block diagram block or blocks.
[0031] These computer program instructions may also be stored in a
computer-readable memory that can direct a computer or other
programmable data processing apparatus to function in a particular
manner, such that the instructions stored in the computer-readable
memory produce an article of manufacture including instruction
means which implement the function/act specified in the flowchart
and/or block diagram block or blocks.
[0032] The computer program instructions may also be loaded onto a
computer or other programmable data processing apparatus to cause a
series of operational steps to be performed on the computer or
other programmable apparatus to produce a computer implemented
process such that the instructions which execute on the computer or
other programmable apparatus provide steps for implementing the
functions/acts specified in the flowchart and/or block diagram
block or blocks.
[0033] For the sake of simplicity and clarity of the present
invention, in the following embodiments, it is assumed that the
watermark embedding process is performed for an English text
document and the text document to be processed only includes words
and does not include equations and graphs etc.
[0034] Furthermore, it is assumed that a secret message sequence to
be embedded, i.e., to be hidden in the text document is m:
{m.sub.0, m.sub.1, m.sub.2, . . . , m.sub.M}, wherein M+1 denotes
length of the message sequence, m.sub.j-1 denotes the j.sup.th
hidden information in the message sequence, both M and j are
nonnegative integers, and 0<j.ltoreq.M+1. The secret message
sequence m is pre-assigned, m.sub.0, m.sub.1, m.sub.2, . . . ,
m.sub.M denote an information bit to be hidden in the first,
second, . . . , (M+1).sup.th position, respectively, and they may
be one bit or more than one bit long. For example, if information
of two bits is desirable to be hidden in the j.sup.th position,
then m.sub.j-1 is two-bit long. However, for the purpose of
simplicity, in this embodiment it is assumed that only one bit
information is hidden in each position.
[0035] FIG. 1 shows a flowchart of a method 100 for embedding a
watermark in an electronic text document according to an embodiment
of the present invention.
[0036] As shown in FIG. 1, the method 100 starts at step S110.
[0037] At step S120, makeup layout information (hereinafter, also
called "layout information" for short) is obtained from the
electronic text document, e.g., a word document, which comprises,
for example, finding out an index of each line, locating words in
each line and identifying inter-word spaces etc., and then a
segmenting process is performed for the document on this basis, to
divide the document into N segments, where N is an integer. One
segment may contain combination of multiple words and may be
multiple lines, e.g., two lines or more than two lines.
[0038] Next, at step S130, a digest of the text document is
extracted, that is, a text hash TextHash of the text document,
which is obtained from content of the text document by means of a
one-way Hash function and might comprise more than one bit, is
calculated.
[0039] Then, at step S140, embedded positions of the above message
sequence m in the text document are calculated, that is, positions
where the above message sequence m is hidden in the text document
are calculated and determined.
[0040] In this embodiment, a public key driven finite state machine
(FSM) is utilized to determine the order of the respective segments
to be hidden with information. The finite state machine (FSM) is
shown in FIG. 2, in which the message sequence m': {m.sub.0',
m.sub.1', . . . , m.sub.K'} is the secret information desirable to
be embedded and the specific meaning thereof will be described
hereinafter.
[0041] The RSA-based one-way hiding function HD and extraction
function ET are defined as follows: HD(x)=x.sup.d(mod n),
ET(x)=x.sup.e(mod n),
[0042] where n=p*q, p and q are primes, d and e are a private key
and a public key, respectively. p and q are kept private, while p*q
and n are published. In general, if p and q are about 512 bits
long, it is regarded as safe. The private key d satisfies
ed.ident.1(mod.0.(n)), in which .0.(n)=(p-1)(q-1) is an Euler
function. Euclidean Algorithm can be used to calculate the private
key d. Furthermore, in order to reduce the number of bits and
complexity in the calculation process, Elliptic Curve Cryptosystem
can also be used to replace RSA.
[0043] Assume that a state sequence is denoted by S: {S.sub.0,
S.sub.1, . . . , S.sub.K}, and a position sequence for identifying
which segment is chosen to be embedded or hidden with information
bits is denoted by P: {P.sub.0, P.sub.1, . . . , P.sub.K}, in which
P.sub.j- S.sub.j(mod N), N denotes the number of the divided
segments in a document, K>M+1 and K>N. In order to ensure the
security level, N is preferably no less than 64.
[0044] In addition, it should be noted that the length of the
secret message sequence, i.e., M+1, is equal to the total number of
the divided segments, i.e., N, since it has been assumed that only
one information bit is hidden in one segment hereinbefore. Of
course, it is possible for those skilled in the art to hide more
than one information bit in each segment, or hide information bits
of the length M+l less than N in N segments (that is, in this case,
no information is hidden in one or more existing segments), and in
both cases N and M+1 must follow a certain relationship.
[0045] Assume that an initial state So satisfies the following
equation: S.sub.0=hash(m.sub.0.parallel.m.sub.1.parallel. . . .
.parallel.m.sub.N.parallel.TextHash.parallel.10 . . . 0),
[0046] where ".parallel." denotes concatenation, 10 . . . 0 is used
to complement the message sequence to be hidden to 512 bits. In a
preferred embodiment, MD5 hash algorithm is used. However, for
those skilled in the art, it can be conceived that other secure
hash algorithms can be applied to enhance the security level. It
can be seen from the above calculation equation that S.sub.0 is
independent of the layout of the document, but dependent of the
message sequence to be hidden and the content of the document.
[0047] After determining the initial state S.sub.0, the following
states can be calculated by using the private key d, that is,
S.sub.j.ident.S.sub.j-1.sup.d(mod n), and then
P.sub.j.ident.S.sub.j(mod N) is calculated, in which P.sub.j
indicates which segment is to be hidden with information.
[0048] Note here that, if a certain state S.sub.j is mapped to a
position P.sub.j.ident.S.sub.j(mod N) which is the same as a
previous position P.sub.1.ident.S.sub.1(mod N), where 1 is a
nonnegative integer, and 0.ltoreq.l.ltoreq.j-1, that is, if
P.sub.j=P.sub.1, then the case of duplicate embedding in the same
position occurs, therefore, the currently calculated position
P.sub.j is invalid. If the calculated position P.sub.j is not the
same as any of the previous positions P.sub.0, . . . , P.sub.j-1,
then P.sub.j is valid, and m.sub.j'=m.sub.j. To avoid duplicate
embedding in a certain position, when the calculated position
P.sub.j is invalid, m.sub.j' is null, which means that no
information is needed to be embedded in this position.
[0049] Then, the state sequence S and the position sequence P are
iteratively calculated using the above method, until M+1 states
S.sub.0, S.sub.1, . . . , S.sub.K different from each other, as
sell as M+1 positions P.sub.0, P.sub.1, . . . , P.sub.K different
from each other are calculated.
[0050] After obtaining the above position sequence P to be embedded
with information, the method 100 proceeds to step S150.
[0051] At step S150, the above secret message sequence, i.e.,
m.sub.0', m.sub.1', . . . , m.sub.K' are embedded in the
P.sub.0.sup.th, P.sub.1.sup.th, . . . , P.sub.K.sup.th position,
respectively, that is, m.sub.i is embedded or hidden in the
i.sup.th position P.sub.i, i.e., the P.sub.i.sup.th segment. Note
here that the secret message sequence, rather than the hash value
of the document which is only used to calculate the state values to
ensure the integrity of the document, is to be embedded.
[0052] In this preferred embodiment, hiding information is
implemented by altering the inter-word spaces.
[0053] For example, in the respective segments to be embedded with
the secret message sequence m, a word grouping process is performed
for words included in one line to divide them into a plurality of
triplets having one word overlapped with each other, then one
information bit is hidden in each corresponding segment by
adjusting the sum of the length of the left inter-word spaces and
that of the right inter-word spaces of all the triplets in this
segment.
[0054] To reduce the effect of potential inaccurate word grouping
in the document, in each line, the grouping is conducted from both
sides of a line. Assume that a line with L words is represented by
w.sub.1 W.sub.2 W.sub.3 W.sub.4 W.sub.5 W.sub.6 . . . W.sub.L-4
W.sub.L-3 W.sub.L-2 W.sub.L-1 W.sub.L, respectively, where L is a
natural number. The triplet grouping process is as follows:
[0055] (1) getting the first triplet from left, i.e., W.sub.1
W.sub.2 W.sub.3 W.sub.4 W.sub.5 W.sub.6 . . . W.sub.L-4 W.sub.L-3
W.sub.L-2 W.sub.L-1 W.sub.L;
[0056] (2) getting the second triplet from right, i.e., W.sub.1
W.sub.2 W.sub.3 W.sub.4 W.sub.5 W.sub.6 . . . W.sub.L-4 W.sub.L-3
W.sub.L-2 W.sub.L-1 W.sub.L;
[0057] (3) getting the third triplet from left, i.e., W.sub.1
W.sub.2 W.sub.3 W.sub.4 W.sub.5 W.sub.6 . . . W.sub.L-4 W.sub.L-3
W.sub.L-2 W.sub.L-1 W.sub.L;
[0058] (4) getting the fourth triplet from right, i.e., w.sub.1,
w.sub.2 w.sub.3 W.sub.4 W.sub.5 W.sub.6 . . . W.sub.L-4 W.sub.L-3
W.sub.L-2 W.sub.L-1 W.sub.L;
[0059] . . .
[0060] After performing the word triplet grouping process in the
above manner, triplets can be obtained in all, where ".left
brkt-bot. .right brkt-bot." L - 1 2 ##EQU1## denotes the round off
number operation.
[0061] FIG. 3 shows an example of result after a word triple
grouping process of an electronic text document. The case of the
triple grouping process in two segments, especially in one line is
shown in FIG. 3.
[0062] As shown in FIG. 3, it is assumed that in a certain segment
consisting of t triplets (where t is a natural number),
SpaceLeft.sub.i and SpaceRight.sub.i denote the left and right
space within the ith triplet, respectively, where i is a
nonnegative integer, and 0.ltoreq.i.ltoreq.t-1. A variable
Threshold is defined to denote the maximum error tolerance
capability against the inter-word space pixel errors caused by
printing, copying and scanning. It may be set as a global fixed
value, or a local value variant in different segments.
[0063] Assume the following equations: L = i = 0 t - 1 .times.
SpaceLeft i , .times. R = i = 0 t - 1 .times. SpaceRight i .
##EQU2##
[0064] The hiding method used is as follows:
[0065] If one information bit of "1" is to be embedded in a certain
segment, then all the middle words of all the triplets in the
segment are shifted right by to satisfy Threshold - ( L - R ) 2
.times. t ##EQU3## L-R>Threshold;
[0066] If one information bit of "0" is to be embedded in a certain
segment, then all the middle words of all the triplets in the
segment are shifted left by to satisfy Threshold - ( R - L ) 2
.times. t ##EQU4## R-L>Threshold
[0067] The left shifting or right shifting of words can be
implemented by altering the format information of the electronic
text document, e.g., altering the setting value of the inter-word
spaces or adding blanks of the setting font size between words,
etc. Note here that, if the information bit m.sub.j' to be embedded
is null, then no information is needed to be embedded in the
calculated p.sub.j.sup.th segment, that is, it is not necessary to
alter the inter-word spaces of all the triplets in this
segment.
[0068] In the respective segments consisting of several triplets,
to avoid that large-scale word shifting affects the visual quality
or even the word grouping, the size of the left and right spaces in
each triplet is estimated firstly, and thereby the middle word is
shifted accordingly. If a certain triplet does not have enough
space to shift, other triplets can be shifted more to complement
its contribution.
[0069] Of course, for those skilled in the art, other information
hiding methods can be used, for example, information can be hidden
by altering the font style.
[0070] After step S150, the method ends at step S160.
[0071] FIG. 4 shows a flowchart of a method 400 for embedding a
watermark in a text image document according to another embodiment
of the present invention.
[0072] The method as shown in FIG. 4 differs from the method as
shown in FIG. 1 only in that a layout analysis process is executed
before obtaining the layout information, since the method 400 is
used for performing a watermark embedding process on a text image
document, e.g., an image document in JPEG or TIFF format etc.
[0073] The method 400 starts at step S410.
[0074] Next, at step S420, the layout analysis process is executed
on the text image document, including OCR recognition of the image
document and other process, to obtain the layout information
including text lines and words etc.
[0075] In a preferred embodiment, a component-based bottom-up
layout analysis method may be used. For example, this method is
disclosed in T. Furon, P. Duhamel, "An asymmetric watermarking
method", IEEE Transactions on Signal Processing, Vol 51, Issue 4,
pp. 981-995, Apr. 2003. In this layout analysis method, some
preprocessing works are firstly conducted, such as converting the
image into binary format, filtering noise, and adjusting skew of
text, etc, then all the connected areas are found out and clustered
to be semantic blocks, and finally, the blocks are divided into
text lines and words according to horizontal and vertical
projections.
[0076] The processes of the following steps S430 to S470 are
similar to those of the steps S120 to S160 as shown in FIG. 1, and
thus the processes of these steps are omitted for the purpose of
conciseness and clarity.
[0077] In another preferred embodiment, the watermark embedding
method according to the present invention can be used to embed a
watermark in an electronic document in printer description language
format after issuing a document print command and before printing
the document by a printer, the application of which in the document
integrity protection is as shown in FIG. 8. In this case, in
addition to the respective steps as shown in FIG. 1, the watermark
embedding method also comprises, before step S120 of obtaining the
layout information, a printer language analysis step of analyzing
the printer description language document and then separating the
printer command and the content of the electronic document, and
after step S150 of hiding information, a printer language
reassembling step of reassembling the above printer command and the
content of the document with the watermark embedded therein to
generate a reassembled printer language document with the watermark
information.
[0078] FIG. 5 shows a structural block diagram of a watermark
embedding apparatus 500 for embedding a watermark in a text
document according to an embodiment of the present invention.
[0079] As shown in FIG. 5, the watermark embedding apparatus
includes a layout information obtaining unit 501, a digest
extracting unit 502, an embedded position calculating unit 503 and
an information hiding unit 504.
[0080] The layout information obtaining unit 501 obtains layout
information from an electronic text document (for example, a word
document) and divides the text document into several segments.
[0081] The digest extracting unit 502 obtains a digest of the text
document, i.e., TextHash, by using a one-way Hash function based on
content of the text document.
[0082] The embedded position calculating unit 503 calculates the
embedded position P.sub.0, P.sub.1, . . . , P.sub.K by using the
method described above with reference to FIG. 1.
[0083] The information hiding unit 504 embeds a corresponding
secret information m.sub.j in the corresponding position P.sub.j
calculated by the embedded position calculating unit 503 by using
the method described above with reference to FIG. 1, and generates
a text document in which the watermark is embedded (that is, in
which the secret information is hidden).
[0084] For the purpose of conciseness and clarity, the specific
processes of the layout information obtaining unit 501, the digest
extracting unit 502, the embedded position calculating unit 503 and
the information hiding unit 504 are not described in detail.
[0085] FIG. 6 shows an example of applications of the watermark
embedding apparatus 500 as shown in FIG. 5 in document integrity
protection fields.
[0086] As shown in FIG. 6, the watermark embedding process is
executed by the watermark embedding apparatus 500 for an electronic
document e-Doc edited by a document editor 602, for example,
Microsoft Word in a host computer 601, to obtain an electronic
document embedded with the watermark. Then, the document embedded
with the watermark is transmitted to a destination computer via a
network, or is printed out by a printer 604 after it is processed
by a printer driver 603 to generate a printer description language
document with the watermark and is transmitted to the printer
port.
[0087] In another preferred embodiment, the watermark embedding
apparatus according to the present invention can be used to embed a
watermark in a text image document. At this time, in addition to
the respective units as shown in FIG. 5, the watermark embedding
apparatus also comprises a layout analysis unit (not shown in the
drawing) for performing the layout analysis on the text image
document and then providing the layout information obtaining unit
501 with the analysis result.
[0088] FIG. 7 shows a structural block diagram of a watermark
embedding apparatus 700 for embedding a watermark in a text
document according to another embodiment of the present invention;
while FIG. 8 shows an example of applications of the watermark
embedding apparatus 700 as shown in FIG. 7 in document integrity
protection fields.
[0089] As shown in FIG. 8, an electronic document e-Doc edited by a
document editor 802 is processed by a printer driver 803 to
generate a printer description language document, which then is
embedded with a watermark by the watermark embedding apparatus 700
to generate a reassembled printer language document embedded with
the watermark, and then this reassembled printer language document
embedded with the watermark is transmitted to a port of a printer
804 and printed out by the printer 804.
[0090] As shown in FIG. 7, the watermark embedding apparatus 700
comprises a printer language analysis unit 701, a layout
information obtaining unit 702, a digest extracting unit 703, an
embedded position calculating unit 704, an information hiding unit
705 and a printer language reassembling unit 706.
[0091] The printer language analysis unit 701 analyzes a printer
description language document and separates the printer command and
the content of the electronic document e-Doc for further
processing.
[0092] The processes of the layout information obtaining unit 702,
the digest extracting unit 703, the embedded position calculating
unit 704 and the information hiding unit 705 are similar to those
of the layout information obtaining unit 501, the digest extracting
unit 502, the embedded position calculating unit 503 and the
information hiding unit 504 of the watermark embedding apparatus
500, and thus the descriptions thereof are omitted for the purpose
of conciseness and clarity.
[0093] The printer language reassembling unit 706 reassembles the
printer command and the content of the document embedded with the
watermark to generate a reassembled printer language document with
the watermark.
[0094] It should be noted that the watermark embedding apparatus
according to the present invention can be implemented in other
variant forms for those skilled in the art. For example, in the
case of a printer with a powerful CPU controller, the watermark
embedding apparatus can be integrated into the printer.
[0095] FIG. 9 shows an example of applications of a watermark
detecting method and apparatus according to the present invention
in document integrity protection fields.
[0096] As shown in FIG. 9, a destination computer 903 might receive
an electronic document with a watermark, which is processed by the
watermark embedding method according to the present invention, from
other computers via Internet. Furthermore, a printed document
processed by the watermark embedding method according to the
present invention might be copied by a copier 901 and scanned by a
scanner 902 to generate an electronic document, which then is
transmitted to the destination computer 903. After that, the
destination computer 903 uses the watermark detecting method and
apparatus according to the present invention, e.g., a watermark
detecting apparatus 904 to decide whether or not the received
document is complete and tampered.
[0097] FIG. 10 shows a flowchart of a watermark detecting method
1000 for detecting and extracting from an electronic text document
a watermark embedded therein (i.e., a secret message sequence m)
according to an embodiment of the present invention.
[0098] FIG. 11 shows a finite state machine (FSM) used in the
method 1000 as shown in FIG. 10. As shown in FIG. 11, S.sub.K-1, .
. . , S.sub.1, S.sub.0 and corresponding P.sub.K-1, . . . ,
P.sub.1, P.sub.0, i.e., the state sequence S and the position
sequence P are iteratively calculated from S.sub.K by using the
public key e according to S.sub.K-1=S.sub.K (mod n), based on the
process inverse to the embedded position calculating process
described above with reference to FIGS. 1 and 2. It can be easily
seen by comparing FIG. 2 with FIG. 11 that the finite state machine
as shown in FIG. 11 is an inverse process of the finite state
machine as shown in FIG. 1, in which the used key is the public key
e corresponding to the private key e.
[0099] Note here that the rules for dividing the text document into
several segments, S.sub.K, n, the public key e, Threshold
indicating the maximum error tolerance capability against the pixel
errors caused by printing, copying and scanning, and the rules for
hiding the message sequence m are all known for the watermark
detecting party. For example, they may be transmitted from the
watermark embedding party together with the electronic text
document, or may be hidden in the document in paper format by means
of conventional watermark embedding techniques (e.g., symmetric
watermarking techniques). Of course, the above information may be
notified to the watermark detecting party in other manners known by
those skilled in the art.
[0100] For the purpose of conciseness and clarity, the same
processes as those of the watermark embedding method described
above with reference to FIGS. 1 to 3 are omitted, and hereinafter
attention will be paid to those watermark detecting processes
different from the watermark embedding processes.
[0101] As shown in FIG. 10, the watermark detecting method 1000
starts at step S1010.
[0102] At step S1020, layout information is obtained from an
electronic text document, e.g., a word document, and then the
document is divided into N segments based on the same segmenting
rules as the watermark embedding party.
[0103] At step S1030, a digest is extracted based on the content of
the text document, that is to say, a Hash value of the text, i.e.,
TextHash, is calculated.
[0104] At step S1040, the positions in which the watermark is
embedded are calculated.
[0105] P.sub.K is calculated from S.sub.K based on
P.sub.K.ident.S.sub.K(mod N).
[0106] Next, at step S1050, the hidden secret information is
extracted from the calculated embedded positions.
[0107] When extracting the hidden information, the same rules as
the rules used when hiding information by the watermark embedding
party are used. For example, still taken hiding information by
altering inter-word spaces as an example, the description will now
be given.
[0108] In the P.sub.K.sup.th segment calculated by step S1040, let
L = i = 0 t - 1 .times. SpaceLeft i ##EQU5## and ##EQU5.2## R = i =
0 t - 1 .times. SpaceRight i , ##EQU5.3## and then compare L with
R. If L-R>Threshold, then let m.sub.K'=1. Otherwise, if
R-L>Threshold, then let m.sub.K'=0.
[0109] After that, at step S1060, it is decided whether the
beginning of the secret message sequence has arrived or not. That
is, the decision is made by calculating
S.sub.j-1.ident.S.sub.j.sup.e(mod n) and P.sub.j.ident.S.sub.j(mod
N), and then by extracting m.sub.j' from the calculated position
Pj. If the following equation is satisfied:
hash(m.sub.j'.parallel.m.sub.j+1'.parallel. . . .
.parallel.m.sub.K'.parallel.TextHash.parallel.10 . . . 0)=S.sub.j
(1),
[0110] which means that the beginning of the secret message
sequence has arrived, that is, which means all the embedded secret
information has been extracted from the text document, then the
method 1000 ends at step S1070. In this case, the secret
information embedded in the text document is m.sub.K'.
[0111] If the two values in the Equation (1) are not the same,
which means the beginning of the secret message sequence has not
arrived. Next, the above steps S1040 to S1060 are repeated until
the Equation (1) is satisfied.
[0112] It should be explained that in the above iterative
calculation process, in order to be consistent with the information
hiding process, if a posterior position P.sub.j is the same as a
previous position P.sub.1, that is, P.sub.j=P.sub.1, where 023
l.ltoreq.j-1, which means that P.sub.j is invalid, then let
m.sub.1'=m.sub.j! and make m.sub.j' null.
[0113] After the above iterative calculation process ends, that is,
after it is determined that the above equation is satisfied,
m.sub.0', m.sub.1', . . . , m.sub.K' can be obtained, in which the
respective non-null values starting with m.sub.0' are the secret
information m.sub.0, m.sub.1, . . . , m.sub.M actually hidden in
the text document in proper order.
[0114] The watermark detecting method according to the present
invention is also implemented in other variant forms. For example,
it can be used for detecting the watermark in a text image document
or a printed document in paper format. When used for detecting the
watermark in the text image document, a step S1015 of OCR
recognizing and analyzing layout information is needed to be added
between step S1010 and step S1020. When used for detecting the
watermark in the printed document, in addition to the above step
S1015, a step S1011 of scanning the printed document is needed to
be added before step S1015.
[0115] FIG. 12 shows a structural block diagram of a watermark
detecting apparatus 1200 for detecting and extracting a watermark
embedded in a text document according to an embodiment of the
present invention.
[0116] As shown in FIG. 12, the watermark detecting apparatus 1200
comprises a layout information obtaining unit 1201, a digest
extracting unit 1202, an embedded position calculating unit 1203, a
hidden information extracting unit 1204 and a deciding unit
1205.
[0117] The functions of the layout information obtaining unit 1201
and the digest extracting unit 1202 are similar to those of the
layout information obtaining unit 501 and the digest extracting
unit 502, and thus the descriptions thereof are omitted here.
[0118] The deciding unit 1205 decides, based on the current state,
the extracted digest of the document and the respective extracted
secret messages, whether all the embedded secret messages have been
extracted or not, that is, decides whether the Equation (1)
described above with reference to FIG. 10 is satisfied or not.
[0119] The embedded position calculating unit 1203 calculates the
embedded positions P.sub.0, P.sub.1, . . . , P.sub.K by using the
method described above with reference to FIG. 10, and decides
whether the beginning of the message sequence has arrived. The
hidden information extracting unit 1204 extracts the hidden
information from the corresponding calculated positions by using
the method described above with reference to FIG. 10. The specific
processes of the two units are omitted for the purpose of
conciseness and clarity.
[0120] The secret information can be hidden safely in the text
document including the electronic text document and the text image
document by using the watermark embedding method and apparatus and
the watermark detecting method and apparatus according to the
present invention, and only the authorized receiving party, i.e.,
the receiving party having the public key can extract the hidden
information from the text document. For the unauthorized receiving
party, in the process of detecting the watermark, the probability
of satisfying the Equation (1) is close to zero during the
stipulated iterations, e.g. 16N iterations, and thus it is possible
to detect malicious attacks.
[0121] Moreover, the authorized receiving party cannot forge or
modify the hidden information even though he can extract and read
the hidden information, since the above methods and apparatus
according to the present invention are based on the public key
pair. Therefore, by using the methods and apparatus according to
the present invention, the integrity of the text document can be
protected. Specifically, even though a person has been authorized
to extract and read the hidden information, once he forges or
modifies a certain hidden information bit m.sub.i, the iteration
terminating condition, i.e., the Equation (1) in the watermark
detecting process cannot be satisfied, and thus the iterative
calculation is infinite, and it will be reported that the integrity
of the received document has been damaged.
[0122] In summary, the methods and apparatus according to the
present invention can achieve better integrity protection of the
text document in the whole document lifecycle including printing,
copying and scanning, and can safely hide the information, which is
not desirable to be seen by the public, in the document.
[0123] It should be noted that the embodiments described above are
used only for illustrating the present invention and is not
intended to make limitation to the present invention.
[0124] Furthermore, the respective processing operations described
above can be implemented in the form of computer executable
programs stored in various storage media. The storage media include
and are not limited to various memories and memory units,
semiconductor devices, magnetic disk units such as optical disks,
magnetic disks and optical magnetic disks, as well as other media
suitable for storing information. In addition, the present
invention can be implemented by downloading programs via the
network.
[0125] Although the embodiments of the present invention have been
described in conjunction with the appended drawings, those skilled
in the art can make any modification or change to the above
embodiments without departing from the spirit and scope of present
invention defined by the appended claims.
[0126] For example, although hereinbefore the preferred embodiments
of the present invention have been described as to the watermark
embedding process and the watermark detecting process for the text
document including the electronic text document and the text image
document, it is known for those skilled in the art that the present
invention can be applied to video, audio and graphic documents.
[0127] The flowchart and block diagrams in the Figures illustrate
the architecture, functionality, and operation of possible
implementations of systems, methods and computer program products
according to various embodiments of the present invention. In this
regard, each block in the flowchart or block diagrams may represent
a module, segment, or portion of code, which comprises one or more
executable instructions for implementing the specified logical
function(s). It should also be noted that, in some alternative
implementations, the functions noted in the block may occur out of
the order noted in the figures. For example, two blocks shown in
succession may, in fact, be executed substantially concurrently, or
the blocks may sometimes be executed in the reverse order,
depending upon the functionality involved. It will also be noted
that each block of the block diagrams and/or flowchart
illustration, and combinations of blocks in the block diagrams
and/or flowchart illustration, can be implemented by special
purpose hardware-based systems that perform the specified functions
or acts, or combinations of special purpose hardware and computer
instructions.
[0128] The terminology used herein is for the purpose of describing
particular embodiments only and is not intended to be limiting of
the invention. As used herein, the singular forms "a", "an" and
"the" are intended to include the plural forms as well, unless the
context clearly indicates otherwise. It will be further understood
that the terms "comprises" and/or "comprising," when used in this
specification, specify the presence of stated features, integers,
steps, operations, elements, and/or components, but do not preclude
the presence or addition of one or more other features, integers,
steps, operations, elements, components, and/or groups thereof.
[0129] The corresponding structures, materials, acts, and
equivalents of all means or step plus function elements in the
claims below are intended to include any structure, material, or
act for performing the function in combination with other claimed
elements as specifically claimed. The description of the present
invention has been presented for purposes of illustration and
description, but is not intended to be exhaustive or limited to the
invention in the form disclosed. Many modifications and variations
will be apparent to those of ordinary skill in the art without
departing from the scope and spirit of the invention. The
embodiment was chosen and described in order to best explain the
principles of the invention and the practical application, and to
enable others of ordinary skill in the art to understand the
invention for various embodiments with various modifications as are
suited to the particular use contemplated.
[0130] Having thus described the invention of the present
application in detail and by reference to embodiments thereof, it
will be apparent that modifications and variations are possible
without departing from the scope of the invention defined in the
appended claims.
* * * * *