• 沒有找到結果。

Comparison

在文檔中 新型態的影像分享技術 (頁 70-0)

Chapter 3 Visual Cryptography in Two-level style: the VC with Extra Ability of

4.3 Comparison

Below we compare our method with Ref. [TCC2002, FWTC2005] (but not with Ref.

[CC2005], because there is no experiment there). Tsai et al [TCC2002] proposed an elegant method using visual cryptography and LSB hiding to deal with multiple secrets images. For c(4,2)=6 secret images of size 200x200 each, Ref. [TCC2002] hid the corresponding 6×200×200 bytes using just 4 stego images (each is of size 600×600 and about 42.5 dB in PSNR). Any two of the four can be combined to extract one of the six secrets. For our universal approach, assuming n=4 shares are created for each image.

Before hiding the generated shares, our storage space is 200×200×((1/4) ×1+(3/4) ×6)

=4.75×200×200 bytes where (1/4) ×1=1/n is for the universal share, and (3/4)x6=((n-1)/n)x6 is for the non-universal shares of the six secret images. Ours thus saves more space than [TCC2002] does (4.75 : 6, before hiding). If we also hide the

bytes to obtain stego images of PSNRs much better than 42.5 dB; while theirs is 4×600×600=36×200×200 bytes to obtain their 42.5dB stego images. However, their secret image can be recovered losslessly, ours is lossy. In their system, there is no super share (the company’s organizer’s share), but we have one. So, ours is suitable when the boss of a company wants to control every secret, while [TCC2002] (and [FWTC2005] mentioned below) is suitable for team work in which every teammate is of equal importance.

By summing up the variables used in the sharing polynomials, Feng et al proposed in [FWTC2005] another gorgeous sharing method for multiple secret images. They can use, say, 5 shares {a,b,c,d,e}, and unveil secret image 1 using {a,b,c}, unveil secret image 2 using {a,d,e}, etc. In general, before hiding the sharing result, their total size of the sharing result is 1 to 2 times larger than the total size of the input secret images. So, size expansion occurs. To the contrary, ours has size reduction effect, because our total size of the sharing result is even smaller than the total size of the input secret images. More precisely, our size is only (1-(1-S-1)/n) ×100% of the input, where S is the number of secret images, and n is the number of shares for each secret image. So, our benefit is again the economic size. However, just like [TCC2002], the method in [FWTC2005] can get lossless recovery of the secret images.

4.4. Summary

In summary, the proposed sharing method is space-saving and with a convenient

universal share. The advantages are achieved by tolerating an invisible distortion in the recovered images. For instance, the recovered images in Fig. 4.2(b) and 4.3(b) are 52.5 dB in PSNR, when being compared with the original images in Fig. 4.2(a) and 4.3(a). As a remark, our program can be run repeatedly to handle any number of secret images, for instance, 1000 secret images, without the need for reprogramming. Additionally, the universal share U can be non-noisy, because U can be any kind of images, including ordinary photos. Hence, only non-universal shares, which always look noisy, need post-processing hiding.

Chapter 5

Fast-decoding sharing: by using bit-level sharing and economic size shares

Image sharing can deal with the need of transmitting or storing an image against interceptor. In an (r,n) image sharing system (r≤n), the given image is shared among n shares. Each share is like a random noise image, and some people might hide these noisy shares in other less important images to increase security further. The n shares are then transmitted through (or stored in) n of the many existing channels. If there are 100 channels, then there are n ″used″ channels, and the remaining 100-n channels are just channels not used by this image. To recover the image, any r of the n used channels can cooperate to recover it, but less than r used channels cannot. As a result, sharing among n of the many existing channels can balance between fault-tolerance (up to n-r used channels can be disconnected) and security (up to r-1 of the n used channels can be intercepted, not to mention that each of the much-more-than-n channels is usually filled with many other coy or ordinary images not related to the given important image).

To share an image, a possible way is to use polynomial-style sharing (PSS) (see Ref.

[TLIEEE2003, TL2002, WTL2004]). Using PSS can get shares of smaller size, but it is ″extremely″ time-consuming in the decoding phase to recover the image from the r

