在一個成果互評系統里,小團體有什麼不留痕迹、又能分辨彼此作品的策略?

如何從資訊理論的角度分析?

問題背景:如何看待浙江大學數據結構課上工高班串通舞弊的行為?


在行尾加上空格/Tab,幾乎不會被發現,就算被發現了,因為各種各樣的原因在行尾不小心留下了空格都是挺正常的事情

然後調整行尾空格的數量讓整個文件的MD5值以0開頭(或結尾),普通文件只有1/16的概率。為了安全起見可以加salt。可以寫一個小工具嘗試幾種組合,從概率上來說,隨便選擇整個程序裡面的6-7行,每行選擇加4個空格或者不加,就足夠產生一個合法的結果了。


笨死了,不會用不可見字元嗎...

用Tab和空格編碼這麼古老的手法都不會...

現在的年輕人啊,歪腦筋動的比西方學生都快...

但是試來試去,都too young,too simple!


專業的學術會議審稿人,看語言風格都能看出是誰寫的


這個系統應該升級了,增加代碼混淆,自動對齊,去除多餘字元等功能。


上來先念詩,然後中文裡夾兩句English,最後深藏功與名


我不懂資訊理論,但既然邀請我了,那我從搬磚的角度來說下吧。看上下文,應該是與代碼有關。

代碼風格唄

類名方法名Field名局部變數名,各自使用四種命名法

類/方法/控制語句的大括弧的是否換行

你想想一共多少種組合


有必要談談高中年輕的數學老師的計策了233

高中數學遇到證明題的時候,我們數學老師總讓我們在證明題的最上方,工工整整地寫下四個大字:由題意得。

對外宣稱~要強調答題格式。

而實際上,在批月考卷、期中考卷、期末考卷、聯考卷、甚至高考卷時,自己的老師大都會參與批卷。而看到自己班上同學熟悉的四個大字,我們老師給的分數時就會不由自主變得仁慈。。。(當然,也不敢差太多,而且高考批到自己班的考卷的概率也微乎其微)

算是和浙大工高的同學異曲同工了,並且幾乎不可能被發現。。。

當時就覺得,數學老師讀書的時候肯定是這方面的行家啊(●°u°●)

但這依然不高明~因為這和浙大同學的方法一樣,如果把小團體的所有文本都放在一起,就很容易看出端倪了。

====================================

下面講講我的方法~

代碼裡面肯定有一些地方可加空格,可不加空格(比如說等號左右)。一篇不太小的代碼裡面,取前十個這樣的位置,那麼我們就得到了10個bit可用於加密,也就是1024種不同可能性。

我們怎麼拿這十個比特加密呢?

一種方法是:對已經寫好的代碼A,刪去代碼里所有空格,用hash函數把代碼映射到1024範圍內的數,記為hash(A),根據hash(A)的值來決定這10個bit的空格到底要不要空。

這樣一來,小團體的成員可以共享一個hash函數用以檢驗,這樣外人光憑這些空格也無法分辨,因為每一篇的空格位置都不同。即使把所有小團體的文本都收集齊,也知道加密的方法,但不知道hash函數,也依然無法識別。(這樣就沒有證據證明小團體其實是在作弊啦)

不要說這個辦法麻煩哦,作為程序員,寫一個程序腳本實現這樣的加密和檢驗其實很容易~


相互告知彼此的MD5值就好了,不用標記。


找一個哈希函數和一個密鑰,調整文件使得哈希值一致,幾乎不可破譯


怎麼從資訊理論角度回答我不知道,但是我知道有門語言叫做whitespace。

大概就是一門用空格, 和
的語言,跟brainfuck比較像。


文件私鑰簽名,或者私鑰簽名藏在圖片里,或者私鑰簽名極小字體寫在文章中散布


左大括弧換行 or 不換行;

tab or 4個空格;

4個空格 or 2個空格。


老老實實發hash不就得了……


推薦閱讀:

橋牌叫牌體系是如何設計的?
如果有個飛船,在某處畫個點,就能解碼出一套百科全書,真的可能么?
既然電磁波能容納的信息量是由頻率決定了的,那麼為什麼下載速度和wifi信號強度有關係?
什麼樣的系統才是好的系統?它應該有什麼特徵?比如穩定性?

TAG:博弈論 | 資訊理論 |