TWI474256B - 產生雜亂值的系統和產生雜亂值的方法 - Google Patents
產生雜亂值的系統和產生雜亂值的方法 Download PDFInfo
- Publication number
- TWI474256B TWI474256B TW101129234A TW101129234A TWI474256B TW I474256 B TWI474256 B TW I474256B TW 101129234 A TW101129234 A TW 101129234A TW 101129234 A TW101129234 A TW 101129234A TW I474256 B TWI474256 B TW I474256B
- Authority
- TW
- Taiwan
- Prior art keywords
- hash value
- bit
- bits
- generate
- value
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
- G06F7/584—Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Manipulation Of Pulses (AREA)
- Detection And Correction Of Errors (AREA)
Description
本發明是有關於一種產生雜亂值的系統和產生雜亂值的方法,尤指一種利用雜亂引擎根據線性回授位移暫存器所產生的第一雜亂值,產生低度相關的第二雜亂值的產生雜亂值的系統和產生雜亂值的方法。
在先前技術中,產生雜亂值的系統是利用一線性回授位移暫存器(linear feedback shift register,LFSR)根據一起始值,產生複數個雜亂值,例如0x23(0010_0011)、0x47(0100_0111)、0x8F(1000_1111)等。然後,一邏輯閘對上述複數個雜亂值和來自一主機的資料執行一邏輯運算,以產生並輸出對應主機的資料的雜亂資料至一儲存型快閃記憶體(NAND flash)。
線性回授位移暫存器是往左移位一雜亂值的位元,以產生下一雜亂值。例如,線性回授位移暫存器是往左移位雜亂值0x23(0010_0011)的位元,以產生下一雜亂值0x47(0100_0111)。但值得注意的是,因為線性回授位移暫存器是往左移位雜亂值0x23(0010_0011)的位元,以產生雜亂值0x47(0100_0111),所以雜亂值0x23(0010_0011)與雜亂值0x47(0100_0111)之間具有7個相同位元,亦即雜亂值0x23(0010_0011)與雜亂值0x47(0100_0111)高度相
關。因此,邏輯閘根據線性回授位移暫存器產生的雜亂值而產生的相鄰雜亂資料亦會高度相關。如此,邏輯閘所產生的高度相關的相鄰雜亂資料可能無法滿足儲存型快閃記憶體的規範。
本發明的一實施例提供一種產生雜亂值的系統。該系統包含一線性回授位移暫存器和一雜亂引擎。該線性回授位移暫存器(linear feedback shift register,LFSR)是用以根據一起始值,產生複數個第一雜亂值;該雜亂引擎是耦接於該線性回授位移暫存器,用以利用該複數個第一雜亂值中的每一第一雜亂值的至少一位元對該第一雜亂值的其他位元執行一第一邏輯運算,以產生對應該第一雜亂值的一第二雜亂值,其中該第二雜亂值的位元數和該第一雜亂值的位元數相同。
本發明的另一實施例提供一種產生雜亂值的方法。該方法包含根據一起始值,產生複數個第一雜亂值;利用該複數個第一雜亂值中的每一第一雜亂值的至少一位元對該第一雜亂值的其他位元執行一第一邏輯運算,以產生對應該第一雜亂值的一第二雜亂值,其中該第二雜亂值的位元數和該第一雜亂值的位元數相同。
本發明提供一種產生雜亂值的系統和產生雜亂值的方法。該系統和該方法是利用一雜亂引擎根據一線性回授位移暫存器所產生的一第一雜亂值,產生一第二雜亂值,其中相鄰第二雜亂值是低度相
關。因此,本發明透過一邏輯閘所產生的相鄰雜亂資料亦會低度相關。如此,相較於先前技術,本發明所產生的低度相關的相鄰雜亂資料可滿足一儲存型快閃記憶體的規範。
請參照第1圖,第1圖是為本發明的一實施例說明一種產生雜亂值的系統100的示意圖。系統100包含一線性回授位移暫存器(linear feedback shift register,LFSR)102和一雜亂引擎(scramble engine)104。線性回授位移暫存器102是用以根據一起始值seed,產生複數個第一雜亂值;雜亂引擎104是耦接於線性回授位移暫存器102。
請參照第2圖,第2圖是為說明雜亂引擎104的示意圖。如第2圖所示,雜亂引擎104是用以利用複數個第一雜亂值中的每一第一雜亂值的一第一位元對第一雜亂值的其他位元執行一第一邏輯運算,以產生對應第一雜亂值的一第二雜亂值,其中第二雜亂值的位元數和第一雜亂值的位元數相同。例如當雜亂引擎104接收到一第一雜亂值0x23(0010_0011)時,雜亂引擎104是利用第一雜亂值0x23(0010_0011)的一第一位元1對第一雜亂值0x23(0010_0011)的其他位元0、0、1、0、0、0、1執行一第一邏輯運算,以產生對應第一雜亂值0x23(0010_0011)的一第二雜亂值0xDD(1101_1101),其中第二雜亂值0xDD(1101_1101)的位元數和第一雜亂值0x23(0010_0011)的位元數是為相同,且第一邏輯運算是可為一互斥
或邏輯運算。但本發明並不受限於第一雜亂值的位元數是為8,亦即第一雜亂值亦可具有其他位元數。另外,本發明亦不受限於第一邏輯運算是為互斥或邏輯運算,亦即第一邏輯運算亦可為其他邏輯運算。同理,當雜亂引擎104接收到一第一雜亂值0x47(0100_0111)時,雜亂引擎104是利用0x47(0100_0111)的一第一位元1對第一雜亂值0x47(0100_0111)的其他位元0、1、0、0、0、1、1執行第一邏輯運算,以產生對應0x47(0100_0111)的一第二雜亂值0xB9(1011_1001)。因此,透過雜亂引擎104產生的第二雜亂值0xDD(1101_1101)和第二雜亂值0xB9(1011_1001)之間的關聯性並不高。
如第1圖所示,系統100另包含一邏輯閘106,其中邏輯閘106是可為一互斥或閘,且第二邏輯運算是為一互斥或邏輯運算。邏輯閘106是耦接於雜亂引擎104,用以對一第二雜亂值和來自一主機108的一資料執行第二邏輯運算,以產生並輸出對應來自主機108的資料的一雜亂資料至一儲存型快閃記憶體(NAND flash)110,其中資料的位元數、第二雜亂值的位元數和雜亂資料的位元數相同。例如,當邏輯閘106接收到一第二雜亂值0xDD(1101_1101)和來自主機108的一資料0x20(0010_0000)時,邏輯閘106會對第二雜亂值0xDD(1101_1101)和資料0x20(0010_0000)執行第二邏輯運算,以產生並輸出對應資料0x20(0010_0000)的一雜亂資料0xFD(1111_1101)至儲存型快閃記憶體110。
請參照第3圖,第3圖是為本發明的另一實施例說明一雜亂引擎304的示意圖,其中雜亂引擎304可取代第1圖中的雜亂引擎104。如第3圖所示,雜亂引擎304是利用一第一雜亂值的每一奇數位元對第一雜亂值的每一奇數位元的下一位元執行一第一邏輯運算,以產生一第二雜亂值,其中第一邏輯運算是可為一互斥或邏輯運算,但本發明並不受限於第一邏輯運算是為互斥或邏輯運算,亦即第一邏輯運算亦可為其他邏輯運算。例如,雜亂引擎304是利用一第一雜亂值0x23(0010_0011)的第一奇數位元1對第一雜亂值0x23(0010_0011)的第一奇數位元1的下一位元1執行第一邏輯運算,產生一第二雜亂值的第一偶數位元0;利用第一雜亂值0x23(0010_0011)的第二奇數位元0對第一雜亂值0x23(0010_0011)的第二奇數位元0的下一位元0執行第一邏輯運算,產生第二雜亂值的第二偶數位元0;利用第一雜亂值0x23(0010_0011)的第三奇數位元0對第一雜亂值0x23(0010_0011)的第三奇數位元0的下一位元1執行第一邏輯運算,產生第二雜亂值的第三偶數位元1;以及利用第一雜亂值0x23(0010_0011)的第四奇數位元0對第一雜亂值0x23(0010_0011)的第四奇數位元0的下一位元0執行第一邏輯運算,產生第二雜亂值的第四偶數位元0。如第3圖所示,第二雜亂值的第一奇數位元、第二奇數位元、第三奇數位元和第四奇數位元分別為1、0、0、0,以及第二雜亂值的第一偶數位元、第二偶數位元、第三偶數位元和第四偶數位元分別為0、0、1、0。因此,雜亂引擎304即可透過上述過程,產生第二雜亂值0x21(0010_0001)。另外,本發明並不受限於第一雜亂值的位元數是為8,亦即第一雜亂
值亦可具有其他位元數。另外,雜亂引擎304的其餘操作原理皆和雜亂引擎104相同,在此不再贅述。
請參照第4圖,第4圖是為本發明的另一實施例說明一雜亂引擎404的示意圖,其中雜亂引擎404可取代第1圖中的雜亂引擎104。如第4圖所示,雜亂引擎404是利用一第一雜亂值的第一奇數位元對第一雜亂值的其他奇數位元執行一第一邏輯運算以及利用第一雜亂值的第一偶數位元對第一雜亂值的其他偶數位元執行第一邏輯運算,以產生一第二雜亂值,其中第一邏輯運算是可為一互斥或邏輯運算,但本發明並不受限於第一邏輯運算是為互斥或邏輯運算,亦即第一邏輯運算亦可為其他邏輯運算。如第4圖所示,雜亂引擎404是利用一第一雜亂值0x23(0010_0011)的第一奇數位元1對第一雜亂值0x23(0010_0011)的其他奇數位元0、0、0執行第一邏輯運算,產生一第二雜亂值的第一奇數位元1、第二奇數位元1、第三奇數位元1及第四奇數位元1,以及利用第一雜亂值0x23(0010_0011)的第一偶數位元1對第一雜亂值0x23(0010_0011)的其他偶數位元0、1、0執行第一邏輯運算,產生第二雜亂值的第一偶數位元1、第二偶數位元1、第三偶數位元0及第四偶數位元1。因此,雜亂引擎404即可透過上述過程,產生第二雜亂值0xDF(1101_1111)。另外,本發明並不受限於第一雜亂值的位元數是為8,亦即第一雜亂值亦可具有其他位元數。另外,雜亂引擎404的其餘操作原理皆和雜亂引擎104相同,在此不再贅述。
請參照第5圖,第5圖是為本發明的另一實施例說明一雜亂引擎504的示意圖,其中雜亂引擎504可取代第1圖中的雜亂引擎104。如第5圖所示,雜亂引擎504是先利用一第一雜亂值的第一位元對第一雜亂值的第二位元執行一第三邏輯運算,以產生一運算值。然後,雜亂引擎504利用運算值對第一雜亂值的第一位元與第二位元之外的其他位元執行一第一邏輯運算,以產生一第二雜亂值,其中第一邏輯運算是可為一互斥或邏輯運算,但本發明並不受限於第一邏輯運算是為互斥或邏輯運算,亦即第一邏輯運算亦可為其他邏輯運算。另外,第三邏輯運算和第一邏輯運算可相同或不同。如第5圖所示,雜亂引擎504是先利用一第一雜亂值0x21(0010_0001)的第一位元1對第一雜亂值0x21(0010_0001)的第二位元0執行第三邏輯運算(例如互斥或邏輯運算),以產生一運算值1。然後,雜亂引擎504再利用運算值1對第一雜亂值0x21(0010_0001)的第一位元1與第二位元0之外的其他位元執行第一邏輯運算,以產生一第二雜亂值的其他位元1、1、0、1、1、1。因此,雜亂引擎504即可透過上述過程,產生第二雜亂值0xDD(1101_1101)。另外,本發明並不受限於第一雜亂值的位元數是為8,亦即第一雜亂值亦可具有其他位元數。另外,雜亂引擎504的其餘操作原理皆和雜亂引擎104相同,在此不再贅述。
請參照第6圖,第6圖是為本發明的另一實施例說明一雜亂引擎604的示意圖,其中雜亂引擎604可取代第1圖中的雜亂引擎104。如第6圖所示,雜亂引擎604是先利用一第一雜亂值的第一位
元對第一雜亂值的其他位元執行一第三邏輯運算,以產生一預雜亂值。然後,雜亂引擎604再利用預雜亂值的每一奇數位元對每一奇數位元的下一位元執行一第一邏輯運算,以產生一第二雜亂值,其中第一邏輯運算是可為一互斥或邏輯運算,但本發明並不受限於第一邏輯運算是為互斥或邏輯運算,亦即第一邏輯運算亦可為其他邏輯運算。另外,第三邏輯運算和第一邏輯運算可相同或不同。如第6圖所示,雜亂引擎604是先利用一第一雜亂值0x23(0010_0011)的第一位元1對第一雜亂值0x23(0010_0011)的其他位元0、0、1、0、0、0、1執行第三邏輯運算(例如互斥或邏輯運算),以產生對應第一雜亂值0x23(0010_0011)的一預雜亂值0xDD(1101_1101)。然後,雜亂引擎604是利用預雜亂值0xDD(1101_1101)的第一奇數位元1對預雜亂值0xDD(1101_1101)的第一奇數位元1的下一位元0執行第一邏輯運算,產生一第二雜亂值的第一偶數位元1;利用預雜亂值0xDD(1101_1101)的第二奇數位元1對預雜亂值0xDD(1101_1101)的第二奇數位元1的下一位元1執行第一邏輯運算,產生第二雜亂值的第二偶數位元0;利用預雜亂值0xDD(1101_1101)的第三奇數位元1對預雜亂值0xDD(1101_1101)的第三奇數位元1的下一位元0執行第一邏輯運算,產生第二雜亂值的第三偶數位元1;以及利用預雜亂值0xDD(1101_1101)的第四奇數位元1對預雜亂值0xDD(1101_1101)的第四奇數位元1的下一位元1執行第一邏輯運算,產生第二雜亂值的第四偶數位元0。如第6圖所示,第二雜亂值的第一奇數位元、第二奇數位元、第三奇數位元和第四奇數位元分別為1、1、1、1,以及第二雜亂值的第一偶數位元、第二偶數位
元、第三偶數位元和第四偶數位元分別為1、0、1、0。因此,雜亂引擎604即可透過上述過程,產生第二雜亂值0x77(0111_0111)。另外,本發明並不受限於第一雜亂值的位元數是為8,亦即第一雜亂值亦可具有其他位元數。另外,雜亂引擎604的其餘操作原理皆和雜亂引擎104相同,在此不再贅述。
請參照第1圖、第2圖和第7圖,第7圖是為本發明的另一實施例說明一種產生雜亂值的方法的流程圖。第7圖的方法是利用第1圖的系統100和第2圖的雜亂引擎104說明,詳細步驟如下:步驟700:開始;步驟702:線性回授位移暫存器102根據一起始值seed,產生複數個第一雜亂值;步驟704:雜亂引擎104利用一第一雜亂值的第一位元對第一雜亂值的其他位元執行一第一邏輯運算,以產生一第二雜亂值;步驟706:邏輯閘106對第二雜亂值和來自主機108的一資料執行一第二邏輯運算,以產生並輸出對應來自主機108的資料的一雜亂資料至儲存型快閃記憶體110,跳至步驟704。
在步驟702中,線性回授位移暫存器102根據起始值seed,產生複數個第一雜亂值,例如0x23(0010_0011)、0x47(0100_0111)等。
在步驟704中,雜亂引擎104是用以利用第一雜亂值的第一位元對第一雜亂值的其他位元執行第一邏輯運算,以產生對應第一雜亂值的第二雜亂值,其中第二雜亂值的位元數和第一雜亂值的位元數相同。例如,如第2圖所示,當雜亂引擎104接收到一第一雜亂值0x23(0010_0011)時,雜亂引擎104是利用第一雜亂值0x23(0010_0011)的一第一位元1對第一雜亂值0x23(0010_0011)的其他位元0、0、1、0、0、0、1執行第一邏輯運算,以產生對應第一雜亂值0x23(0010_0011)的一第二雜亂值0xDD(1101_1101),其中第二雜亂值0xDD(1101_1101)的位元數和第一雜亂值0x23(0010_0011)的位元數是為相同,且第一邏輯運算是可為一互斥或邏輯運算。但本發明並不受限於第一雜亂值的位元數是為8,亦即第一雜亂值亦可具有其他位元數。另外,本發明亦不受限於第一邏輯運算是為互斥或邏輯運算,亦即第一邏輯運算亦可為其他邏輯運算。同理,當雜亂引擎104接收到第一雜亂值0x47(0100_0111)時,雜亂引擎104是利用0x47(0100_0111)的一第一位元1對第一雜亂值0x47(0100_0111)的其他位元0、1、0、0、0、1、1執行第一邏輯運算,以產生對應0x47(0100_0111)的一第二雜亂值0xB9(1011_1001)。因此,透過雜亂引擎104產生的第二雜亂值0xDD(1101_1101)和第二雜亂值0xB9(1011_1001)之間的關聯性並不高。在步驟706中,邏輯閘106是用以對第二雜亂值和來自主機108的資料執行第二邏輯運算,以產生並輸出對應來自主機108的資料的雜亂資料至儲存型快閃記憶體110,其中來自主機108的資料的位元數、第二雜亂值的位元數和雜亂資料的位元數相同。例如,當
邏輯閘106接收到第二雜亂值0xDD(1101_1101)和來自主機108的一資料0x20(0010_0000)時,邏輯閘106會對第二雜亂值0xDD(1101_1101)和資料0x20(0010_0000)執行第二邏輯運算,以產生並輸出對應資料0x20(0010_0000)的一雜亂資料0xFD(1111_1101)至儲存型快閃記憶體110。
請參照第1圖、第3圖和第8圖,第8圖是為本發明的另一實施例說明一種產生雜亂值的方法的流程圖。第8圖的方法是利用第1圖的系統100和第3圖的雜亂引擎304說明,詳細步驟如下:步驟800:開始;步驟802:線性回授位移暫存器102根據一起始值seed,產生複數個第一雜亂值;步驟804:雜亂引擎304利用一第一雜亂值的每一奇數位元對每一奇數位元的下一位元執行一第一邏輯運算,以產生一第二雜亂值;步驟806:邏輯閘106對第二雜亂值和來自主機108的一資料執行一第二邏輯運算,以產生並輸出對應來自主機108的資料的一雜亂資料至儲存型快閃記憶體110,跳至步驟804。
第8圖的實施例和第7圖的實施例的差別在於在步驟804中,雜亂引擎304是利用第一雜亂值的每一奇數位元對第一雜亂值的每
一奇數位元的下一位元執行第一邏輯運算,以產生對應第一雜亂值的第二雜亂值。例如,如第3圖所示,當雜亂引擎304接收到一第一雜亂值0x23(0010_0011)時,雜亂引擎304是利用第一雜亂值0x23(0010_0011)的第一奇數位元1對第一雜亂值0x23(0010_0011)的第一奇數位元1的下一位元1執行第一邏輯運算,產生一第二雜亂值的第一偶數位元0;利用第一雜亂值0x23(0010_0011)的第二奇數位元0對第一雜亂值0x23(0010_0011)的第二奇數位元0的下一位元0執行第一邏輯運算,產生第二雜亂值的第二偶數位元0;利用第一雜亂值0x23(0010_0011)的第三奇數位元0對第一雜亂值0x23(0010_0011)的第三奇數位元0的下一位元1執行第一邏輯運算,產生第二雜亂值的第三偶數位元1;以及利用第一雜亂值0x23(0010_0011)的第四奇數位元0對第一雜亂值0x23(0010_0011)的第四奇數位元0的下一位元0執行第一邏輯運算,產生第二雜亂值的第四偶數位元0。如第3圖所示,第二雜亂值的第一奇數位元、第二奇數位元、第三奇數位元和第四奇數位元分別為1、0、0、0,以及第二雜亂值的第一偶數位元、第二偶數位元、第三偶數位元和第四偶數位元分別為0、0、1、0。因此,雜亂引擎304即可透過上述過程,產生第二雜亂值0x21(0010_0001)。另外,第8圖的實施例的其餘操作原理皆和第7圖的實施例相同,在此不再贅述。
請參照第1圖、第4圖和第9圖,第9圖是為本發明的另一實施例說明一種產生雜亂值的方法的流程圖。第9圖的方法是利用第1圖的系統100和第4圖的雜亂引擎404說明,詳細步驟如下:
步驟900:開始;步驟902:線性回授位移暫存器102根據一起始值seed,產生複數個第一雜亂值;步驟904:雜亂引擎404利用一第一雜亂值的第一奇數位元對第一雜亂值的其他奇數位元執行一第一邏輯運算以及利用第一雜亂值的第一偶數位元對第一雜亂值的其他偶數位元執行第一邏輯運算,以產生一第二雜亂值;步驟906:邏輯閘106對第二雜亂值和來自主機108的一資料執行一第二邏輯運算,以產生並輸出對應來自主機108的資料的一雜亂資料至儲存型快閃記憶體110,跳至步驟904。
第9圖的實施例和第7圖的實施例的差別在於在步驟904中,雜亂引擎404是利用第一雜亂值的第一奇數位元對第一雜亂值的其他奇數位元執行第一邏輯運算以及利用第一雜亂值的第一偶數位元對第一雜亂值的其他偶數位元執行第一邏輯運算,以產生第二雜亂值。例如,如第4圖所示,當雜亂引擎404接收到一第一雜亂值0x23(0010_0011)時,雜亂引擎404是利用第一雜亂值0x23(0010_0011)的第一奇數位元1對第一雜亂值0x23(0010_0011)的其他奇數位元0、0、0執行第一邏輯運算,產生一第二雜亂值的第一奇數位元1、第二奇數位元1、第三奇數位元1及第四奇數位元
1,以及利用第一雜亂值0x23(0010_0011)的第一偶數位元1對第一雜亂值0x23(0010_0011)的其他偶數位元0、1、0執行第一邏輯運算,產生第二雜亂值的第一偶數位元1、第二偶數位元1、第三偶數位元0及第四偶數位元1。因此,雜亂引擎404即可透過上述過程,產生第二雜亂值0xDF(1101_1111)。另外,第9圖的實施例的其餘操作原理皆和第7圖的實施例相同,在此不再贅述。
請參照第1圖、第5圖和第10圖,第10圖是為本發明的另一實施例說明一種產生雜亂值的方法的流程圖。第10圖的方法是利用第1圖的系統100和第5圖的雜亂引擎504說明,詳細步驟如下:步驟1000:開始;步驟1002:線性回授位移暫存器102根據一起始值seed,產生複數個第一雜亂值;步驟1004:雜亂引擎504利用一第一雜亂值的第一位元對第一雜亂值的第二位元執行一第三邏輯運算,以產生一運算值;步驟1006:雜亂引擎504利用運算值對第一雜亂值的第一位元與第二位元之外的其他位元執行一第一邏輯運算,以產生一第二雜亂值;步驟1008:邏輯閘106對第二雜亂值和來自主機108的一資料執行一第二邏輯運算,以產生並輸出對應來自主機108的資料的一雜亂資料至儲存型快閃記憶體110,跳至
步驟1004。
第10圖的實施例和第7圖的實施例的差別在於在步驟1004中,雜亂引擎504是先利用第一雜亂值的第一位元對第一雜亂值的第二位元執行第三邏輯運算,以產生運算值;在步驟1006中,雜亂引擎504利用運算值對第一雜亂值的第一位元與第二位元之外的其他位元執行第一邏輯運算,以產生第二雜亂值,其中第三邏輯運算是可為一互斥或邏輯運算,但本發明並不受限於第三邏輯運算是為互斥或邏輯運算,亦即第三邏輯運算亦可為其他邏輯運算。另外,第三邏輯運算和第一邏輯運算可相同或不同。例如,如第5圖所示,當雜亂引擎504接收到一第一雜亂值0x23(0010_0011)時,雜亂引擎504是先利用第一雜亂值0x21(0010_0001)的第一位元1對第一雜亂值0x21(0010_0001)的第二位元0執行第三邏輯運算,以產生一運算值1。然後,雜亂引擎504再利用運算值1對第一雜亂值0x21(0010_0001)的第一位元1與第二位元0之外的其他位元執行第一邏輯運算,以產生一第二雜亂值的其他位元1、1、0、1、1、1。因此,雜亂引擎504即可透過上述過程,產生第二雜亂值0xDD(1101_1101)。另外,第10圖的實施例的其餘操作原理皆和第7圖的實施例相同,在此不再贅述。
請參照第1圖、第6圖和第11圖,第11圖是為本發明的另一實施例說明一種產生雜亂值的方法的流程圖。第11圖的方法是利用第1圖的系統100和第6圖的雜亂引擎604說明,詳細步驟如下:
步驟1100:開始;步驟1102:線性回授位移暫存器102根據一起始值seed,產生複數個第一雜亂值;步驟1104:雜亂引擎604利用一第一雜亂值的第一位元對第一雜亂值的其他位元執行一第三邏輯運算,以產生一預雜亂值;步驟1106:雜亂引擎604利用預雜亂值的每一奇數位元對每一奇數位元的下一位元執行一第一邏輯運算,以產生一第二雜亂值;步驟1108:邏輯閘106對第二雜亂值和來自主機108的一資料執行一第二邏輯運算,以產生並輸出對應來自主機108的資料的一雜亂資料至儲存型快閃記憶體110,跳至步驟1104。
第11圖的實施例和第7圖的實施例的差別在於在步驟1104中,雜亂引擎604是先利用第一雜亂值的第一位元對第一雜亂值的其他位元執行第三邏輯運算,以產生預雜亂值;在步驟1106中,雜亂引擎604再利用預雜亂值的每一奇數位元對每一奇數位元的下一位元執行第一邏輯運算,以產生第二雜亂值,其中第三邏輯運算是可為一互斥或邏輯運算,但本發明並不受限於第三邏輯運算是為互斥或邏輯運算,亦即第三邏輯運算亦可為其他邏輯運算。另外,第三邏輯運算和第一邏輯運算可相同或不同。例如,如第6圖所示,當雜
亂引擎604接收到一第一雜亂值0x23(0010_0011)時,雜亂引擎604是先利用第一雜亂值0x23(0010_0011)的第一位元1對第一雜亂值0x23(0010_0011)的其他位元0、0、1、0、0、0、1執行第三邏輯運算,以產生對應第一雜亂值0x23(0010_0011)的一預雜亂值0xDD(1101_1101)。然後,雜亂引擎604是利用預雜亂值0xDD(1101_1101)的第一奇數位元1對預雜亂值0xDD(1101_1101)的第一奇數位元1的下一位元0執行第一邏輯運算,產生一第二雜亂值的第一偶數位元1;利用預雜亂值0xDD(1101_1101)的第二奇數位元1對預雜亂值0xDD(1101_1101)的第二奇數位元1的下一位元1執行第一邏輯運算,產生第二雜亂值的第二偶數位元0;利用預雜亂值0xDD(1101_1101)的第三奇數位元1對預雜亂值0xDD(1101_1101)的第三奇數位元1的下一位元0執行第一邏輯運算,產生第二雜亂值的第三偶數位元1;以及利用預雜亂值0xDD(1101_1101)的第四奇數位元1對預雜亂值0xDD(1101_1101)的第四奇數位元1的下一位元1執行第一邏輯運算,產生第二雜亂值的第四偶數位元0。如第6圖所示,第二雜亂值的第一奇數位元、第二奇數位元、第三奇數位元和第四奇數位元分別為1、1、1、1,以及第二雜亂值的第一偶數位元、第二偶數位元、第三偶數位元和第四偶數位元分別為1、0、1、0。因此,雜亂引擎604即可透過上述過程,產生第二雜亂值0x77(0111_0111)。另外,第11圖的實施例的其餘操作原理皆和第7圖的實施例相同,在此不再贅述。
綜上所述,本發明所提供的產生雜亂值的系統和產生雜亂值的
方法,是利用雜亂引擎根據線性回授位移暫存器所產生的第一雜亂值,產生第二雜亂值,其中相鄰第二雜亂值是低度相關。因此,本發明透過邏輯閘所產生的相鄰雜亂資料亦會低度相關。如此,相較於先前技術,本發明所產生的低度相關的相鄰雜亂資料可滿足儲存型快閃記憶體的規範。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧系統
102‧‧‧線性回授位移暫存器
104、304、404、504、604‧‧‧雜亂引擎
106‧‧‧邏輯閘
108‧‧‧主機
110‧‧‧儲存型快閃記憶體
seed‧‧‧起始值
700-706、800-806、900-906、
1000-1008、1100-1108‧‧‧步驟
第1圖是為本發明的一實施例說明一種產生雜亂值的系統的示意圖。
第2圖是為說明雜亂引擎的示意圖。
第3圖是為本發明的另一實施例說明雜亂引擎的示意圖。
第4圖是為本發明的另一實施例說明雜亂引擎的示意圖。
第5圖是為本發明的另一實施例說明雜亂引擎的示意圖。
第6圖是為本發明的另一實施例說明雜亂引擎的示意圖。
第7圖是為本發明的另一實施例說明一種產生雜亂值的方法的流程圖。
第8圖是為本發明的另一實施例說明一種產生雜亂值的方法的流程圖。
第9圖是為本發明的另一實施例說明一種產生雜亂值的方法的流程圖。
第10圖是為本發明的另一實施例說明一種產生雜亂值的方法的流程圖。
第11圖是為本發明的另一實施例說明一種產生雜亂值的方法的流程圖。
100‧‧‧系統
102‧‧‧線性回授位移暫存器
104‧‧‧雜亂引擎
106‧‧‧邏輯閘
108‧‧‧主機
110‧‧‧儲存型快閃記憶體
seed‧‧‧起始值
Claims (20)
- 一種產生雜亂值的系統,包含:一線性回授位移暫存器(linear feedback shift register,LFSR),用以根據一起始值,產生複數個第一雜亂值;及一雜亂引擎,耦接於該線性回授位移暫存器,用以利用該複數個第一雜亂值中的每一第一雜亂值的至少一位元對該第一雜亂值的其他位元執行一第一邏輯運算,以產生對應該第一雜亂值的一第二雜亂值,其中該第二雜亂值的位元數和該第一雜亂值的位元數相同。
- 如請求項1所述的系統,另包含:一邏輯閘,耦接於該雜亂引擎,用以對該第二雜亂值和來自一主機的一資料執行一第二邏輯運算,以產生並輸出對應該資料的一雜亂資料至一儲存型快閃記憶體(NAND flash),其中該資料的位元數、該第二雜亂值的位元數和該雜亂資料的位元數相同。
- 如請求項2所述的系統,其中該邏輯閘是為一互斥或閘,且該第二邏輯運算是為一互斥或邏輯運算。
- 如請求項1所述的系統,其中該雜亂引擎是利用該第一雜亂值的第一位元對該第一雜亂值的其他位元執行該第一邏輯運算,以產生該第二雜亂值。
- 如請求項1所述的系統,其中該雜亂引擎是利用該第一雜亂值的每一奇數位元對該奇數位元的下一位元執行該第一邏輯運算,以產生該第二雜亂值。
- 如請求項1所述的系統,其中該雜亂引擎是利用該第一雜亂值的第一奇數位元對該第一雜亂值的其他奇數位元執行該第一邏輯運算以及利用該第一雜亂值的第一偶數位元對該第一雜亂值的其他偶數位元執行該第一邏輯運算,以產生該第二雜亂值。
- 如請求項1所述的系統,其中該雜亂引擎是先利用該第一雜亂值的第一位元對該第一雜亂值的第二位元執行一第三邏輯運算,以產生一運算值,再利用該運算值對該第一位元與該第二位元之外的其他位元執行該第一邏輯運算,以產生該第二雜亂值。
- 如請求項1所述的系統,其中該雜亂引擎是先利用該第一雜亂值的第一位元對該第一雜亂值的其他位元執行一第三邏輯運算,以產生一預雜亂值,以及再利用該預雜亂值的每一奇數位元對該奇數位元的下一位元執行該第一邏輯運算,以產生該第二雜亂值。
- 如請求項7或8所述的系統,其中該第三邏輯運算和該第一邏 輯運算相同或不同。
- 6、7或8所述的系統,其中該第一邏輯運算是為一互斥或邏輯運算。
- 一種產生雜亂值的方法,包含:根據一起始值,產生複數個第一雜亂值;及利用該複數個第一雜亂值中的每一第一雜亂值的至少一位元對該第一雜亂值的其他位元執行一第一邏輯運算,以產生對應該第一雜亂值的一第二雜亂值,其中該第二雜亂值的位元數和該第一雜亂值的位元數相同。
- 如請求項11所述的方法,另包含:對該第二雜亂值和來自一主機的一資料執行一第二邏輯運算,以產生並輸出對應該資料的一雜亂資料至一儲存型快閃記憶體;其中該資料的位元數、該第二雜亂值的位元數和該雜亂資料的位元數相同。
- 如請求項12所述的方法,其中該第二邏輯運算是為一互斥或邏輯運算。
- 如請求項11所述的方法,其中利用該第一雜亂值的至少一位元 對該第一雜亂值的其他位元執行該第一邏輯運算,以產生對應該第二雜亂值,是為利用該第一雜亂值的第一位元對該第一雜亂值的其他位元執行該第一邏輯運算,以產生該第二雜亂值。
- 如請求項11所述的方法,其中利用該第一雜亂值的至少一位元對該第一雜亂值的其他位元執行該第一邏輯運算,以產生對應該第二雜亂值,是為利用該第一雜亂值的每一奇數位元對該奇數位元的下一位元執行該第一邏輯運算,以產生該第二雜亂值。
- 如請求項11所述的方法,其中利用該第一雜亂值的至少一位元對該第一雜亂值的其他位元執行該第一邏輯運算,以產生對應該第二雜亂值,是為利用該第一雜亂值的第一奇數位元對該第一雜亂值的其他奇數位元執行該第一邏輯運算以及利用該第一雜亂值的第一偶數位元對該第一雜亂值的其他偶數位元執行該第一邏輯運算,以產生該第二雜亂值。
- 如請求項11所述的方法,其中利用該第一雜亂值的至少一位元對該第一雜亂值的其他位元執行該第一邏輯運算,以產生對應該第二雜亂值包含:利用該第一雜亂值的第一位元對該第一雜亂值的第二位元執行一第三邏輯運算,以產生一運算值;及利用該運算值對該第一位元與該第二位元之外的其他位元執行該第一邏輯運算,以產生該第二雜亂值。
- 如請求項11所述的方法,其中利用該第一雜亂值的至少一位元對該第一雜亂值的其他位元執行該第一邏輯運算,以產生對應該第二雜亂值包含:利用該第一雜亂值的第一位元對該第一雜亂值的其他位元執行一第三邏輯運算,以產生一預雜亂值;及利用該預雜亂值的每一奇數位元對該奇數位元的下一位元執行該第一邏輯運算,以產生該第二雜亂值。
- 如請求項17或18所述的方法,其中該第三邏輯運算和該第一邏輯運算相同或不同。
- 如請求項14、15、16、17或18所述的方法,其中該第一邏輯運算是為一互斥或邏輯運算。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261662362P | 2012-06-21 | 2012-06-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201401166A TW201401166A (zh) | 2014-01-01 |
TWI474256B true TWI474256B (zh) | 2015-02-21 |
Family
ID=47574741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101129234A TWI474256B (zh) | 2012-06-21 | 2012-08-13 | 產生雜亂值的系統和產生雜亂值的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9361214B2 (zh) |
CN (1) | CN102902490B (zh) |
TW (1) | TWI474256B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4965881A (en) * | 1989-09-07 | 1990-10-23 | Northern Telecom Limited | Linear feedback shift registers for data scrambling |
TW453064B (en) * | 2000-01-15 | 2001-09-01 | Via Tech Inc | Transmission control circuit using hashing function operation and its method |
CN1490811A (zh) * | 2002-10-07 | 2004-04-21 | 三星电子株式会社 | 用于在光盘系统中逐字加扰和解扰数据的装置和方法 |
TWI267829B (en) * | 2004-05-04 | 2006-12-01 | Samsung Electronics Co Ltd | Digital data coding apparatus, DVD recording apparatus, and method of using the same |
US20090204824A1 (en) * | 2007-12-31 | 2009-08-13 | Lin Jason T | System, method and memory device providing data scrambling compatible with on-chip copy operation |
US20090323942A1 (en) * | 2008-06-30 | 2009-12-31 | Eran Sharon | Method for page- and block based scrambling in non-volatile memory |
TW201102806A (en) * | 2009-07-13 | 2011-01-16 | Silicon Motion Inc | Method for preventing a data storage device from data shift errors and controller for same |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3294739B2 (ja) * | 1995-03-30 | 2002-06-24 | 三洋電機株式会社 | Fm多重放送のスクランブルまたはデスクランブル方法 |
US7571200B2 (en) * | 2002-04-24 | 2009-08-04 | Hewlett-Packard Development Company, L.P. | Seedable pseudo-random number generator |
US7263540B1 (en) * | 2004-03-03 | 2007-08-28 | The United States Of America As Represented By The Director National Security Agency | Method of generating multiple random numbers |
US20100070549A1 (en) * | 2006-06-20 | 2010-03-18 | Nxp B.V. | Random number generator system, method for generating random numbers |
JP5019611B2 (ja) * | 2007-12-27 | 2012-09-05 | 株式会社東芝 | メモリシステム |
CN102314332B (zh) * | 2011-07-27 | 2014-04-09 | 中国科学院计算机网络信息中心 | 伪随机数生成装置和方法 |
-
2012
- 2012-08-13 TW TW101129234A patent/TWI474256B/zh not_active IP Right Cessation
- 2012-08-29 CN CN201210313968.0A patent/CN102902490B/zh active Active
-
2013
- 2013-04-30 US US13/873,260 patent/US9361214B2/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4965881A (en) * | 1989-09-07 | 1990-10-23 | Northern Telecom Limited | Linear feedback shift registers for data scrambling |
TW453064B (en) * | 2000-01-15 | 2001-09-01 | Via Tech Inc | Transmission control circuit using hashing function operation and its method |
CN1490811A (zh) * | 2002-10-07 | 2004-04-21 | 三星电子株式会社 | 用于在光盘系统中逐字加扰和解扰数据的装置和方法 |
TWI267829B (en) * | 2004-05-04 | 2006-12-01 | Samsung Electronics Co Ltd | Digital data coding apparatus, DVD recording apparatus, and method of using the same |
US20090204824A1 (en) * | 2007-12-31 | 2009-08-13 | Lin Jason T | System, method and memory device providing data scrambling compatible with on-chip copy operation |
US20090323942A1 (en) * | 2008-06-30 | 2009-12-31 | Eran Sharon | Method for page- and block based scrambling in non-volatile memory |
TW201102806A (en) * | 2009-07-13 | 2011-01-16 | Silicon Motion Inc | Method for preventing a data storage device from data shift errors and controller for same |
Also Published As
Publication number | Publication date |
---|---|
CN102902490A (zh) | 2013-01-30 |
US20130346679A1 (en) | 2013-12-26 |
US9361214B2 (en) | 2016-06-07 |
CN102902490B (zh) | 2015-11-11 |
TW201401166A (zh) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016200465A3 (en) | System and method for hierarchical cryptographic key generation using biometric data | |
KR101987141B1 (ko) | 난수 발생기 | |
JP6499065B2 (ja) | 乱数発生回路および半導体記憶装置 | |
JP2010531018A5 (zh) | ||
CN113535075A (zh) | 具有增强的物理安全性的数据加扰器 | |
US9672105B2 (en) | Device and method for processing data using logical information and physical information | |
US20150222434A1 (en) | Crt-rsa encryption method and apparatus | |
CN102707923A (zh) | 一种伪随机数生成电路及伪随机数产生方法 | |
US20150058639A1 (en) | Encryption processing device and storage device | |
TWI474256B (zh) | 產生雜亂值的系統和產生雜亂值的方法 | |
JP6246239B2 (ja) | 素数生成のための方法およびデバイス | |
WO2016128463A1 (en) | Method to generate high quality random mask from small entropy source | |
JP2016503195A5 (zh) | ||
CN102904715A (zh) | 基于耦合混沌映射系统的并行伪随机比特发生器 | |
JP6067596B2 (ja) | ペアリング演算装置、マルチペアリング演算装置、プログラム | |
TWI835601B (zh) | 資料加密的回合密鑰擴展裝置及方法 | |
Banik et al. | Some results on related key-IV pairs of grain | |
TWI835381B (zh) | 資料加密的錯誤偵測裝置 | |
Patel et al. | A Multi Secret Image Sharing Scheme for RGB Images | |
Lee et al. | Metastability-based feedback method for enhancing fpga-based trng | |
KR102285940B1 (ko) | 데이터 처리 회로, 데이터 처리 회로를 포함하는 데이터 저장 장치 및 그것의 동작 방법 | |
Nakajima | Dual F-signature of special Cohen-Macaulay modules over cyclic quotient surface singularities | |
US20150195084A1 (en) | One-bit to four-bit dual conversion apparatus for enhanced security against side channel analysis and method thereof | |
RU2469382C1 (ru) | Способ формирования регулярных последовательностей с элементами, составленными из двоичных сигналов | |
Yan et al. | Threshold visual secret sharing based on boolean operations and random grids |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |