NikPak

功能

NikPak 与 .nik 格式的内部原理,简明说明。

抗量子计算

量子计算机威胁公钥密码学:Shor 算法可以破解 RSA 和椭圆曲线。NikPak 两者都不使用。它只使用 256 位对称加密,即使面对 Grover 算法也能保留约 128 位安全强度。

今天被截获的压缩包,将来无法简单地用量子计算机解密(“先收集,后解密”)。最重要的仍是密码强度,而 Argon2id 让猜测密码代价高昂。

媒体智能

NikPak 关注文件的内容,而不是扩展名。WAV 和 AIFF 音频、ProTracker MOD 音乐以及 BMP 图像会被识别出来,交给专门设计的过滤器处理。

每个媒体文件都会经过一次试压:尝试 NAC、Shuffle、Shuffle+Delta 和 MED,保留最小的结果。如果没有过滤器有帮助,文件就按常规方式压缩,因此过滤器绝不会让压缩包变大。

  • NAC:NikPak 的无损音频编解码器,采用线性预测和立体声去相关,与 FLAC -8 水平相当。
  • 自我校验:压缩时每个 NAC 块都会被重新解码并与原始数据比对。
  • 针对采样和像素的 Shuffle 与 Shuffle+Delta,以及 ProTracker MOD 文件的专门处理。
  • 与 RAR 7 -m5 相比:BMP 照片小 38.8 %,立体声音乐小 14.6 %,MOD 文件小 13.3 %。

办公文档、PDF 和 gzip

docx、xlsx、pptx、odt、ods、epub、jar、zip、pdf 和 gz 文件把内容存放在 Deflate 数据流中,普通压缩工具已无法进一步压缩。在 -m4 和 -m5 级别,NikPak 会解码这些数据流,更高效地压缩原始数据,并在解压时逐位重建原文件。对 60 个办公文件,压缩包比 7-Zip -mx9 小 31.7 %。

压缩级别

-m1 至 -m4 级别使用多线程固实 Zstandard 数据流,窗口为 128 MiB,-m4 还启用长距离匹配。最高级别 -m5(默认)构建多引擎数据体:二进制数据用 LZMA2,文本用 PPMd,通过试压选择,并按类型排序文件。

级别作用
-m0存储:不压缩
-m1最快
-m2快速:速度比大小更重要时的选择
-m3良好
-m4高:增加对办公文件、PDF 和 gzip 的 Deflate 再压缩
-m5最高(默认):通过试压选择 LZMA2 和 PPMd

加密

加密压缩包使用 Argon2id 将密码转换为密钥。每次尝试需要 64 MiB 内存,使得用显卡猜测密码的成本很高。随后数据以 64 KiB 的认证块使用 XChaCha20-Poly1305 加密。

  • 文件名、大小、日期和权限始终加密。
  • 重排、截断和修改头部都会被密码学方法检测到。
  • 没有提供密码?NikPak 会生成一个强密码:24 个字符,约 139 位。
  • 没有后门:丢失的密码任何人都无法恢复。
NikPakRAR 57-Zip
加密算法XChaCha20-Poly1305AES-256-CBCAES-256
认证加密是否否
密码派生Argon2id, 内存困难PBKDF2-HMAC-SHA256SHA-256, 非内存困难
隐藏文件名始终仅在使用 -hp 时仅在使用 -mhe 时

安全设计

  • 解压绝不会写到目标文件夹之外(防 zip-slip)。
  • 拒绝符号链接,并去除 setuid 位。
  • 每个解码器都有严格限制:恶意压缩包无法耗尽内存。
  • 压缩包以原子方式写入:失败时绝不会留下写了一半的文件。
  • 每个文件都有 CRC32,结尾标记包含条目数量,程序使用内存安全的 Rust 编写。

两个程序,同一风格

NikPak 通过一个简单的拖放窗口创建压缩包;unNik 负责打开、浏览和解压。两者共享语言、声音和设置,一个按钮即可相互切换。

NikPakNikPak
unNik

皮肤

41 款皮肤,与 Nikkomander 相同,适用于 NikPak 和 unNik。选择会被保存并由两个程序共用,还可以导入自己的 .skin.json 皮肤。 查看全部皮肤 →

Nikkoid Blue (default)Nikkoid BrightDraculaPepperoni PizzaChristmasMatrixTropical8-Bit Game

RAR 仍然领先之处

  • 可修复损坏压缩包的恢复记录
  • 分卷和自解压压缩包
  • 在已有压缩包中添加或替换文件
  • 数十年的实际使用和数以百万计的 .rar 文件

路线图

  • 恢复记录:使用 Reed-Solomon 校验修复损坏的压缩包。
  • 分卷压缩与更新:拆分大型压缩包,添加和替换文件。
  • 公钥分享:X25519 与 ML-KEM 的混合方案,只要其中之一安全即可。
  • 更多媒体过滤器:浮点音频、XM/S3M/IT 音轨、PNG 再压缩、TGA 和 TIFF。
  • unNik 支持 ZIP 和 RAR,资源管理器集成:让 NikPak 成为你唯一需要的压缩工具。
  • 更快的最高级别:多线程 LZMA2 和 PPMd、重复数据删除、可执行文件过滤器。
  • 外部安全审计:审查密码学部分和解压器。