CREDI-CRYPT is a technique that hides sensitive credit card information in a background image using both cryptography and steganography. It encodes credit card details like the card number and CVV using techniques like arithmetic coding and Hamming codes. The encoded text is then embedded into the pixel coefficients of the cover image using an integer wavelet transform and optimal pixel adjustment. This ensures confidentiality and integrity of credit card transactions while transmitting payment details over unsecured networks. The system was designed to be used as a standalone application by small to medium banks and organizations for securely storing credit card data without network transfer.
2. Introduction
â˘CREDI-CRYPT is a technique for hiding sensitive credit card
information in an arbitrary background image without the
sensitive data getting exposed in public domains.
â˘CREDI-CRYPT combine Cryptographic and Steganographic
technique to provide a reliable security solution for credit card
transactions.
â˘Both techniques together helps to achieve data confidentiality
and data integrity.
4. Implementation
⢠Cryptographic techniques like Arithmetic coding and
binary code will be used along with Hamming codes as
error detection and correction codes.
⢠The âCustomer Nameâ will be encoded in binary form
based on alphabetical position of string.
⢠The obtained number or position is converted to the 6 digit
binary form, so as to keep whole stream of bits always an
even number which will create more ambiguity for
intruder.
⢠A hamming code word will be generated for every
character in the âCustomer Nameâ string.
⢠16 digit unique credit card number in addition to the
significant 3 digit CVV number will be encoded using
Arithmetic encoding,
5. Implementation(cont)
⢠After the arithmetic coding process we obtain double
precision values corresponding to the input sequences. We
round these to six significant digits and then convert it to
binary using our encoding algorithm.
⢠Whole encoded cipher text will be embedded into the pixels
of the image.
⢠Credi-Crypt proposes an adaptive data hiding technique
joined with the use of optimum pixel adjustment algorithm
to hide data into the integer wavelet coefficients of the cover
image.
⢠A pseudorandom generator function is used to select the
embedding locations of the integer wavelet coefficients to
increase the system security.
6. Implementation(cont)
⢠The OPA(Optimum Pixel Adjustment) algorithm is applied
after embedding secret message.
⢠For decoding, the receiver must have our decoding algorithm.
In addition to these the symbol probability, symbol set and the
length of the sequence must be known.
7. Embedding Algorithm
⢠Step 1: Read the cover image file into a two dimensional
decimal array.
⢠Step 2: Perform histogram modification by mapping the
lowest 15 grayscale levels to the value of 15 and the highest
15 grayscale levels to the value 240.
⢠Step 3: Divide the cover image into 8x8 non overlapping
blocks.
⢠Step 4: Transform each block to the transform domain using
2D Haar integer wavelet transform resulting LLI, LHI, HLI
and HHI.
8. ⢠The Haar wavelet transform can be written as simple pairwise
averages and differences
S1,n= (S0,2n +S0,2n+1) /2
d1,n = (S0,2n+1- S0,2n )
⢠It is obvious that the above output may be not integer, the
Haar wavelet transform in above equation can be rewritten
using lifting in two steps to be executed sequentially:
d1,n = (S0,2n+1- S0,2n )
S1,n= (S0,2n+ d1,n /2)
9. ⢠From the above both equations we can calculate the integer
wavelet transform according to:
d1,n = (S0,2n+1- S0,2n )
S1,n= (S0,2n+ [d1,n /2])
⢠Then the inverse transform can be calculated by:
S0,2n= (S1,n - [d1,n /2])
S0,2n+1= ( d1,n + S0,2n)
10. ⢠The 1D Haar Transform can be easily extended to 2D. In the
2D case we first apply the 1D Haar transform on each row. We
take the resultant matrix, and then apply the 1D Haar
transform on each column.
⢠Step 5: Calculate hiding capacity (L) ]. The length of LSBs of
wavelet coefficients (L) is calculated as:
ăăă k +3, if Co ⼠2k+3
L= k+2, if 2k+2 ⤠Co < 2k+3
k +1, if 2k +1 ⤠Co < 2k+2
ăăăă k, if Co < 2k+1
Where, Co is the absolute value of wavelet coefficients and k
is the minimum length to be used in each coefficient.
11. ⢠Step 6: Embed L bits of message into the corresponding
randomly chosen coefficients.
⢠Step 7: Apply optimal pixel adjustment algorithm. The main
idea of using the optimum pixel adjustment (OPA) algorithm
is to minimize the error difference between the original
coefficient value and the altered value by checking the right
next bit to the modified LSBs so that the resulted change will
be minimal.
12. ⢠For example, if a binary number 1000 (decimal number 8)is
changed to 1111 (decimal number 15) because its three LSB's
were replaced with embedded data; the difference from the
original number is 7. This difference in the original value is
called the embedding error. By adjusting the fourth bit from a
value of I to a value of 0, the binary number now becomes
0111 (decimal number 7) and the embedding error is reduced
to I while at the same time preserving the value of the three
embedded bits.
⢠Step 8: Calculate the inverse integer wavelet transform on
each 8x8 block to restore the image to spatial domain
15. Example
⢠Upon pressing âCard Noâ button, user is prompted to enter
credit card details. Let the entered details be as follows:
Credit card no : 3281 9432 7493 9403
CVV no : 340
Expiry date : 0918
Credit card holder name : Neha D
16. ⢠After entering these details, user presses âEncodingâ button,
which displays the following encoding details:
The output of dt (Hamming code) is: Columns 1 through 15
0 1 0 0 0 0 1 1 1 0 1 0 0 0 0
Columns 16 through 30
0 0 1 0 1 0 0 1 1 0 0 1 0 0 0
Columns 31 through 45
0 1 0 1 0 0 0 0 0 1 1 1 0 1 0
Columns 46 through 50
0 0 1 0 0
17. Arithmetic Encoding Started
Probability for 3 is 0.22727
Probability for 2 is 0.090909
Probability for 8 is 0.090909
Probability for 1 is 0.090909
Probability for 9 is 0.18182
Probability for 4 is 0.18182
Probability for 7 is 0.045455
Probability for 0 is 0.090909
The tag is 0.059102
18. The output of cbb (tag word) is: Columns 1 through 15
0 0 0 0 1 1 1 0 0 1 1 0 1 1 0
Columns 16 through 20
1 1 1 1 0
19. ⢠Upon pressing the âSteganographyâ button, the user is
prompted to select an image to embed the encoded details.
After selecting the image, encoded details are embedded in
image and stego image is displayed to the user.
⢠When user presses the âExtractâ button, the following output
is displayed:
Arithmetic Decoding Started
The received keyword is 3281943274939403340
⢠The credit card number and the card holder name are
displayed.
20. ⢠Along with this, PSNR and MSE are also displayed.
MSE = 0.2194
PSNR = 51.4249
36. Applications
⢠Credi-crpyt is a stand-alone application which can be used
tostore credit-card data in a small or medium sized
organization(eg Banks) in a secret way.
⢠As stored data need not be transferred over the network the
security provided by credi-crypt is sufficient rather than
getting into the complex procedure of SSL.
37. Further Work
⢠Further while using this application over network a secret key
can be exchanged between the sender and the reciever to
provide higher level of security.
⢠The proposed system can be further developed to increase its
robustness by using some sort of error correction code which
increases the probability of retrieving the message after
attacks, also investigating methods to increase visual quality
of the stego-image.