Burp Sequencer tasodifiylik testlari
Burp Sequencer tasodifiylikni tekshirish uchun turli xil standart statistik testlardan foydalanadi. Burp Sequencer bajaradigan testlar tahlilning ikki darajasida ishlaydi: belgi darajasida (character-level) va bit darajasida (bit-level). Test natijalari jamlanadi va umumlashtiriladi.
Eslatma
Sequencer'da natijalar qanday taqdim etilishi haqida umumiy ma'lumot olish uchun Burp Sequencer natijalari bo'limiga qarang.
Testlar qanday ishlaydi
Barcha Burp Sequencer testlari tokenlar tasodifiy tarzda yaratilgan degan farazdan boshlanadi. So'ngra har bir test:
- Agar tokenlar tasodifiy yaratilgan bo'lsa, ma'lum xususiyatlarga ega bo'lishi ehtimoli yuqori bo'lgan namuna xossalarini kuzatadi. Masalan, Burp token ichidagi har bir pozitsiyada ishlatilgan belgilarning taqsimotini kuzatishi mumkin. Agar tokenlar tasodifiy bo'lsa, bu taqsimot taxminan bir tekis bo'lishi ehtimoli yuqori.
- Agar tokenlar tasodifiy yaratilgan bo'lsa, kuzatilgan xususiyatlarning yuzaga kelish ehtimolini hisoblaydi.
- Ehtimollikni bir qator ahamiyatlilik darajalari bilan taqqoslaydi. Agar ehtimollik siz tahlilingiz uchun tanlagan ahamiyatlilik darajasidan pastga tushsa, namuna tasodifiy yaratilgan degan farazni rad etishingiz mumkin.
Topilmalaringizning tasodifiyligini talqin qilishda foydalanadigan ehtimollikni o'zingiz tanlashingiz mumkin — bu ahamiyatlilik darajasi (significance level) deb ataladi. Ilmiy tajribalarda ko'pincha 1% va 5% oralig'idagi darajalar ishlatiladi. FIPS testlarida esa ko'pincha 0,002% va 0,03% oralig'idagi darajalar qo'llaniladi. Pastroq ahamiyatlilik darajasi tokenlar tasodifiy yaratilgan degan farazni rad etish uchun kuchliroq dalil talab qilinishini bildiradi. Bu esa tasodifiy bo'lmagan ma'lumotlarning tasodifiy deb qabul qilinishi ehtimolini oshiradi.
Belgi darajasidagi testlar
Belgi darajasidagi testlar tokenning xom holatidagi har bir belgi pozitsiyasi ustida ishlaydi.
Eslatma
Har bir ahamiyatlilik darajasida yoki undan yuqorida samarali entropiyaning necha bit ekanini hisoblash uchun har bir belgi pozitsiyasiga ma'lum sondagi entropiya bitlari beriladi. Bu uning belgilar to'plami hajmiga asoslanadi (masalan, to'rtta belgi uchun ikki bit, sakkizta belgi uchun uch bit).
Har bir belgi pozitsiyasida belgi darajasidagi ikki xil test bajariladi:
Character count analysis
Bu test token ichidagi har bir pozitsiyada ishlatilgan belgilarning taqsimotini tahlil qiladi. Agar namuna tasodifiy yaratilgan bo'lsa, belgilar taqsimoti taxminan bir tekis bo'lishi ehtimoli yuqori. Har bir pozitsiyada test tokenlar tasodifiy bo'lgan taqdirda kuzatilgan taqsimotning yuzaga kelish ehtimolini hisoblaydi.
Character transition analysis
Bu test namunadagi ketma-ket tokenlar o'rtasidagi o'tishlarni tahlil qiladi. Agar namuna tasodifiy yaratilgan bo'lsa, ma'lum bir pozitsiyada uchragan belgidan keyin navbatdagi tokenda o'sha pozitsiyada ishlatiladigan istalgan belgi bir xil ehtimollik bilan kelishi kerak. Har bir pozitsiyada test tokenlar tasodifiy bo'lgan taqdirda kuzatilgan o'tishlarning yuzaga kelish ehtimolini hisoblaydi.
Bit darajasidagi tahlil
Bit darajasidagi tahlildan foydalanilganda har bir token bitlar to'plamiga aylantiriladi. Bu Burp'ga har bir bit pozitsiyasida kuchli bit darajasidagi testlarni o'tkazish imkonini beradi. Bitlarning umumiy soni har bir belgi pozitsiyasidagi belgilar to'plamining hajmi bilan belgilanadi.
FIPS test natijalari
Burp Sequencer har bir bit ustida bir necha turdagi FIPS testlarini o'tkazadi. Sequencer har bir bit FIPS testidan o'tgan yoki o'tmaganini qayd etadi.
Sequencer FIPS dan o'tish mezonlarini tasodifiy namuna hajmlariga moslashtiradi. Biroq, rasmiy FIPS standartiga mos keladigan natijalarni olish uchun siz 20 000 ta tokendan iborat namunadan foydalanishingiz kerak.
FIPS monobit test
Bu test har bir bit pozitsiyasida birlar va nollarning taqsimotini tahlil qiladi. Agar namuna tasodifiy yaratilgan bo'lsa, birlar va nollar soni taxminan teng bo'lishi ehtimoli yuqori. Har bir pozitsiyada test tokenlar tasodifiy bo'lgan taqdirda kuzatilgan taqsimotning yuzaga kelish ehtimolini hisoblaydi.
FIPS poker test
Bu test to'rt bitli sonlarning taqsimotini tahlil qiladi:
- Har bir pozitsiyadagi bitlar ketma-ketligini o'zaro kesishmaydigan, ketma-ket to'rttalik guruhlarga bo'ladi.
- Har bir guruhdan to'rt bitli sonni hosil qiladi.
- 16 ta mumkin bo'lgan sonning har biri necha marta uchraganini sanaydi.
- Bu taqsimotni baholash uchun xi-kvadrat hisob-kitobini bajaradi.
Agar namuna tasodifiy yaratilgan bo'lsa, to'rt bitli sonlarning taqsimoti taxminan bir tekis bo'lishi ehtimoli yuqori. Har bir pozitsiyada test tokenlar tasodifiy bo'lgan taqdirda kuzatilgan taqsimotning yuzaga kelish ehtimolini hisoblaydi.
FIPS runs test
Bu test har bir pozitsiyadagi bitlar ketma-ketligini bir xil qiymatga ega ketma-ket bitlar seriyalariga (runs) bo'ladi. So'ngra uzunligi 1, 2, 3, 4, 5 hamda 6 va undan katta bo'lgan seriyalar sonini sanaydi. Agar namuna tasodifiy yaratilgan bo'lsa, bu uzunliklarning har biriga ega seriyalar soni namuna to'plami hajmi bilan belgilanadigan oraliq ichida bo'lishi ehtimoli yuqori. Har bir pozitsiyada test tokenlar tasodifiy bo'lgan taqdirda kuzatilgan seriyalarning yuzaga kelish ehtimolini hisoblaydi.
FIPS long runs test
Bu test har bir bit pozitsiyasida bir xil qiymatga ega bitlarning eng uzun seriyasini o'lchaydi. Agar namuna tasodifiy yaratilgan bo'lsa, eng uzun seriya namuna to'plami hajmi bilan belgilanadigan oraliq ichida bo'lishi ehtimoli yuqori. Har bir pozitsiyada test tokenlar tasodifiy bo'lgan taqdirda kuzatilgan eng uzun seriyaning yuzaga kelish ehtimolini hisoblaydi.
Eslatma
FIPS long runs testi uchun FIPS natijasi faqat bitlarning eng uzun seriyasi haddan tashqari uzun bo'lgandagina muvaffaqiyatsizlik sifatida qayd etiladi. Biroq, agar bitlarning eng uzun seriyasi juda qisqa bo'lsa, bu ham namunaning tasodifiy emasligini ko'rsatadi. Shu sababli ba'zi bitlar FIPS testidan o'tgan bo'lsa-da, FIPS ahamiyatlilik darajasidan past ehtimollikni qayd etishi mumkin.
Spectral tests
Bu test har bir pozitsiyadagi bitlar ketma-ketligini tahlil qiladi. Sequencer ketma-ket sonlarning har bir seriyasini ko'p o'lchamli fazodagi koordinatalar sifatida qabul qiladi. So'ngra bu fazoda mazkur koordinatalar bilan belgilanadigan har bir joyga nuqta qo'yadi. Agar namuna tasodifiy yaratilgan bo'lsa, bu fazodagi nuqtalarning taqsimoti taxminan bir tekis bo'lishi ehtimoli yuqori. Biroq, agar fazoda klasterlar paydo bo'lsa, ma'lumotlar tasodifiy emasligi ehtimoli katta. Har bir pozitsiyada test tokenlar tasodifiy bo'lgan taqdirda kuzatilgan taqsimotning yuzaga kelish ehtimolini hisoblaydi. Test sonlarning turli o'lchamlari (1 dan 8 bitgacha) va turli o'lchov sonlari (2 dan 6 gacha) uchun takrorlanadi.
Bu test boshqa statistik testlardan muvaffaqiyatli o'tgan ba'zi namunalarda tasodifiy emaslik alomatlarini aniqlashi mumkin.
Correlation test
Bu test tokenlar ichidagi turli bit pozitsiyalaridagi qiymatlar o'rtasida statistik jihatdan ahamiyatli bog'liqliklar bor-yo'qligini tekshiradi. Agar namuna tasodifiy yaratilgan bo'lsa, ma'lum bir bit pozitsiyasidagi qiymat bilan birga boshqa istalgan bit pozitsiyasida bir yoki nol bir xil ehtimollik bilan kelishi kerak. Har bir pozitsiyada bu test tokenlar tasodifiy bo'lgan taqdirda boshqa pozitsiyalardagi bitlar bilan kuzatilgan bog'liqliklarning yuzaga kelish ehtimolini hisoblaydi.
Tasodifiy natijalarning oldini olish uchun, ikki bit o'rtasida ma'lum darajada korrelyatsiya kuzatilganda, test barcha boshqa bit darajasidagi testlarga asoslanib, ahamiyatlilik darajasi pastroq bo'lgan bitning ahamiyatlilik darajasini moslashtiradi.
Eslatma
Bu test sizga token butunligicha qanchalik tasodifiy ekanini baholash imkonini beradi. Bu muhim, chunki bit darajasidagi testlarning har biri faqat alohida bit pozitsiyalari ustida ishlaydi. Har bir bit pozitsiyasidagi tasodifiylik alohida hisoblanadi. Bu shuni anglatadiki, har bir pozitsiyada bir xil bit qiymatiga ega tokenlar namunasi har bir pozitsiyada turli qiymatlarga ega qisqaroq tokenlar namunasiga qaraganda ko'proq entropiyaga ega bo'lib ko'rinishi mumkin.
Compression test
Bu test har bir bit pozitsiyasidagi entropiya miqdorining oddiy va tushunarli ko'rsatkichini beradi. Test har bir pozitsiyadagi bitlar ketma-ketligini standart ZLIB siqish algoritmi yordamida siqishga harakat qiladi. Natijalar bitlar ketma-ketligi siqilganda uning hajmi qanday nisbatda kamayganini ko'rsatadi. Siqilish darajasi qanchalik yuqori bo'lsa, ma'lumotlarning tasodifiy yaratilgan bo'lish ehtimoli shunchalik past.