received shares. There is another way to share an image, as stated below. In Ref.

[LP2005], Lukac and Plataniotis successfully applied visual-cryptography (VC) techniques in a bit-level manner (using VC on each bit-planes) and obtain another type of image sharing method having the following good properties:

1. real-time decoding, as opposed to PSS approach;

2. lossless recovery of images (PSS is also lossless).

The only disadvantage in [LP2005] is that each (grey or colour) share is several times bigger than the given image. In the current paper, we propose an alternative method that is also bit-level based. This new method keeps the above advantages of [LP2005], and uses shares of size smaller than that of [LP2005] (thus reduce their transmission time and storage space). In the case where r = n, our share-size is even smaller than the size of the input image; while the share-size in [LP2005] is, say, 4 times greater the input image. (As for the (r,n) case (with r<n), our share-size is a little smaller than that in [LP2005].)

5.1. The method

For a given H×W gray-value or color-value image G, and for a given pair of parameters (r,n), our method to create the n expected shares is as follows (also see Fig.

5.1):

parts and lower parts (see Fig. 5.2). For the given parameter pair (r, n), the upper part is the first [n/(n+1)]×H×W pixels of the input image; while the lower part is the remaining [1/(n+1)]×H×W pixels. (So, the upper part is always bigger than the lower part, since n>1.)

2 Notably, there are 8 bit-planes for a grey image (or, 24 bit-planes if color).

Each bit-plane B = BU ∪ BL also has its own upper part BU and lower part BL. The upper part BU is the first [n/(n+1)]×H×W bits of plane B; while the lower part BL is the remaining [1/(n+1)]×H×W bits.

3. Sequentially pick a not-yet-processed bit-plane B = BU ∪ BL to process, until all 8 (or 24) bit-planes are processed. Each bit-plane is processed by two sub-steps to generate n binary-value shares {S1,…,Sn} for this bit-plane. The two sub-steps are:

(3-i) Share the lower part.

(3-ii) Then, share the upper part.

(The details of (3-i) and (3-ii) are described later in Sec. 5.2.1 for the case r=n;

and then described again in Sec. 5.2.2 for the case r<n.)

4. For each share-index m in {1,2,..,n}, combine the 8 binary-value shares (or 24 binary-value shares) of the same share-index m (but from 8 or 24 distinct bit-planes) to form a grey (or color) share. Therefore, we get n grey (or color)

shares.

Fig .5.1 Flowchart of the proposed method.

