Asal çarpanlara ayırma
En son gelişmeler > Zorluk ve karmaşıklık

Eğer b bitlik büyük bir sayı yaklaşık aynı uzunlukta iki asal sayının çarpımı ise, yayınlanmış hiçbir algoritma bu sayıyı polinomsal zamanda (yani belli bir k değeri için Yani O(bk) zamanda) çarpanlarına ayıramamaktadır. Tüm pozitif ε değerleri için O((1+ε)b)'den daha hızlı yani üstel-altı zaman algoritmalarsa yayınlamış bulunmaktadır. GNFS algoritmasıyla "b"-bitlik bir yarıasalın çarpanlarına ayrılması için yayınlanmış olan en iyi asimptotik çalışma zamanı,
Sıradan bir bilgisayar için, GNFS 100 basamaktan daha büyük sayılarda çalışmak üzere yayınlanmış en iyi algoritmadır. Fakat bir kuantum bilgisayarı için, Peter Shor 1994 yılında polinomsal zamanda çözüme ulaşan bir algoritma keşfetmiştir. Eğer gelecekte büyük bir kuantum bilgisayarı inşa edilebilirse bu keşif kriptografi açısından önemli sonuçlar doğuracaktır. Shor algoritması "b"-bitlik bir girdi için sadece O(b3) zaman ve O(b) yer gerektirmektedir. 2001 yılında, 7-kübitlik bir kuantum bilgisayar ilk kez Shor'un algoritmasını çalıştırmış ve 15'i çarpanlarına ayırmıştır.
Çarpanlara ayırma probleminin hangi karmaşıklık sınıfına dahil olduğu incelenirken problemin değişik versiyonlarını ayırt etmek gerekir.
Fonksiyon problemi versiyonu: Bir N tam sayısı verildiğinde 1 < d < N olacak şekilde N'yi bölen bir d sayısı bulunuz (veya N'nin asal olduğu sonucuna varınız). Bu problem FNP'de olup FP'de olup olmadığıysa bilinmemektedir. Pratikte uygulamalarda çözülen versiyon, bu versiyondur.
Karar problemi versiyonu: 1 ≤ M ≤ N olacak şekilde M ve N tam sayıları verildiğinde, 1 < d < M olacak şekilde öyle bir d sayısı var mıdır ki N'yi bölüyor olsun? Bu versiyon kullanışlıdır çünkü çokça çalışılmış tüm karmaşıklık sınıfları fonksiyon değil karar problemleri üzerinden tanımlanmıştır. Bu, problemin optimizasyon problemleri için sıkça kullanılanlara denk gelen doğal bir karar versiyonudur, çünkü bu versiyon ikisel arama ile birleştirilerek fonksiyon versiyonu da logaritmik sayıda sorgu ile çözülebilir. Çarpanlara ayırma probleminin karar versiyonunun tam olarak hangi karmaşıklık sınıfında yer aldığı bilinmemektedir. Ne var ki hem NP hem de co-NP'de olduğu bilinmektedir. Çünkü asal çarpanlar verildiğinde hem EVET hem de HAYIR cevapları teyit edilebilir. (Çarpanların asallığı AKS asallık testi ile, çarpımlarının N olduğunu da basitçe çarparak kontrol edilebilir.) Aritmetiğin temel teoremince sadece bir çözümün kabul edilebileceği kesindir (sıralı olmaları koşuluyla). Bu da gösterir ki problem hem UP hem de co-UP sınıflarındadır. Problemin BQP'de olduğu Shor algoritması dolayısıyla bilinmektedir. P, NP-complete ve co-NP-complete karmaşıklık sınıflarının üçünde de olmadığı sanılmaktadır. Dolayısıyla NP-intermediate karmaşıklık sınıfında olmaya adaydır. NP-Complete veya co-NP-Complete olduğu gösterildiği takdirde, NP = co-NP olması gerekecektir. Oysa bu son derece beklenmedik bir netice olacağı için çarpanlara ayırma probleminin bu iki sınıfta da olmadığı düşünülmektedir. Çok sayıda insan klasik polinomsal-zaman algoritmalar bulmayı deneyip başaramadıklarından yaygın kanı P sınıfının dışında olduğu yönündedir.
Bunlara karşın ""N" bileşik sayı mıdır?" (veya buna denk olarak ""N" asal sayı mıdır?") karar problemleri "N"'nin çarpanlarını bulmaya nazaran çok daha kolay görünmektedir. Bu karar problemlerinden ilki AKS asallık testi ile N'nin basamak uzunluğu cinsinden polinomsal zamanda çözülebilmektedir. Bununla beraber, çok küçük bir hata payına razı olmak koşuluyla çok hızlı sonuç verebilen çeşitli olasılıksal algoritmalar bulunmaktadır. Asallık testinin kolay oluşu, başlangıcında büyük asal sayılar bulma gerekliliğinden dolayı RSA algoritması için büyük önem arz etmektedir.