215E225 TÜBİTAK 3001 PROJESİ SONUÇ RAPORU
Donanım Kaynaklarından Rastgele Sayı Üretimi
Bu çalışma yapılırken izlenen kuramsal yaklaşım ve yöntemdeki ilk basamak RFID etiket üzerinde gerçek rastgele sayı üretimidir. Bilindiği üzere piyasada bulunan etiketlerin mikroişlemcilerine direk müdahale şansı olmadığı için çalışmamızda yazılımına müdahale edebileceğimiz WISP (Sample vd., 2008) RFID etiketi kullanılmıştır. WISP etiketi üzerinde rastgele sayı üretimi için kullanılan rand() fonksiyonu bulunmaktadır ancak bu fonksiyonun rastgeleliği çok yetersizdir (Fujdiak vd., 2013). Gerçek rastgele sayının elde edilmesi için WISP üzerindeki ivme ve sıcaklık sensörlerinden (Voris vd., 2011), birbirinden bağımsız iki farklı saatin saat farkından (Fujdiak vd., 2013) ve voltaj ölçümünden yararlanılarak elde edilen birden fazla kaynaktan gelen veriler kullanılmıştır. Gerçek rastgele sayı şu yöntemlerle elde edilmiştir:
1. Sıcaklık sensörü üzerinden okunan değerler kullanılarak rastgele sayı üretimi gerçekleştirilmiştir. Sıcaklığın çok değişmediği durumlar göz önünde bulundurularak tek bir örnekleme ile rastgele sayı üretimi yerine 16 bitlik bir sayı üretimi için 16 kez örnekleme yaparak en düşük anlamlı bitin kullanılması yöntemi benimsenmiştir. Burada uygulanan yönteme ilişkin akış şeması Şekil 2’de verilmiştir.
Şekil 2. Sıcaklık duyargasından yapılan örnekleme vasıtası ile gerçek rastgele sayı üretimi akış şeması
2. Sıcaklık sensöründe olduğu gibi ivme sensörü üzerinden de bilgi alınarak rastgele sayı üretimi yapılmıştır. Burada tek örneklemde x,y,z şeklinde üç farklı değer okunabilmektedir. Örneklem sonucunda her bir değerin en düşük anlamlı bitinin alınması ile 16 bitlik bir rastgele sayı üretimi sağlanmıştır. Sıcaklık sensöründen rastgele sayı üretimi ile ilgili Şekil 3 üzerinde işlem adımları verilmiştir.
Şekil 3. İvmeölçer ile GRSÜ akış şeması
3. Sensörlerin yetersiz kaldığı durumlarda WISP üzerindeki MSP430FR5969 işlemcisinin iki farklı saatinden yararlanılabilir. İki farklı saat, iki farklı süreölçere (timer) sinyal üretmek için kullanılır. Alt ana saati (Sub-Main Clock - SMCLK) 1, 8, 12 ve 16 Mhz için sıfırlanabilir. Aynı şekilde 12 Khz’de çalışan yardımcı saat (Auxiliary Clock – ACLK) de sıfırlanabilir. Tüm bu işlemleri yapmak için gerekli yazmaçlar MSP430FR5969 işlemcisinde bulunmaktadır. Temelde 1 Mhz’de çalışan SMCLK saati aslında 0,9 Mhz ile 1,1 Mhz arasında salınım yapmaktadır. Her iki saatin zaman farkı rastgele sayı üretimi için kullanılabilir (Fujdiak vd., 2013). Projede bu saat farkları kullanılarak gerçek rastgele sayı üretimi yapılmıştır. Şekil 4’de bu yöntem görülebilmektedir.
Şekil 4. DCO & VLO saat darbesi farkından GRSÜ akış şeması
4. MSP430FR5969 mikroişlemcisi üzerinde bir adet 12 bitlik analog dijital çevirici bulunmaktadır (Şekil 5). WISP üzerindeki kapasitörde biriken voltaj miktarı Analog Dijital Çevirici (Analog Digital Converter - ADC) üzerinden örneklenerek sayısal değer elde edilebilmektedir. Proje kapsamında, rastgele sayı üretimi için voltaj değerinin tek veya çift olduğunu belirleyen sağdan ilk biti (LSB-Least Significant Bit) kullanılmıştır (Buccini, 2000). 16 bitlik bir rastgele sayı üretebilmek için 16 örnekleme yapılmıştır. Her bir örnekleme işleminde elde edilen sayısal değerin sağdan ilk biti alınacak, rastgele sayımızın sağdan ilk biti olarak belirlenmiştir. Bu işlem sonrasında sayının tüm bitleri bir kez sola ötelenmiş ve bu şekilde 16 çevrim sonucunda 16 bitlik bir rastgele sayı elde edilmiştir. Şekil 6 üzerinde bu yöntemin akış şeması yer almaktadır.
Şekil 5. MSP430 için 12 bit analog dijital çevirici – ADC12 (Westlund, 2006)
Şekil 6. ADC gerilim örneklemesi vasıtası ile gerçek rastgele sayı üretimi akış şeması
Yukarıda konu edilen tüm yöntemler proje gelişme raporunda detaylı bir şekilde anlatılmış, üretilen rastgele sayılar ve yapılan testlerle ilgili resimler http://srg.cs.deu.edu.tr/wisp.html adresinde detaylı bir şekilde yer almaktadır.
1. Sıcaklık sensörü üzerinden okunan değerler kullanılarak rastgele sayı üretimi gerçekleştirilmiştir. Sıcaklığın çok değişmediği durumlar göz önünde bulundurularak tek bir örnekleme ile rastgele sayı üretimi yerine 16 bitlik bir sayı üretimi için 16 kez örnekleme yaparak en düşük anlamlı bitin kullanılması yöntemi benimsenmiştir. Burada uygulanan yönteme ilişkin akış şeması Şekil 2’de verilmiştir.
Şekil 2. Sıcaklık duyargasından yapılan örnekleme vasıtası ile gerçek rastgele sayı üretimi akış şeması
2. Sıcaklık sensöründe olduğu gibi ivme sensörü üzerinden de bilgi alınarak rastgele sayı üretimi yapılmıştır. Burada tek örneklemde x,y,z şeklinde üç farklı değer okunabilmektedir. Örneklem sonucunda her bir değerin en düşük anlamlı bitinin alınması ile 16 bitlik bir rastgele sayı üretimi sağlanmıştır. Sıcaklık sensöründen rastgele sayı üretimi ile ilgili Şekil 3 üzerinde işlem adımları verilmiştir.
Şekil 3. İvmeölçer ile GRSÜ akış şeması
3. Sensörlerin yetersiz kaldığı durumlarda WISP üzerindeki MSP430FR5969 işlemcisinin iki farklı saatinden yararlanılabilir. İki farklı saat, iki farklı süreölçere (timer) sinyal üretmek için kullanılır. Alt ana saati (Sub-Main Clock - SMCLK) 1, 8, 12 ve 16 Mhz için sıfırlanabilir. Aynı şekilde 12 Khz’de çalışan yardımcı saat (Auxiliary Clock – ACLK) de sıfırlanabilir. Tüm bu işlemleri yapmak için gerekli yazmaçlar MSP430FR5969 işlemcisinde bulunmaktadır. Temelde 1 Mhz’de çalışan SMCLK saati aslında 0,9 Mhz ile 1,1 Mhz arasında salınım yapmaktadır. Her iki saatin zaman farkı rastgele sayı üretimi için kullanılabilir (Fujdiak vd., 2013). Projede bu saat farkları kullanılarak gerçek rastgele sayı üretimi yapılmıştır. Şekil 4’de bu yöntem görülebilmektedir.
Şekil 4. DCO & VLO saat darbesi farkından GRSÜ akış şeması
4. MSP430FR5969 mikroişlemcisi üzerinde bir adet 12 bitlik analog dijital çevirici bulunmaktadır (Şekil 5). WISP üzerindeki kapasitörde biriken voltaj miktarı Analog Dijital Çevirici (Analog Digital Converter - ADC) üzerinden örneklenerek sayısal değer elde edilebilmektedir. Proje kapsamında, rastgele sayı üretimi için voltaj değerinin tek veya çift olduğunu belirleyen sağdan ilk biti (LSB-Least Significant Bit) kullanılmıştır (Buccini, 2000). 16 bitlik bir rastgele sayı üretebilmek için 16 örnekleme yapılmıştır. Her bir örnekleme işleminde elde edilen sayısal değerin sağdan ilk biti alınacak, rastgele sayımızın sağdan ilk biti olarak belirlenmiştir. Bu işlem sonrasında sayının tüm bitleri bir kez sola ötelenmiş ve bu şekilde 16 çevrim sonucunda 16 bitlik bir rastgele sayı elde edilmiştir. Şekil 6 üzerinde bu yöntemin akış şeması yer almaktadır.
Şekil 5. MSP430 için 12 bit analog dijital çevirici – ADC12 (Westlund, 2006)
Şekil 6. ADC gerilim örneklemesi vasıtası ile gerçek rastgele sayı üretimi akış şeması
Yukarıda konu edilen tüm yöntemler proje gelişme raporunda detaylı bir şekilde anlatılmış, üretilen rastgele sayılar ve yapılan testlerle ilgili resimler http://srg.cs.deu.edu.tr/wisp.html adresinde detaylı bir şekilde yer almaktadır.