(OriginG

(a) (b1) (b2)

Fig. 5.2. An example of split. (a) is the original, (b1) is the upper part, and (b2) is the lower part.

PRE-PROCESSING: Split the bit-plane B into upper part BU and lower part BL. (The first HW

For each share Sm, where m =1,2,…,n-1, randomly assign its bits located at {n×i+m:

i=0,1,2,….}. As for the last share, i.e. Share Sn , we do not randomly assign its bits located at {n×i+n; i=0,1,2,….}. Instead, we use the lower part (BL) of B to compute the bit-values of the share Sn at location {n×i+n; i=0,1,2,….}. More specifically, for each i=0,1,2, …, we compute the value of Sn(n×i+n) by

Sn (ni+n) =[ S1 (n×i+1) S♁ 2 (ni+2) … ♁ ♁Sn-1 (n×i+[n-1]) ] B♁ L(i)

where is the exclusive♁ -OR operator. Note that Sn (n×i+n) is computed this way because later we can recover the lower part of B by using

BL(i) = S1 (n×i+1) ♁S2 (n×i+2) …♁ ♁Sn-1 (n×i+[n-1]) ♁Sn (n×i+n) Step 2. (Sharing the Upper part (BU) of B.)

Use data BU (the upper part of B) to determine the remaining bits of all shares. The requirement is very simple: at each position t, we require that

BU (t) = S1 (t) ♁S2 (t) …♁ ♁Sn (t).

In other words, we only requires that: there are ″odd″ number of 1s appearing in the n-bits set {S1 (t), S2 (t), …, Sn(t)} if and only if BU (t)=1. ♦♦

Example (k=3,n=3)

Assume the upper n/(n+1)=3/(3+1)=3/4 part of the original bit-plane B is BU= 1010101…; and assume the lower 1/(n+1)=1/(3+1)=1/4 part of B is BL=1110…. Then,

where each share has (3H/4)×W bits when the bit-plane B has H×W bits.

Step 1. For Share S1, randomly assign its bits at {1,4,7,…} = {3i+1: i=0,1,2,….}.

For Share S2, randomly assign its bits at {2,5,8,…} = {3i+2: i=0,1,2,….}. However, for the last share, i.e. Share S3 (because n=3), we do not randomly assign its bits at {3,6,9,…} = {3i+3: i=0,1,2,….}. Instead, we use the lower part (BL) of B to compute the values of these bits at location {3,6,9,…} of Share 3. More specifically, for each i=0,1,2,3,4…, we require that

S3 (3i+3) = S1(3i+1) ♁S2 (3i+2) ♁BL ( i )

for the purpose that later we can recover the lower part of B by using BL( i ) = S1 (3i+1) ♁S2 (3i+2) ♁S3 (3i+3).

For example, since BL is assumed to be 1110... in this example, the above idea of Step 1 can be illustrated by Fig. 5.3.

Fig. 5.3. Step 1 of the (k=3,n=3) example.

S1 (Random values at 1,4,7, …) 1 ? ? 1 ? ? 0 S2 (Random values at 2,5,8, …) ? 0 ? ? 1 ? ?

Data BL (Lower part of B) 1 1

S3 (Compute bits 3,6,9,.. by ♁) ? ? 0 ? ? 1 ?

Step 2. Use data BU (the upper part of B) to determine the remaining bits of all shares. The requirement is very simple: at each position t, we require that

BU (t) = S1 (t) ♁S2 (t) ♁S3 (t).

In other words, there are ″odd″ number of 1s appearing in these three bits {S1(t), S2(t), S3(t)} if and only if BU (t)=1. One of the many solutions is shown in Fig. 5.4. Note that all three shares have been created after Step 2.

S1 1 ?=0 ?=1 1 ?=0 ?=1 0

S2 ?=0 0 ?=0 ?=1 1 ?=0 ?=0

S3 ?=0 ?=0 0 ?=0 ?=0 1 ?=1

data BU (upper part of B) 1 0 1 0 1 0 1

Fig. 5.4. Step 2 of the (k=3,n=3) example.

5.1.2. Sharing a bit plane B in the (r,n) case, i.e. when r<n.

(r,n) Algorithm (The (r,n) algorithm that shares a bit-plane B which has H×W

bits.)

INPUT: The H×W bits of a bit-plane B.

OUTPUT: The n shares {S1, S2 , … , Sn}. Each share has H×W×n/(n+1) ″blocks″

PRE-PROCESSING: As before, split the bit-plane B into upper part BU and lower C0 and C1 is introduced in many other papers, see Ref. [NS1994] for example, we do not introduce the detail here.) No matter how they are created, this pair must have the following properties:

● Each matrix has n rows. Each entry of the two matrices is just a single bit whose value is either 0 or 1; each 1 means a black dot while each 0 means a white dot.

● ″Stacking″ r of the n rows of C0 (or C1) is defined as getting a row whose ith element is the result of using the ″OR″ operator (not

″exclusive-OR″) on the ith elements of the corresponding r rows.

● Stacking any r rows of C0 together always get a row whose number of 1s are less than the number of 1s obtained from stacking any r rows of C1.

Step 1 (To share the information of BL, i.e. the lower part of B).

(1-i) Initially, let q=1.

(1-ii) Let p be the q-th bit of the string BL, i.e. p=BL(q).

permutation subroutine is quite easy to design, so we omit it here.) Then, for all k=1,…,n, paint the qth block of the share Sk using the kth row of Cp´.Then go to Step (2-iv).

(2-iv). If q reaches H +1 n

