原创 門限簽名(1)——祕密共享

門限簽名(threshold signature區塊鏈中叫多重簽名 multisig),即n個用戶中有t個簽名時,簽名有效。 祕密共享是門限簽名的一種特殊情況,即多個用戶共享一個祕密,並不是把祕密發給每個人,而是把祕密拆分開發給每個人

原创 Hess簽名

Hess簽名是一種雙線性對上基於身份的簽名方案,也是構造一種門限簽名的基礎。 定義雙線性對:e^:g×g→F\hat{e}:g\times g \rightarrow Fe^:g×g→F,通常是weir或者tate對。 定義PPP爲g

原创 bitcoin開發者文檔閱讀筆記(1)

因爲無藥可救的工程能力…只能整體先了解bitcoin是怎麼做的,大概每週更兩次。上半年過後blockchain的密碼學沒問題了,但是網絡結構和共識還是很困難 一些(中文)野雞網站也太不負責了!互相抄就算了,概念也不講清楚。 每個節點只

原创 ACM-ICPC結束語

其實也沒有結束,後面還會刷刷cf,也許還能打小的現場賽,不過今天的比賽過後,我感到一個時代終於落幕了。 ACM是我經歷過的最艱難的比賽,對於沒有任何oi基礎的非計算機學生來說,承受的風險和壓力是巨大的。無休止的自我懷疑、和家長解釋、權

原创 【源碼閱讀】用Go語言實現環簽名的簽名和驗證(二)

func hashToInt(hash []byte, c elliptic.Curve) *big.Int { orderBits := c.Params().N.BitLen() orderBytes := (or

原创 近期總結(+徐州邀請賽總結)

博客很久沒更。 上週icpc徐州邀請賽,遺憾的打了鐵,還記得最後寫不出高精度只能絕望的擡頭看榜時,腦子裏第一時間浮現的一句話: “從現在起,我已經不能決定自己的命運了,你們說下次再戰我很感動,但是我可能沒這個機會了” 昏

原创 codeforces Educational Codeforces Round 41 (2018.4.4)

A. Tetris time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard output

原创 Fiat-Shamir transform 和零知識證明

零知識證明是區塊鏈密碼學的重要內容。近期在學習環簽名,因此瞭解了一下證明機制。 零知識證明:向對方證明自己知道某個祕密,但不泄露祕密。 一個傳統的證明步驟如下: 1 以離散對數加密爲例,一證明者公開一系列信息(g,y1)(g,

原创 3月19日 burnside計數

burnside計數公式: L=1|G|∑i∈[1,n]|Zi|=1|G|∑π∈GC(π)L=1|G|∑i∈[1,n]|Zi|=1|G|∑π∈GC(π) 這裏G是置換羣,G中的一個元素代表一種置換方法(翻折、旋轉等),C(π)C(π)

原创 Codeforces #479 E F (5.6)

最近補上學期的題 E http://codeforces.com/contest/977/problem/E 深搜,本題的環只能一一相連,各個環一定是隔開的,注意搜過的標記一下不用再搜。 兩種情況都不是環:度不爲2、首尾不連

原创 Codeforces #494 A~E (7.3)

這把狀態奇差,可能是因爲令人崩潰的蚊子數量……做完D就快沒時間了,E又坑多 A 瞎搞 http://codeforces.com/contest/1003/problem/A #include<bits/stdc++.h> using

原创 hdu1285 拓撲排序

因爲補上週的codeforces,涉及到一些不熟悉的知識,先基礎題練習一下。 題意:給出一些隊伍的勝負關係,要求排序(勝者在前、無關則序號小者在前),保證有正常排序。 轉化成圖論,正常排序就是沒有環,這裏是一個拓撲排序,原理也很好理

原创 3月12日 dijkstra+堆優化+鄰接表

昨天聽校隊大佬講了鄰接表,這是建圖的複雜度較小的數據結構,概括起來,就是邊結構體中,存儲該節點下一條邊的索引,相當於鏈表。 堆優化主要是用優先隊列,注意優先隊列是大的在上面,最短路需要小的在top,所以要重載小於運算符。示範代碼看了很久

原创 Schnorr簽名體制

schnorr簽名被認爲可以解決比特幣的空間問題,如下面一段所述: If you ask anyone in the Bitcoin space what the biggest challenge for Bitcoin is, yo

原创 3月12日 二次剩餘(shanks解法)

算法原理請wiki:Tonelli–Shanks algorithm,迅速深入理解是不太可能的,與cipola算法相比,shanks解法更數論一點。 (這個算法是正常的,但是還是tle) 大概流程是: R2≡nmodpR2≡nmod