VERİLOG İLE TAUSWORTHE DENKLEMİNE DAYANAN YENİ BİR RASTGELE SAYI ÜRETECİ TASARIMI


Tezin Türü: Yüksek Lisans

Tezin Yürütüldüğü Kurum: İstanbul Ticaret Üniversitesi, Fen Bilimleri Enstitüsü, Türkiye

Tezin Onay Tarihi: 2021

Tezin Dili: Türkçe

Öğrenci: MINARA HASANBAYLI

Danışman: TAVAS VEDAT

Özet:

ÖZET Rastgele sayılar şifreleme, bilgisayar benzetimi, rastgele tasarım gibi birçok alanda kullanılmaktadır. Rastgele sayılar herhangi bir öngörülebilirlik içermeyen rastgele süreçlerden elde edilir. Rastgeleliğin yetersizliği tüm sistemin güvenliğini etkileye bilir. Bu yüzden rastgele sayıların tahmin edilememesi gerekir. Bu çalışmada ayrık zamanlı rastgele sayı üreteci tasarlanmış ve FPGA ile gerçeklenmiştir. Alanda Programlanabilir Kapı dizisi tasarımcının ihtiyaç duyduğu mantık işlevlerini gerçekleştirme maksatlı üretilmiştir. Bu yöntemle üretilen bit dizilerinin rastgeleliğini belirlemek için FIPS test kümesi kullanılmış ve diziler bu testlerden başarıyla geçmiştir. Tasarım Xilinx yazılımı kullanılarak Verilog programlama dili ile yapılmıştır. Anahtar Kelimeler: Alanda programlanabilir kapı dizileri, geribeslemeli kaydırmalı yazmaç, rastgele sayı üreteci, Tausworthe yöntemi, Verilog. ABSTRACT Random numbers are used in many fields such as encryption, computer simulation, random design. Random numbers are derived from random processes that cannot contain any predictability. The inadequacy of randomness may affect the security of the entire system. Therefore, the random numbers should not be predicted. In this study, a discrete time random number generator was designed and implemented with FPGA. Field Programmable Gate array (FPGA) has been produced to perform the logic functions required by the designer. FIPS test set was used to determine the randomness of the bit strings produced by this method, and the strings passed these tests successfully. The design was made with Verilog programming language using Xilinx software. Keywords: Feedback shift register, field programmable gate array (FPGA), random number generator (RNG), Tausworthe method , Verilog. İÇİNDEKİLER İÇİNDEKİLER . i ÖZET . iii ABSTRACT . iv TEŞEKKÜR . v ŞEKİLLER DİZİNİ . vi ÇİZELGELER DİZİNİ . vii SİMGELER VE KISALTMALAR DİZİNİ . viii 1. GİRİŞ. 1 2. LİTERATÜR ÖZETİ . 3 2. 1. Rastgele Sayı Üretecleri . 3 2. 1. 1. Rastgele sayı üreteçlerinin özellikleri . 4 2. 1. 2. Rastgele sayı üreteçlerinin sınıflandırılması . 5 2. 1. 2. 1. Sözde rastgele sayı üreteci . 5 2. 1. 2. 1. 1. Zayıf sözde rastgele sayı . 7 2. 1. 2. 1. 2. Güçlü sözde rastgele sayı . 7 2. 1. 2. 2. Gerçek rastgele sayı rreteci . 7 2. 1. 2. 3 Hibrid rastgele sayı üreteci . 9 2. 1. 2. 4. Basit rastgele sayı üreteci . 9 2. 1. 2. 5 Güvenilir rastgele sayı üreteci . 10 2. 1. 3. Rastgele sayı üreteçlerinin gelişimi . 10 2. 1. 4. Rastgele sayıların kullanım alanları . 11 2. 1. 5. Rastgele sayı üreteçleri için istatistiksel testler . 13 2. 1. 5. 1 FIPS testi . 13 2. 1. 5. 1. 1 Monobit testi . 14 2. 1. 5. 1. 2 Poker testi . 14 2. 1. 5. 1. 3. Uzun koşu testi . 14 2. 1. 5. 1. 4. Koşu testi . 14 2. 1. 6. NIST testi . 15 2. 1. 7. AIS31 testi . 16 2. 1. 8. Diehard testi . 16 2. 1. 9. Rastgele sayı üreteclerinin gerçekleme yöntemleri . 16 2. 1. 9. 1. Doğrusal eşzamanlı oluşturucu . 17 2. 1. 9. 2. Orta kare yöntemi . 17 2. 1. 9. 3. Mersenne Twister yöntemi . 17 2. 1. 9. 4. Monte Carlo yöntemi. 18 2. 1. 9. 5 Tausworthe yöntemi . 18 2. 2. Donanım Tanımlama Dilleri . 18 2. 2. 1. FPGA programlama . 19 2. 2. 1. 1. Şematik tasarım . 19 2. 2. 1. 2. VHD dili . 20 2. 2. 1. 3. Verilog dili . 21 2. 2. 2 Verilog dilinin özellikleri . 21 2. 3. Alanda Programlanabilir Kapı Dizileri . 23 2. 3. 1. FPGA’ın yapısı . 27 2. 3. 1. 1. Progranabilir lojik bloklar . 28 2. 3. 1. 2. Programlanabilir ara bağlantılar . 28 2. 3. 1. 3. Programlanabilir giriş/ çıkış blokları . 28 2. 3. 1. 4. Programlanabilir alıcı/ verici bloklar . 28 2. 3. 2. FPGA uygulama alanları . 29 2. 3. 3. FPGA sınıflandırmaları . 31 2. 3. 3. 1. Programlanabilir mantık blokları olarak sınıflandırması . 31 2. 3. 3. 2. Ara bağlantı yapısı sınıflandırması . 31 2. 3. 4. FPGA’nın programlama özellikleri . 32 2. 3. 4. 1. Tek seferlik programlama . 32 2. 3. 4. 2. Yeniden programlama . 33 3. TAUSWORTHE YÖNTEMİ . 34 3. 1. LFSR ile Yapılan Çalışmalar . 36 4. ARAŞTIRMA BULGULARI VE TARTIŞMA . 39 5. SONUÇ VE ÖNERİLER . 62 KAYNAKLAR . 64 ÖZGEÇMİŞ . 70