n , then go to post-processing. Else, let q Åq+1and go

C0 :

POST-PROCESSING: We already have n shares, and each share is a sequence of

1H + n

n ×W blocks. Now, convert each sequence of blocks from 1-dim block-string to

its 2-dim image version. In other words, for each share, divide its H +1

Assume the upper n/(n+1)=6/(6+1)=6/7 part of the original bit-plane B is BU= 1001…;

and assume the lower 1/(n+1)=1/(6+1)=1/7 part of B is BL=1011…. Then, we show how to use the above algorithm to produce the n=6 shares {S1, …, S6}, where each share has (6H/7)×W ″blocks″ when the bit-plane B has H×W bits.

Step 0. Create a pair of basis matrices C0 and C1 for the (2,6) system. Since n=6, each matrix has 6 rows. The two matrices in Fig. 5 obviously meet the requirements stated in the Step 0 of the algorithm.

Fig. 5.5. The basis matrices C0 and C1 used for the (2,6) system in the example.

Step 1: (To share BL=1011…, i.e. to share the lower part of B.)

See Fig. 5.6 to understand Step 1. Because the 1st bit of BL is 1, We look up the matrix C1. Then, use the 1st row of C1 , i.e. use 1100 to paint 1st block of share S1.(Since 1100 means BBWW, we may use the first two entries (BB) to paint the upper half of the block, then use the next two entries (WW) to paint the lower half of the block.) Analogously, the share S2 uses 1010 (the 2nd row of C1) to paint its 2nd block. The share S3 uses 1001 (the 3rd row of C1) to paint its 3rd block. The share S4

uses 0110 (the 4th row of C1) to paint its 4th block. The share S5 uses 0101 (the 5th row of C1) to paint its 5th block. The share S6 uses 0011 (the 6th row of C1) to paint its 6th block. Then the cycle repeats itself again using next bit of BL. Since BL(2)=0, we use C0 now. The rows 1-6 of C0 are copied respectively (one row per share), to 7th block of S1, 8th block of S2, 9th block of S3, 10th block of S4, 11th block of S5, and 12th block of S6. This is Cycle 2. Third cycle uses BL(3)=1 to grab C1 to paint the (12+i)ith block of the share Si (i=1,2,..6). The process repeats again and again until all bits of BL are used.

(a)

(b)

(c)

(d)

(e)

(f)

Fig. 5.6 Step 1 for the (r=2, n=6) example. Here, (a)-(f) are, respectively, the six shares S1 – S6.

Step 2: (To share BU , i.e. to share the upper part of B.)

See Fig. 5.7. to understand Step 2. Note that the upper part of B is 1001…; so, we look up first C1, then C0, then C0 again, then C1 again, and so on. First, because BU(1)

= 1, we use the six rows of C1 to paint the 1st blocks of shares S1-S6. In this painting, the painted pattern of the 1st block of the 1st Share (S1)has no contradiction with what it had been painted earlier in Step 1. (The block had been painted earlier in Step 1 as 1100 (i.e. BBWW), so, no contradiction if we use the 1st row of C1 to paint it.) Therefore, the 1st blocks of all six shares are done using the six rows of C1. Now we

proceed to BU(2). Since BU(2)=0, we use the six rows of C0 to paint the 2nd blocks of shares S1-S6. Again, this painting is accepted because the painted pattern of the 2nd block of the 2nd share (S2)has no contradiction with what it had been painted earlier in Step 1. Now we proceed to BU (3).Because BU (3)=0, we also try to use the six rows of C0 to paint the 3rd blocks for Shares S1-S6. However, we find that this will cause the 3rd block of the 3rd share (S3)has contradiction with what it is already painted in Step 1 earlier. (The block had been painted in Step 1 as 1001 (i.e. BWWB), rather than 1010 (i.e. BWBW) ). Therefore, we permute the columns of C0 to get a temporary matrix C0´ whose 3rd row is also 1001. Then, we use the six rows of the new matrix C0´ to paint the 3rd blocks of the six shares. Notably, all six rows of C0´ become 1001 after this permutation of columns; that explains why the 3rd blocks of all six shares are painted as 1001 (BWWB) in Fig. 7. Now, we proceed to the 4th bit of BU and find that BU(4)=1, so we use the six rows of C1 to paint the 4th blocks for Shares S1-S6. In the painting, the painted pattern of the 4th block of the 4th Share (S4)has no contradiction with what it had been painted in Step 1 earlier. (The block had been painted earlier in Step 1 as 0110 (i.e. WBBW), so, no contradiction if we use 4th row of C1 to paint it.) Therefore, the 4th blocks of the six shares are done using the six rows of C1. Our explanation ends here, for the remaining process are similar.

