Sujet : Re: xorpng
De : pollux (at) *nospam* tilde.club (Stefan Claas)
Groupes : sci.cryptDate : 06. Jan 2025, 00:06:36
Autres entêtes
Organisation : To protect and to server
Message-ID : <vlf3ae$s6de$1@paganini.bofh.team>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
User-Agent : flnews/1.3.0pre29 (for GNU/Linux)
Chris M. Thomasson wrote:
On 1/5/2025 2:48 PM, Chris M. Thomasson wrote:
On 1/5/2025 1:10 PM, Stefan Claas wrote:
Rich wrote:
Stefan Claas <pollux@tilde.club> wrote:
Rich wrote:
Stefan Claas <pollux@tilde.club> wrote:
Stefan Claas wrote:
Rich wrote:
Stefan Claas <pollux@tilde.club> wrote:
Rich wrote:
If instead you mean some kind of "special, PNG aware,
encryptor that only encrypted the bitmap data of a PNG",
but left the file as otherwise a proper PNG image
structure, then that is slightly tricky (and an algorithm
that is only useful for PNG's alone).
Yes, this is what I mean.
Which brings up the question of: why?
Why go to the trouble to create an encryptor that is
specalized for just encrypting the internal bitmap data within
a PNG, leaving the rest as a PNG file, when a generic "byte
stream" encryptor will encrypt the entire PNG with no extra
effort?
To make more content as allowed postable on social media, like
X.
I.e, first you put data with file2png in a .png and then encrypt
it to finally post it. I can do this now with my xorpic program,
but I thought a solution with AES-GCM or XChaCha20+ploy1305 is
better.
The "path" I outlined in my previous post, where you utilize the
netpbm image format as your 'intermediary' would allow you to use
any generic encryption routine you like, while also allowing you to
convert the encrypted binary data to/from an image format of your
choice (well, your choice within the set of other formats for which
NetPBM has to/from converters available).
This frees you from having to understand the internal structure of
the various image formats. You just work with the netpbm format (a
raw binary bit/pixel block) for the encrypt/decrypt/padding
operations, and delegate all the "image format" complexity to the
netpbm library.
Thank you! My ppmenc tool works nicely, here are the test images:
https://jmp.sh/HZM9ML9f
The big problem I face when converting the encryypted image to .png
and back a diff shows a difference and the decryption fails.
Maybe someone can figure out what to do, so that a converted .ppm can
be posted online , for viewers/readers and then can be converted back
to the original .ppm, which shows no difference.
We can't read your mind over Usenet so can you show how you converted
the encrypted image to a png and back.
I used Gimp with compression set to 0 and the netbmp tools.
You should write your own program for it. The Gimp altered some bytes,
right?
Fwiw, the Cairo lib is fairly nice, well, to me at least... I use it a
lot for my 2d work. it allows you to gain access to the raw underlying
buffer. So, I can create PNG's with payloads that are intact.
Ok, here is the deal ... I have file2png (Go and Python3) which converts
any (encrypted) payload to valid noise .png images and back. I have xorpng
in Go which can create .png keys of random noise (crypto/rand) and xor
then .png images with them, to create encrypted noise images. I have ppmenc
in Go which encrypts ppm (P6) images to noise images. What I can not work
out is to convert a ppm to .png and back to the *original* .ppm (P6) file,
because .png with programs used or the Go library alter the conversion,
back to .ppm (P6). I tried many things and always failed.
*Please* try to write a .ppm (P6) to .png converter (and back) in C(++)
and see if you can get the *original* data back. The sci.crypt community
and me of course would appreciate your help very much!
-- RegardsStefan