用SinoCrypt在墙内发起抗议 技术

如果你还不知道什么是SinoCrypt,请花五分钟时间了解一下:https://2047.name/t/11931


在墙内发起抗议,尤其是对中国政府和共产党的抗议,最直接的方法就是把想表达的内容写在微博、朋友圈、知乎、豆瓣、QQ空间让其他人看到。随着技术的进步,当局关键字审查、语义分析的能力越来越强,删帖封号的速度越来越快,这种被网友称为“冲塔”的抗议方式受到的阻力越来越大。

人们需要一种更好地对抗审查的技术手段。

针对这个棘手的问题,五道口公司与来自清华计算机系的几名实习生经过三天两夜的奋战,推出了一款名叫SinoCrypt的抗议辅助工具。

SinoCrypt是如何辅助人们进行抗议的呢?我们来看一个案例。

小明出生在中国大陆,他翻墙上网看到新疆维吾尔人被抓进集中营强制劳动。小明对中国政府的做法非常不满,想要在网上发起抗议,但是他知道,如果他在微博上说“新疆集中营”,马上就会被当地派出所民警请去喝茶。

以下是小明脑海中,派出所民警和小明的对话:

- 这句话是不是你发的?

- 是

- 新疆哪里有集中营?你哪只眼睛见到的?你这是传播谣言,要承担法律责任的!

- 国外媒体都报道了

- 国外的新闻能信吗?别人说什么你就信什么?我看你是被外国人洗脑了!

经过一段时间的研究,小明掌握了SinoCrypt的使用方法。他发布了一条这样的微博:

博月斗转河只统单征志道常(XJJZY)

小明的朋友小刚看到这条微博,觉得很奇怪,于是问小明,你这条微博是什么意思啊?

小明说,这是一种加密技术,叫SinoCrypt。

经过学习,小刚也掌握了SinoCrypt的使用方式,他决定把这条微博放进SinoCrypt解密。小刚问小明,你加密的时候用的密钥是什么?小明告诉小刚,XJ是中国的一个省份,JZY是犹太人的一种监狱。

小刚恍然大悟,以“新疆集中营”作为密钥,对博月斗转河只统单征志道常(XJJZY)进行解密,得到明文“XXXX(请各位读者自行尝试)”。

于是小刚也开始以“新疆集中营”为密钥,加密各种各样的内容,发到微博上。于是又有人问小刚,你这条微博是什么意思?就这样,SinoCrypt一传十、十传百,成为了墙内冲塔必备工具之一。

由于SinoCrypt加密相同的内容会得到不同的密文,而密文又是由最常用的1024个汉字组成的,所以当局没办法对SinoCrypt的密文作关键词审查、敏感词过滤。很快,墙内所有能发表文字的地方,都充满了SinoCrypt的密文。

很多人学会SinoCrypt之后第一件事就是乳包,维尼一怒之下,命令陈全国把SinoCrypt用户统统抓进集中营。陈全国很快发现,经过SinoCrypt加密的密文有一个共同点,就是看不懂。于是他下令,所有中国人,凡是发言看不懂的,一律抓起来!!

这下不得了,把北大的好几个教授抓了进去,逼得北大校长半夜去跟巡视组求情:这几个教授是研究中国古典文学的,他们课件里写的是文言文,不是SinoCrypt……与此同时,国内五毛兔杂的发言也受到极大影响,环球时报和共青团中央则跟禁言了似的,什么内容都发不出来。

这是由于SinoCrypt的密文具有随机性,可以用显卡像“挖矿”一样“挖”出任意形式的密文,很容易就能伪装成五毛、兔杂、环球共青风格的言论。

目前SinoCrypt还在alpha阶段,以上内容纯属意淫。

7
4月6日 534 次浏览
20个评论

如果无法直连解密加密网站,推广还是会受阻,必须有一个,稳定的,中国大陆能够直连的加密解密网站,才能推广开来。

thphd 2047站长

@silent #135035 源代码已经开放,可以做成PC版、浏览器版。

https://github.com/thphd/2047/blob/master/sb1024/sb1024.py

@thphd #135037 有没有考虑做成插件自动翻译?这样或许能更好推广。

比如插件捕捉到网页中存在“博月斗转河只统单征志道常(XJJZY)”或者“(XJJZY)博月斗转河只统单征志道常”这样格式的文字时,自动将解密结果显示在一旁。

@silent #135038 有的,但需要在js里面重新实现一次,https://2047.name/p/135039

@thphd #135040 不过这个方案有点问题,既然我们可以读取密钥内容,那么审核人员也可以借此读取密钥再审查,而且代码都是开放的,审核员一方的技术工程师也可以开发出更方便的审查方法。

比如读取密钥内容,然后再按照关键字屏蔽,虽然会消耗资源,但不代表官方没有办法。