(a)

(b)

(c)

(d)

(e)

(f)

Fig. 5.7 Step 2 for the (r=2, n=6) example. Here, (a)-(f) are, respectively, the six shares S1 – S6. Darker elements were determined earlier in Step 1, and hence cannot be changed now in Step 2.

5.2. Experiments

In the first experiment, the (r,n) is (2,2). The result is shown in Fig 5.8, of which (a) is the input gray-value image Lena; (b) and (c) are the two gray-value shares (the size of each share is just n/(n+1)=2/3 of that of (a)); (d) is the restored error-free result using (b) and (c). The result can be compared with Fig. 5.9, which is a result appeared in Ref. [LP2005]. In Fig. 5.9, their recovery is also error-free (just like ours), but each of their shares is 4 times lager than the input image, while each of our shares is n/(n+1)=2/3 times smaller than the input image. In other words, their share-size is (2×2)×(3/2)=6 times bigger than ours if the input image is the same.

(a) (b) (c) (d)

Fig. 5.8. An (r=2,n=2) experiment using our method. (a) is the input gray-value image;

(b) and (c) are the two gray-value shares (the size of each share is just n/(n+1)=2/3 of that of (a)); (d) is the restored error-free result (identical to (a)) using (b) and (c).

Fig. 5.9. An (r=2, n=2) experimental result in Ref. [LP2005]. (a) is the input grey-value image; (b-c) are the two grey-value shares (each share is 2×2=4 times bigger than (a)); (d) is the restored error-free result (identical to (a)) using (b) and (c).

In the second experiment, the (r,n) is (2,6). The result is shown in Fig 5.10, of which (a) is the input gray-value image Lena; (b) is one of the six gray-value shares (each share is (n/(n+1))×(2×2)= (6/7) ×(2×2) =3.43 times greater than (a)). Using any two of the six shares, we can get the error-free recovery of the input image (identical to (a)). The result can be compared with Fig. 5.11, which is a result appeared in Ref.

[LP2005]. In Fig. 5.11, their recovery is also error-free (just like ours), and each of their shares is 4 times lager than the input image, while each of our shares is (2×2) × 6/7 =3.43 times larger than the input image. Therefore, their share-size is (n+1)/n = 7/6 times bigger than ours if the input image is the same.

(a) (b) (c) Fig. 5.10. An (r=2, n=6) experiment using our method. (a) is the input gray-value image; (b) is one of the six gray-value shares (each share is (n/(n+1))×(2×2)=(2×2)×6/7=3.43 times greater than (a)); (c) is the restored error-free result (identical to (a)) using any two of the six shares

(a) (b) (c)

Fig. 5.11. An (r=2, n=6) experimental result in Ref. [LP2005]. (a) is the input grey-value image; (b) is one of the six grey-value shares (each share is 2×2=4 times bigger than (a)); (c) is the restored error-free result (identical to (a)) using any two of the six shares.

In general, in the (n,n) cases, e.g. the (2,2), or (3,3), or (4,4) cases, each of their shares is 2×2×(n+1)/n times larger than ours. Note that 2×2×(n+1)/n is a number

between 4 and 6. We can therefore save more transmission time or storage space than the method in [LP2005] does. On the other hand, in the (r,n) cases, then each of their shares is (n+1/n) times larger than ours. Note that (n+1)/n is a number between 1 and 4/3=1.33 (for n>2 in the (r,n) case, because r cannot be 1.) Of course, as compared with [LP2005], we still have a little advantage of space-saving or communication-time-saving in the (r,n) cases, although the advantage is not as sharp as in the (n,n) cases.

