Skip to content

Latest commit

 

History

History
91 lines (46 loc) · 4.97 KB

USAGE.md

File metadata and controls

91 lines (46 loc) · 4.97 KB

魔曰 细节和使用指南

License: MIT

Abracadabra(魔曰) 是一个用于加密短文本/链接的工具。

其主要目的是为了防范各种平台上的关键词审查,以及基于语义的人工智能审查。

密本安全

魔曰的密本不同于任何同类型的工具,它由数百个《通用规范汉字表》中的一级字和二级字构成,也有一些非常常见的 日本和制汉字(Kanji),比如 桜(Sakura);但没有任何可能造成关键词屏蔽的汉字,也不存在笔画超过二十二画的生僻字。

为了增加审查难度,本工具的密表中还增加了部分化学专业字(氢/氦/锂/氧...),自然鸟名(鸢/鹤/莺/鸳/鸯/鹂/雀),自然植物名(兰/竹),寓意无贬义的动物名(鲤/猫),自然事物(灯/花/火/铃/琴/月...)

您可能要问:它是如何增加审核难度的?

本工具的核心目标在于 增加审核的成本到不可接受的程度,由于使用的所有汉字都是汉语中的常用字,机械屏蔽它们中的任何一个或几个都会导致日常/专业交流中灾难性的词汇缺失,以至于不得不被叫停。密本也不存在组成敏感关键词的可能,关键词识别将不会奏效。

基于人工智能的识别也显然完全无法理解这些字符的含义,因为它们仅包含随机汉字,无法组成任何意义连贯的文字。

我(开发者)使用 ChatGPT 和文心一言做过测试,测试显然成功,即使是资源开销很大的大语言模型也对这类密文无从下手,仅能给出十分模糊的判断意见。

比起任何一种密文单一且全是生僻字的类似工具,魔曰加密做到了优秀水准。

随机性

相同原文,相同密钥的情况下,本程序的加密结果随机性很高,不同于其他类似工具的单一密文。第一重随机性来源于 AES-256-CTR 的两字节初始化向量,能够提供 255×255 共 65025 种可能密文。第二重随机性则来源于密本(不考虑转轮),每个字符至少有 10 种加密可能,那么最终密文的可能性就是 10^N。

如果考虑转轮,那么每个字母都有 520 种加密可能,每个数字都有 100 种加密可能。最终的加密随机性可达数百万乃至上千万种。

随机性可以显著增强本工具的抗审查性能,使得针对密文的模式审查难以奏效。

在明文和密钥都一样的情况下,每次加密出来的密文可以说是完全不同

加密安全

AES-256

AES-256 是业内公认的安全加密算法,久经考验。

魔曰使用 AES-256-CTR 作为密文的核心加密方案,使得密文的安全性有基本的保证。

唯一的不足之处在于初始化向量(IV)的长度,标准长度是 16 字节,但是由于本项目的密文长度必须尽可能地短,便把 IV 长度压缩至两个字节,即使如此也能提供 65025 种随机性,在大多数情况下足够安全。

如果你不知道 IV 是什么,只需要知道,IV 是用来刻意使每次加密的结果不同的。

转轮加密

有关转轮加密的细节,请见 Issue#30

标志位

标志位用来简化加解密操作流程,程序识别到加密标志位便会自动解密,无需用户手动指定解密,提高便利性。

但标志位会引入少许密文特征,虽然被针对性识别的可能性很低,但本项目仍然增加了加密时不添加标志位的选项,提供更好的抗审查能力。如果未来发生任何标志位的针对性检查,会酌情考虑移除它。

没有标志位的密文,在自动模式下将默认被再次加密,你需要手动指定强制解密。

跨平台

魔曰加密是一个跨平台的项目,主线使用 C++11,支线使用 JavaScript。

C++ 拥有显著速度优势;Javascript 则可以提供最强的跨平台兼容性,让项目易于在各个平台使用。

目前项目的 Demo 页已经开源,并且我(开发者)自认为它制作精美,拥有完善的配套功能和美观的视觉体验,且支持 PWA,可以安装到本地离线使用。

Demo 页使用 Vue 构建,你可以随时下载源码,在你喜欢的地方轻易地部署它。

最佳操作实践

下面列出一些情况下的最佳实践。

安全优先

如果你需要最高的安全性,则在加密时设置一个尽可能长和复杂的密码。

最好勾选“去除标志”,来让密文不存在任何可以被识别的特征。

解密时将需要对方勾选强制解密。

效率优先

你可以不填密码,这将会使程序自动用内部的默认密码ABRACADABRA加/解密。

把密文的识别交给标志位,这么做可以让他人很方便地解密。

混杂

你可以把密文夹杂在一个常规的文本中来增加隐蔽性。

但是注意不要在密文中增加或删除任何字(这会影响转轮解密步骤,导致密文损坏)。