[小白/土法/三重加密]个人理解的多重加密安全方式(附py脚本)
发表于 : 2024-04-27 13:29
首先 先肯定一点,现在的aes256 与rsa4096 加密很安全了.
为了应对计算机发展过程中,算力越来越强的情况,加密后的文件在长时间的历史进程后,安全性会下降;为了偷懒,不想重新再换新方式再加密一回.小白理解的最安全的三重叠加加密:
先用大容量key(40m)进行异或运算,运算后的文件AES256-CBC加密成sec文件,sec文件再GPG的rsa4096加密成gpg文件.
截止至8楼: 大佬们给的很多反馈!
提出疑问:SO现阶段对称加密,现成的免费开源软件选什么好,openssl中下面的模型选哪个模型好?
aes-[128|192|256]-cbc 128/192/256 bit AES in CBC mode
aes[128|192|256] Alias for aes-[128|192|256]-cbc
aes-[128|192|256]-cfb 128/192/256 bit AES in 128 bit CFB mode
aes-[128|192|256]-cfb1 128/192/256 bit AES in 1 bit CFB mode
aes-[128|192|256]-cfb8 128/192/256 bit AES in 8 bit CFB mode
aes-[128|192|256]-ctr 128/192/256 bit AES in CTR mode
aes-[128|192|256]-ecb 128/192/256 bit AES in ECB mode
aes-[128|192|256]-ofb 128/192/256 bit AES in OFB mode
非对称加密ECC模型,选curve25519? (有推荐的免费开源方案嘛?gnupg里面ECC曲线的只有cv25519/brainpool系列/NIST系列) PuTTY密钥恢复漏洞(CVE-2024-31497)中涉及的NIST P-521ECC类还安全嘛?(这个漏洞,是算法本身就不安全了,还是软件兼容性考虑造成的安全性问题?)
=============下面为旧的内容=====
加密过程:
1.异或运算 在文件目录下 python3 **/xor.py 原文件 key文件 生成的xor文件 (key文件要保存好)
2.AES256加密
openssl aes-256-cbc -a -S d1837811783ef786 -iter 10000 -pbkdf2 -in watch.sh -out watch6.enc
openssl aes-256-cbc -a -S <16位盐> -iter <轮数> -pbkdf2 -in <输入文件> -out <AES加密后文件> (盐值 轮数 是否有pbkdf2 两次输入的密码 要记好,这些解密时要用到)
3.RSA4096加密
先看钥列表 gpg -k --keyid-format short
gpg -e -o txt333.gpg -r uid txt.txt
gpg -e -o <加密后文件名> -r <GPG公钥id> <要加密的文件名>
当然也可以用gnupg的IMAGE gui图形界面进行加密. (gpg的公私钥要保存好,私钥的防护密码也要记好)
解密过程:
1.先看钥列表 gpg -k --keyid-format short
gpg -d -r uid -o 11.txt txt333.gpg
gpg -d -r <GPG私钥id> -o <解密后文件名> <要解密的gpg文件>
2.AES解密
openssl aes-256-cbc -d -a -S d1837811783ef786 -iter 10000 -pbkdf2 -in watch7.enc -out watch2.shsss
openssl aes-256-cbc -d -a -S <加密时撒的盐> -iter <加密的轮数> -pbkdf2 -in <要解密的AES文件> -out <解密后文件名>
3.异或运算 在文件目录下 python3 **/xor.py 要解开的xor文件 key文件 最初的原文
python3 xor.py infile keyfile outfile (xor命令都是这格式,加密时,infile是原文;解密是infile是xor加密后文件)
至此三重加密方案,解说完毕. 如果量子计算机出来了,能破解了,我等小白也没有招的.
三重加密 重点要保存 异或的key文件 GPG的公私钥文件 AES的四个参数( 盐值 轮数 是否有用pbkdf2 安全密码 ) gpg的私钥防护密码 总计 三个文件 五个参数 要存好,要记牢,丢了就解不开了.
=================================================================
接下来要说异或的key文件;
异或key选择好一个文件,查看好HASH值.保存多地保存好.
如怕KEY文件泄漏,可选一个比KEY文件大的,使用split分割成多种容量多块.再cat合并起来成key文件, 记好分割命令与合成命令与散列值,重新生成时核对散列值.
如果怕网络保存,网络传输会造成文件位丢失位翻转,那个可以用hash多轮叠加生成一大串字符串文件,记好起始关键字与轮数与叠加方式,key文件就不会丢了.
附件是我的脚本.异或大文件会不会造成内存不够,未测试, 异或大文件,请按自己的内存容量进行先分割再异或再加密的方法.
===============================================================
终端命令不记录进history的一种方式 $: command (命令前加几个空格)
===============================================================
1.确定一个起始关键字, 要么随机,要么选个种子关键字再加上轮数,进行HASH散列得到关键字
我的方案示例:python3 sha512_easy.py ubuntu 3336823594 得到128位的HASH值,此值拿来当关键字(命令参数 ubuntu 3336823594 记好写到纸上存好,轮数请超1亿次以上,增加彩虹表破解难度). #为了安全,可以不使用这个easy.py 可使用第二步的sha512.py来生成起始关键字(它多一些变量) (04-28更新)
2.生成一个大容量key文件.使用上一步确定的起始关键字
我的方案示例:python3 sha512.py <上一步的HASH值> <**********/10位随机数> <跑多少轮/(40M/128)/一轮生成128位,要多大就自己除法记算多少轮> <生成的key文件名> (重点,命令参数 HASH值 10位随机数 轮数 key文件的散列值要记好.)
3.是否重新分割组合KEY文件,目的打乱key,防止一直用同一文件,一漏万漏
生成命令如下:split -b 10m key -d -a 3 keysp_
自己选择分割0-N种容量.
cat *1 *4 *0 *7 >newkey
sha512sum newkey
(重点记好,key的散列值.以便解密时核对)
4.使用KEY 对文件进行异或运算
看贴子开头
5.使用AES进行加密
6.使用GPG进行加密
(重点提示,使用过程在的命令参数 与key散列值,要记好. 不存大文件KEY,就要靠命令参数来确保能重新生成KEY)
==================================================
下面是split 的示例: (分割,组合过程中的参数,顺序要记好,丢了就组合不起来原来的KEY了,命名请随机.)
split -b 10m key.mkv -d -a 3 key.mkv_
cat key.mkv_004 key.mkv_008 key.mkv_001 key.mkv_006 >key.mkv****
split -b 10m key.mkv4816 -d -a 3 key_
md5sum key_000 key.mkv_004 key_001 key.mkv_008 key_002 key.mkv_001 key_003 key.mkv_006
d931f10980e1637f292341babfaec501 key_000
d931f10980e1637f292341babfaec501 key.mkv_004
2ff1785b4136e5e5b4d169b099372c8e key_001
2ff1785b4136e5e5b4d169b099372c8e key.mkv_008
36b56adab5b27a48463404affbefa8ce key_002
36b56adab5b27a48463404affbefa8ce key.mkv_001
8b3c281e079573cb43675fccf319c6f4 key_003
8b3c281e079573cb43675fccf319c6f4 key.mkv_006
split -b 659841 key_000 -d -a 3 keyram_
以上,要一个乱序的key文件,把一个确认的永恒的key文件,先分割成3类分块.再自己随机抽选几个分块, 重新 cat * * * * * * * * * * * * *>key
记住命令 与顺序,key就丢不了.
为了应对计算机发展过程中,算力越来越强的情况,加密后的文件在长时间的历史进程后,安全性会下降;为了偷懒,不想重新再换新方式再加密一回.小白理解的最安全的三重叠加加密:
先用大容量key(40m)进行异或运算,运算后的文件AES256-CBC加密成sec文件,sec文件再GPG的rsa4096加密成gpg文件.
截止至8楼: 大佬们给的很多反馈!
提出疑问:SO现阶段对称加密,现成的免费开源软件选什么好,openssl中下面的模型选哪个模型好?
aes-[128|192|256]-cbc 128/192/256 bit AES in CBC mode
aes[128|192|256] Alias for aes-[128|192|256]-cbc
aes-[128|192|256]-cfb 128/192/256 bit AES in 128 bit CFB mode
aes-[128|192|256]-cfb1 128/192/256 bit AES in 1 bit CFB mode
aes-[128|192|256]-cfb8 128/192/256 bit AES in 8 bit CFB mode
aes-[128|192|256]-ctr 128/192/256 bit AES in CTR mode
aes-[128|192|256]-ecb 128/192/256 bit AES in ECB mode
aes-[128|192|256]-ofb 128/192/256 bit AES in OFB mode
非对称加密ECC模型,选curve25519? (有推荐的免费开源方案嘛?gnupg里面ECC曲线的只有cv25519/brainpool系列/NIST系列) PuTTY密钥恢复漏洞(CVE-2024-31497)中涉及的NIST P-521ECC类还安全嘛?(这个漏洞,是算法本身就不安全了,还是软件兼容性考虑造成的安全性问题?)
=============下面为旧的内容=====
加密过程:
1.异或运算 在文件目录下 python3 **/xor.py 原文件 key文件 生成的xor文件 (key文件要保存好)
2.AES256加密
openssl aes-256-cbc -a -S d1837811783ef786 -iter 10000 -pbkdf2 -in watch.sh -out watch6.enc
openssl aes-256-cbc -a -S <16位盐> -iter <轮数> -pbkdf2 -in <输入文件> -out <AES加密后文件> (盐值 轮数 是否有pbkdf2 两次输入的密码 要记好,这些解密时要用到)
3.RSA4096加密
先看钥列表 gpg -k --keyid-format short
gpg -e -o txt333.gpg -r uid txt.txt
gpg -e -o <加密后文件名> -r <GPG公钥id> <要加密的文件名>
当然也可以用gnupg的IMAGE gui图形界面进行加密. (gpg的公私钥要保存好,私钥的防护密码也要记好)
解密过程:
1.先看钥列表 gpg -k --keyid-format short
gpg -d -r uid -o 11.txt txt333.gpg
gpg -d -r <GPG私钥id> -o <解密后文件名> <要解密的gpg文件>
2.AES解密
openssl aes-256-cbc -d -a -S d1837811783ef786 -iter 10000 -pbkdf2 -in watch7.enc -out watch2.shsss
openssl aes-256-cbc -d -a -S <加密时撒的盐> -iter <加密的轮数> -pbkdf2 -in <要解密的AES文件> -out <解密后文件名>
3.异或运算 在文件目录下 python3 **/xor.py 要解开的xor文件 key文件 最初的原文
python3 xor.py infile keyfile outfile (xor命令都是这格式,加密时,infile是原文;解密是infile是xor加密后文件)
至此三重加密方案,解说完毕. 如果量子计算机出来了,能破解了,我等小白也没有招的.
三重加密 重点要保存 异或的key文件 GPG的公私钥文件 AES的四个参数( 盐值 轮数 是否有用pbkdf2 安全密码 ) gpg的私钥防护密码 总计 三个文件 五个参数 要存好,要记牢,丢了就解不开了.
=================================================================
接下来要说异或的key文件;
异或key选择好一个文件,查看好HASH值.保存多地保存好.
如怕KEY文件泄漏,可选一个比KEY文件大的,使用split分割成多种容量多块.再cat合并起来成key文件, 记好分割命令与合成命令与散列值,重新生成时核对散列值.
如果怕网络保存,网络传输会造成文件位丢失位翻转,那个可以用hash多轮叠加生成一大串字符串文件,记好起始关键字与轮数与叠加方式,key文件就不会丢了.
附件是我的脚本.异或大文件会不会造成内存不够,未测试, 异或大文件,请按自己的内存容量进行先分割再异或再加密的方法.
===============================================================
终端命令不记录进history的一种方式 $: command (命令前加几个空格)
===============================================================
1.确定一个起始关键字, 要么随机,要么选个种子关键字再加上轮数,进行HASH散列得到关键字
我的方案示例:python3 sha512_easy.py ubuntu 3336823594 得到128位的HASH值,此值拿来当关键字(命令参数 ubuntu 3336823594 记好写到纸上存好,轮数请超1亿次以上,增加彩虹表破解难度). #为了安全,可以不使用这个easy.py 可使用第二步的sha512.py来生成起始关键字(它多一些变量) (04-28更新)
2.生成一个大容量key文件.使用上一步确定的起始关键字
我的方案示例:python3 sha512.py <上一步的HASH值> <**********/10位随机数> <跑多少轮/(40M/128)/一轮生成128位,要多大就自己除法记算多少轮> <生成的key文件名> (重点,命令参数 HASH值 10位随机数 轮数 key文件的散列值要记好.)
3.是否重新分割组合KEY文件,目的打乱key,防止一直用同一文件,一漏万漏
生成命令如下:split -b 10m key -d -a 3 keysp_
自己选择分割0-N种容量.
cat *1 *4 *0 *7 >newkey
sha512sum newkey
(重点记好,key的散列值.以便解密时核对)
4.使用KEY 对文件进行异或运算
看贴子开头
5.使用AES进行加密
6.使用GPG进行加密
(重点提示,使用过程在的命令参数 与key散列值,要记好. 不存大文件KEY,就要靠命令参数来确保能重新生成KEY)
==================================================
下面是split 的示例: (分割,组合过程中的参数,顺序要记好,丢了就组合不起来原来的KEY了,命名请随机.)
split -b 10m key.mkv -d -a 3 key.mkv_
cat key.mkv_004 key.mkv_008 key.mkv_001 key.mkv_006 >key.mkv****
split -b 10m key.mkv4816 -d -a 3 key_
md5sum key_000 key.mkv_004 key_001 key.mkv_008 key_002 key.mkv_001 key_003 key.mkv_006
d931f10980e1637f292341babfaec501 key_000
d931f10980e1637f292341babfaec501 key.mkv_004
2ff1785b4136e5e5b4d169b099372c8e key_001
2ff1785b4136e5e5b4d169b099372c8e key.mkv_008
36b56adab5b27a48463404affbefa8ce key_002
36b56adab5b27a48463404affbefa8ce key.mkv_001
8b3c281e079573cb43675fccf319c6f4 key_003
8b3c281e079573cb43675fccf319c6f4 key.mkv_006
split -b 659841 key_000 -d -a 3 keyram_
以上,要一个乱序的key文件,把一个确认的永恒的key文件,先分割成3类分块.再自己随机抽选几个分块, 重新 cat * * * * * * * * * * * * *>key
记住命令 与顺序,key就丢不了.