System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及計算設備中的數據處理領域,特別涉及一種數據處理方法、裝置、介質及芯片。
技術介紹
1、在數據加密中,比如全同態加密(fully?homomorphic?encryption,fhe)、零知識證明(zero?knowledge?proof,zkp)等均涉及到數論變換,數論變換涉及到蝶形計算和逆變換,逆變換指的是對蝶形計算后得到的各個數據進行重新排序。目前,蝶形計算常常并行處理,因此會涉及多個存儲器來存儲需要重新排序的數據,重新排序時需要將位于存儲器中的特定位置的兩個數據交換存儲位置,交換的兩個數據在存儲器中的存儲地址的二進制編碼是互為逆序的。
2、比如,存儲地址二進制編碼001001和存儲地址二進制編碼100100互為逆序,那么在逆變換過程中則要將這兩個存儲位置的數據交換,其中001001代表編號為00的存儲器的存儲地址1001,而100100表示編號為10的存儲器的存儲地址0100。又比如,存儲地址二進制編碼001000和存儲地址二進制編碼000100也互為逆序,001000代表編號為00的存儲器的存儲地址1000,而000100表示編號為00的存儲器的存儲地址0100。即,在并行蝶形計算后的逆變換步驟中,需要交換的兩個數據可能是位于不同的存儲器中,也可能是位于同一個存儲器中。
3、由于在并行蝶形計算后的逆變換步驟中,需要交換的兩個數據可能是位于不同的存儲器中,也可能是位于同一個存儲器中,因此,目前的逆變換并未采用并行操作的方式,而是采用串行的逐一獲取每個待處理數據,并將其存儲地址的二進制編碼逆
技術實現思路
1、本申請的主要目的是提出一種數據處理方法、裝置、介質及芯片,旨在解決目前數論變換中逆變換時,采用串行處理速度較慢,待處理數據中存儲地址互為逆序的數據還需分別讀取的問題。
2、為實現上述目的,本申請提出一種數據處理方法,該數據處理方法包括:
3、確定用于儲存待逆變換數據的各個存儲器中的各個存儲位置;
4、為各個存儲位置賦予地址編碼;每個存儲位置的地址編碼至少包括前綴和后綴,所述前綴為所述存儲位置所在存儲器的編號的二進制編碼,所述后綴為所述存儲位置在其對應的存儲器中的地址編號的二進制編碼的后兩位;
5、基于所述后綴對每個存儲器的存儲位置進行分區,同一存儲器中相同分區的存儲位置的地址編碼的后綴相同;
6、確定每個存儲器中的第一類分區和第二類分區,所述第一類分區中的各存儲位置的地址編碼的逆序為自身,或者逆序后的地址編碼所代表的存儲位置在同一個存儲器;所述第二類分區為同一存儲器中除第一類分區之外的其他分區;
7、遍歷確定每個存儲器中的第一類分區的各個存儲位置對應的逆變換位置;
8、基于各個存儲器的第二類分區中各個存儲位置地址編碼中的前綴和后綴,對不同存儲器中的各個第二類分區進行匹配,得到第二類分區匹配關系;其中,相互匹配的兩個分區中的一個分區的地址編碼的前綴和后綴為另一個分區的地址編碼的后綴和前綴;
9、基于第二類分區匹配關系,確定各個存儲器的第二類分區中的各個存儲位置對應的逆變換位置,其中,相互匹配的兩個第二類分區中僅遍歷確定其中任一個分區中的各個存儲位置對應的逆變換位置。
10、在本申請實施例中,每個存儲位置的地址編碼中還包括基編碼,每個存儲位置的基編碼位于該存儲位置對應的地址編碼的前綴和后綴之間,每個存儲位置的基編碼為該存儲位置在存儲器中的地址編號的二進制編碼除后綴之外的編碼;
11、所述遍歷確定每個存儲器中的第一類分區的各個存儲位置對應的逆變換位置,包括:
12、以每個存儲器中第一類分區所包含的各個存儲位置對應的基編碼為順序,遍歷確定每個存儲位置對應的逆變換位置。
13、在本申請實施例中,通過如下方法確定各個存儲器中的第一類分區中的各存儲位置對應的逆變換位置:
14、若任一存儲位置的地址編碼的逆序為自身,則將該存儲位置自身作為其對應的逆變換位置;
15、若任一存儲位置的地址編碼的逆序與自身不同,則將逆序后的地址編碼對應的存儲位置作為其對應的逆變換位置。
16、在本申請實施例中,在確定每個存儲器中的第一類分區所包含的各個存儲位置對應的逆變換位置后,所述數據處理方法還包括:
17、基于每個存儲器的第一類分區所包含的各個存儲位置及對應的逆變換位置,從各個存儲器的第一類分區中并行讀取待逆變換數據。
18、在本申請實施例中,基于每個存儲器的第一類分區所包含的各個存儲位置及對應的逆變換位置,從各個存儲器的第一類分區中并行讀取待逆變換數據,包括:
19、按照周期從每個存儲器的第一類分區中并行讀取數據;其中,每個周期包括前后兩次并行讀取,在每個周期中,第一次讀取時,并行從每個存儲器的第一類分區中分別讀取一個待逆變換存儲位置上的數據,第二次讀取時,并行從第一次讀取時在各個存儲器的所讀取的待逆變換存儲位置對應的逆變換位置讀取數據;
20、直至遍歷完每個存儲器的第一類分區中的全部待逆變換存儲位置。
21、在本申請實施例中,按照周期從每個存儲器的第一類分區中并行讀取數據時,按照各存儲器的第一類分區中所包含的待逆變換存儲位置的基編碼的大小順序讀取。
22、在本申請實施例中,在同一個周期內,若從同一個存儲器的中第一次讀取的待逆變換存儲位置和第二次讀取逆變換位置相同,則不進行數據交換;
23、若不同,則將待逆變換存儲位置上的待逆變換數據替換為第二次從逆變換位置上讀取的逆變換數據。
24、在本申請實施例中,每個存儲位置的地址編碼中還包括基編碼,每個存儲位置的基編碼位于該存儲位置對應的地址編碼的前綴和后綴之間,每個存儲位置的基編碼為該存儲位置在存儲器中的地址編號的二進制編碼除后綴之外的編碼;
25、基于如下方式確定各個存儲器的第二類分區中的各個存儲位置對應的逆變換位置:
26、以相互匹配的兩個第二類分區中的任一分區的存儲位置的基編碼為順序,遍歷確定該任一分區的存儲位置對應的逆變換位置,其中,互相逆變換位置的兩個存儲位置的基編碼互為逆序。
27、在本申請實施例中,在確定各個存儲器中的第二類分區中各個存儲位置位置對應的逆變換位置后,所述數據處理方法還包括:
28、基于各個存儲器中的第二類分區各個存儲位置位置對應的逆變換位置,并行從各個存儲器中分別讀取兩個存儲位置上的待逆變換數據,以進行逆變本文檔來自技高網...
【技術保護點】
1.一種數據處理方法,包括:
2.如權利要求1所述的數據處理方法,每個存儲位置的地址編碼中還包括基編碼,每個存儲位置的基編碼位于該存儲位置對應的地址編碼的前綴和后綴之間,每個存儲位置的基編碼為該存儲位置在存儲器中的地址編號的二進制編碼除后綴之外的編碼;
3.如權利要求2所述的數據處理方法,通過如下方法確定各個存儲器中的第一類分區中的各存儲位置對應的逆變換位置:
4.如權利要求2所述的數據處理方法,在確定每個存儲器中的第一類分區所包含的各個存儲位置對應的逆變換位置后,所述數據處理方法還包括:
5.一種數據處理裝置,包括:
6.如權利要求5所述的數據處理裝置,每個存儲位置的地址編碼中還包括基編碼,每個存儲位置的基編碼位于該存儲位置對應的地址編碼的前綴和后綴之間,每個存儲位置的基編碼為該存儲位置在存儲器中的地址編號的二進制編碼除后綴之外的編碼;所述處理模塊還用于:
7.如權利要求6所述的數據處理裝置,所述處理模塊被配置為通過如下方法確定各個存儲器中的第一類分區中的各存儲位置對應的逆變換位置:
8.如權利
9.一種可讀存儲介質,其包括指令,當其在計算設備上運行時,使得計算設備執行如權利要求5-8任一項所述的數據處理裝置。
10.一種芯片,包括如權利要求5-8任一項所述的數據處理裝置。
...【技術特征摘要】
1.一種數據處理方法,包括:
2.如權利要求1所述的數據處理方法,每個存儲位置的地址編碼中還包括基編碼,每個存儲位置的基編碼位于該存儲位置對應的地址編碼的前綴和后綴之間,每個存儲位置的基編碼為該存儲位置在存儲器中的地址編號的二進制編碼除后綴之外的編碼;
3.如權利要求2所述的數據處理方法,通過如下方法確定各個存儲器中的第一類分區中的各存儲位置對應的逆變換位置:
4.如權利要求2所述的數據處理方法,在確定每個存儲器中的第一類分區所包含的各個存儲位置對應的逆變換位置后,所述數據處理方法還包括:
5.一種數據處理裝置,包括:
6.如權利要求5所述的數據處理裝置,每個存儲位置的地址編碼中還包括基編碼...
【專利技術屬性】
技術研發人員:鄭瀚尋,闖小明,楊龔軼凡,白肖承體,
申請(專利權)人:上海泰則半導體有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。