说简单点,就是可能会如同当年base64加密的下场差不多。

@silent #135044 是的,所以推荐用法是把密文和密钥分开写在不同地方,而不是写在一起,让自动化审查无法工作。另外就是每个人表达密钥的方式可以不同,可以用方括号,可以用圆括号,可以用提示词。

顺便提一下,如果把口号写在明文里,政府可以解密再审查。

如果把口号写在密钥里,但解密出来的内容都是歌颂祖国的内容,就没办法审查了。由于人天然有解密东西的欲望,会主动过来询问密钥,此时用谜语提示密钥即可。

( 由 作者 4月7日 编辑 )

@silent #135044

所以如何交換密鑰就很麻煩了

@Truth #135046 SinoCrypt并不是真的用来作加密通信的(32bit安全性是很糟糕的),而是设计成一种抗审查手段,使关键词过滤失去作用。如果需要进行加密通信,最好还是用PGP。

libgen 天堂应该是图书馆的模样。一个阅读诗歌的人要比不读诗歌的人更难被战胜。创造是一种拯救。创造拯救了创造者本身。

此处应该有海报,站长该找个美工了。

其实功能和Mask.io很像,但它是插件形式。

( 由 作者 4月7日 编辑 )

@libgen #135117 好些核心问题还没解决(javascript版本/浏览器插件),不急做宣传。此文旨在抛砖引玉。

@thphd #135119

话说mask.io前几个月发行了自己的代币,前几天还获得了币安投资,开发者就是之前的Mask Network Suji Yan:通向开放 Web 3.0 应允之地

消极 (男)消极自由需要积极的个人主义来维护

要是辱骂中共能获得加密货币就吊了...

白皮书:

加密货币:消息币(messagecoin)

利用密码学的加解密算力的不对称性,信息发布者以较低的算力进行加密,信息接收者用较高的算力解密。发布者通过调整解密的难度来给自己发布的信息“定价”。接收者解密的过程就是向分布式系统贡献算力的过程。网络节点保存并传播此信息(哈希码就够了),用户们看信息就跟看磁链一样。

为了避免spam,信息是分块存放的,用户可以先解密前几个数据块看看内容,再决定是否看剩下的数据块。

网络费用分担:发布者要求节点记录哈希码,需要支付费用;阅读者解密,需要支付算力或者费用(请节点帮他解密),节点通过收取发布者和阅读者的费用来维持系统。

( 由 作者 4月13日 编辑 )

@libgen #135125 我看了mask.io,他们的加密没问题,但是密文存在于decentralized的平台上,以url的形式链接到social media上。所以如果在比如微博或者微信上用,平台直接屏蔽url就没了。

sinocrypt的最终形态是,用户直接把密文发在微博上,无法被机器自动识别为密文(因为字符集和明文混淆,要抓出密文就必须对全国每一条微博尝试用每一个可能的密钥去解密),但用户可以通过浏览器插件等方式逐条解密。

俺之前设想过一个,不需要额外密钥但是需要一定运算才能解密的,比如一条消息需要0.1s解密,对于每个看到的用户而言都不是非常大的负担,但是要进行审查的话每个人发的密文明文都要检查一遍,就会是非常大的负担。这个可以做成浏览器插件,不过估计在墙内也很难推广起来。

@86b41ba8 #135145 这个问题我已经思考过了,把KDF从PBKDF2改为Scrypt(源码中有的)即可自由调整key derivation(加密和解密都必须经过的一个步骤)所花费的CPU和内存。

@86b41ba8 #135145 和“乳包赚加密货币”异曲同工

@thphd #135146 啊,我的意思是,不需要额外密钥。例如,有1024个密钥,然后随机选一个给带一个特殊头的文本加密,然后解密的时候就穷举1024个密钥,直到解到有带那个头的明文为止。

这样做的目的是,一段文本可以直接发,不需要额外密钥可以解密,但是需要一定的计算成本。

其实吧,作为新品葱站长,我还是很不愿意在墙内平台上发有潜在危险的东西的。否则为何要在新品葱上抓五毛反渗透,还不是怕他们收集了足够多的信息之后实施抓捕。

丁丁兄弟 中廣集團董事長

@消极 #135159 你现在是新品葱站长?你已经完成了逐鹿中原的大业?

@丁丁兄弟 #135161 t11080

吱大大爱着鹿麻麻

所以我就不能逐鹿了,相反,鹿阿姨是我的革命伴侣

欲参与讨论,请 登录注册

······媒体争相制作“快乐大本营”和“超女”类节目,已经导致了阿Q式的虚幻娱乐病的泛滥,用软性的方式迎合独裁官权所划定的禁行和放行的界限,也就等于在消解着人们的社会责任和个体尊严。 ——刘晓波