Conseal 2024.9 | Coderz Repository

conseal 2024.9

Last updated:

0 purchases

conseal 2024.9 Image
conseal 2024.9 Images

Free

Languages

Categories

Add to Cart

Description:

conseal 2024.9

conseal
Python package, containing implementations of modern image steganographic algorithms.

:warning: The package only simulates the embedding, which is useful for steganalysis research. We do not provide any end-to-end steganography method.

Installation
Simply install the package with pip3
pip3 install conseal

or using the cloned repository
git clone https://github.com/uibk-uncover/conseal/
cd conseal
pip3 install .

Contents



Steganography method
Domain
Reference




nsF5: no-shrinkage F5
JPEG
Original F5 algorithm, no-shrinkage extension


EBS: entropy block steganography
JPEG
Reference


UERD: uniform embedding revisited distortion
JPEG
Reference


J-UNIWARD: JPEG-domain universal wavelet relative distortion
JPEG
Reference



Usage
Import the library in Python 3
import conseal as cl

This package currently contains the three JPEG steganography methods J-UNIWARD, UERD, and nsF5. The following examples show how to embed a JPEG cover image cover.jpeg with an embedding rate of 0.4 bits per non-zero AC coefficient (bpnzAC):

J-UNIWARD

# load cover
im_spatial = jpeglib.read_spatial("cover.jpeg", jpeglib.JCS_GRAYSCALE)
im_dct = jpeglib.read_dct("cover.jpeg")

# embed J-UNIWARD 0.4
im_dct.Y = cl.juniward.simulate_single_channel(
cover_spatial=im_spatial.spatial[..., 0],
cover_dct_coeffs=im_dct.Y,
quantization_table=im_dct.qt[0],
embedding_rate=0.4,
seed=12345
)

# save result as stego image
im_dct.write_dct("stego.jpeg")


UERD

# load cover
im_dct = jpeglib.read_dct("cover.jpeg")

# embed UERD 0.4
im_dct.Y = cl.uerd.simulate_single_channel(
cover_dct_coeffs=im_dct.Y,
quantization_table=im_dct.qt[0],
embedding_rate=0.4,
seed=12345
)

# save result as stego image
im_dct.write_dct("stego.jpeg")


nsF5

# load cover
im_dct = jpeglib.read_dct("cover.jpeg")

# embed nsF5 0.4 bpnzAC
im_dct.Y = cl.nsF5.simulate_single_channel(
cover_dct_coeffs=im_dct.Y,
embedding_rate=0.4,
seed=12345
)

# save result as stego image
im_dct.write_dct("stego.jpeg")


EBS

# load cover
im_dct = jpeglib.read_dct("cover.jpeg")

# embed EBS 0.4 bpnzAC
im_dct.Y = cl.ebs.simulate_single_channel(
cover_dct_coeffs=im_dct.Y,
quantization_table=im_dct.qt[0],
embedding_rate=0.4,
seed=12345
)

# save result as stego image
im_dct.write_dct("stego.jpeg")


HUGO

# load cover
cover_spatial = np.array(Image.open("cover.png"))

# embed HUGO 0.4 bpnzAC
stego_spatial = cl.hugo.simulate_single_channel(
cover_spatial=cover_spatial,
embedding_rate=0.4,
seed=12345)

# save result as stego image
Image.fromarray(stego_spatial).save("stego.png")


HILL

# load cover
cover_spatial = np.array(Image.open("cover.png"))

# embed HUGO 0.4 bpnzAC
stego_spatial = cl.hill.simulate_single_channel(
cover_spatial=cover_spatial,
embedding_rate=0.4,
seed=12345)

# save result as stego image
Image.fromarray(stego_spatial).save("stego.png")

Acknowledgements and Disclaimer
Developed by Martin Benes and Benedikt Lorch, University of Innsbruck, 2023.
The J-UNIWARD and nsF5 implementations in this package are based on the original Matlab code provided by the Digital Data Embedding Lab at Binghamton University.
We also thank Patrick Bas and Rémi Cogranne for sharing their implementations of UERD and EBS with us.
We have made our best effort to ensure that our implementations produce identical results as the original Matlab implementations. However, it is the user's responsibility to verify this.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product: (if this is empty don't purchase this product)

Customer Reviews

There are no reviews.