Table 5.1 provides a look of the processing time. The computer being used is a Pentium IV PC, and the image being shared is a 256×256 gray-value image. The unit used is millisecond (0.001 seconds per unit; therefore, 3.7 means 0.0037 seconds).

When it is (r,n) case, our performance is similar to [LP2005], no matter it is encoding or decoding. But, when it is (n,n) case, our method is obviously faster than [LP2005], no matter it is encoding or decoding. The reason is that, in the (n,n) case, we did not use any kind of blocks (for example, the 2×2 blocks) to expand any pixel. For readers’

interest, we also list the processing time of the polynomial-style-sharing (PSS, see [TL2002]). Its decoding time is definitely much slower than bit-level methods (ours and [LP2005]). As for its encoding time, PSS beats us and [LP2005] in the (r,n) case, but lose to us and [LP2005] in the (n,n) case. The reason is that in the (n,n) case our

In summary, in the (n.n) case, we lead both [LP2005] and PSS [TLIEEE2003], no matter it is encoding or decoding. In the (r,n) case, PSS takes the lead in encoding, but falls far behind ours and [LP2005] in decoding.

Table 5.1. Comparison of the processing time; the unit is ″millisecond″. ([LP2005]

did not give the detail about (3,3) case, so we did not list data here, although we know that the time for (3,3) is longer than that in the (2,2) case.)

encoding encoding encoding decoding decoding decoding (r,n)

( or (n,n) ) (2,2) (3,3) (2,6) (2,2) (3,3) (2,6)

Ours 11.7 11.8 234.2 3.7 4.4 13.1

[LP 2005] 243.7 N/A 243.7 17.4 N/A 17.4

Polynomial 34.3 182.9 115.5 185.5 418.8 206.3

5.3. Summary

In this chapter, we have proposed a sharing method for grey or color images. The decoding speed, just like the one in [LP2005], is real-time. The recovered image is lossless; so is [LP2005]. But our method uses shares of size smaller than those used in [LP2005], and hence, transmission time and storage space can be saved. This advantage is particularly obvious in the (n,n) systems, i.e. when r=n. In that case, each grey/colour share is 4 to 6 times smaller than that used in [LP2005], and the

processing speed (no matter it is encoding or decoding) is also much faster than in [LP2005].

Both [LP2005] and our method are bit-level based; and each bit-plane is processed independently. Therefore, if the transmission time (or storage space) is too limited, people may discard some less important bit-planes. For example, discard the last 2 bit-planes and only use the most important 8-2=6 bit-planes, then each grey-value share is actually a physical-combination of six bit-plane shares rather than a combination of eight bit-plane shares. Therefore, each share is reduced in size to 6/8 of the original grey-value share. As a remark, if only the least important one of the eight bit-planes is removed, then the PSNR of the reconstructed image is about 52 db.

If two least important planes are removed, then the PSNR is at least 39 db.

Chapter 6

Conclusions and Future works

6.1 Conclusions

Four new types of image sharing have been proposed in this dissertation, and they are: turnover, two-level, universalizing, and fast decoding. The first two types can both be used in the authentication of the shares, or used in the background description of the secret image being shared. The universalizing sharing is for easy management of the shares, and the fast-decoding sharing is for the real-time reconstruction of the shared secret images.

In the turnover style, for any two given secret images, two corresponding noisy transparencies are produced. If we stack the front view of both transparencies, then we can see the first secret image. On the other hand, if we stack the front view of Transparency 1 with the back view (the turnover) of Transparency 2, then the second secret image is unveiled. We have also analyzed why 3-by-3 extension, rather than 2-by-2, is needed in turn-over design.

In the two-level style, we have presented a two-in-one visual cryptography

In the two-level style, we have presented a two-in-one visual cryptography

在文檔中 新型態的影像分享技術 (頁 70-0)

相關文件