Sichere Primzahl prüfen
Prüft, ob eine Primzahl p sicher ist, also ob auch (p − 1)/2 prim ist: 23 ist sicher, weil ihre Hälfte 11 prim ist, was 11 zugleich zur Sophie-Germain-Primzahl macht. Die Hälfte wird immer angezeigt, damit Sie nachrechnen können. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Leistung (W)
- 23
- Q
- 11
Der Rechner nimmt eine Primzahl p entgegen und ermittelt, ob der zugehörige Wert q = (p − 1) / 2 ebenfalls prim ist. Sind beide Zahlen Primzahlen, ist p eine sichere Primzahl und q die zugehörige Sophie-Germain-Primzahl. Zusammengesetzte Eingaben werden abgelehnt und nicht als falsch eingestuft. So bleibt die Antwort definitionsgemäß und Eingabefehler werden in automatisierten Abläufen sichtbar.
Was eine sichere Primzahl bedeutet
Eine sichere Primzahl ist eine Primzahl p, bei der auch der zugehörige Halbwert q = (p − 1) / 2 prim ist. Gleichbedeutend lässt sich p als 2q + 1 schreiben, wobei q prim ist; dieses kleinere q heißt Sophie-Germain-Primzahl. Beispielsweise ist 23 sicher, weil 23 prim und der Halbkandidat 11 ebenfalls prim ist.
Dagegen ist 13 zwar eine Primzahl, aber nicht sicher, denn (13 − 1) / 2 ergibt die zusammengesetzte Zahl 6. Der Rechner hält diese beiden Prüfungen gedanklich getrennt. Zuerst kontrolliert er die von Ihnen gelieferte Voraussetzung: p selbst muss prim sein.
Erst danach berechnet und prüft er q. Die besondere Primzahl 2 wird akzeptiert, ist jedoch nicht sicher: Ihr Kandidat ist 0.5, also keine ganze Zahl und folglich keine Primzahl. Damit folgt das Verhalten der Definition, ohne gültige Eingaben stillschweigend auf ungerade Primzahlen zu beschränken.
So arbeitet die deterministische Prüfung
Die Funktion stellt sicher, dass p eine ganze Zahl zwischen 2 und der größten sicher darstellbaren JavaScript-Ganzzahl ist. Danach führt sie einen exakten Primzahltest mit BigInt-Arithmetik, Teilbarkeitsprüfungen für kleine Primzahlen, modularer Exponentiation und einer festen Miller–Rabin-Zeugenmenge durch, die im gesamten unterstützten Bereich deterministisch ist. Feste Zeugen verhindern, dass wiederholte Aufrufe unterschiedliche Wege nehmen oder lediglich eine Wahrscheinlichkeitsaussage liefern.
Bei einer gültigen ungeraden Primzahl liefert das Abziehen von eins eine gerade Zahl, sodass die Division durch zwei exakt ist. Auf q wird derselbe Primzahltest angewandt und das Boolesche Ergebnis ausgegeben. Sämtliche Berechnungen erfolgen lokal ohne Netzwerk, externe Tabellen, Zufall oder Uhrzeit.
Die Zahlen bleiben exakt, weil p und q auf sicher darstellbare JavaScript-Werte begrenzt sind.
Das Ergebnis beim Lernen und Entwickeln nutzen
Verwenden Sie den Rechner, wenn tatsächlich zwischen einer gewöhnlichen und einer sicheren Primzahl unterschieden werden soll. Im Unterricht zur Zahlentheorie verdeutlicht er knapp die Paarbeziehung und zeigt q an, damit Lernende die Rechnung selbst nachvollziehen können. Beim Erstellen von Testdaten kann er einen anderswo ausgewählten Kandidaten validieren, bevor dieser in eine Protokollübung oder einen Benchmark gelangt.
Die Funktion eignet sich für Validierung und Lehre, erzeugt aber keine Primzahlen, faktorisiert keine zusammengesetzten Zahlen, erstellt keine portablen Zertifikate und bestätigt keine kryptografische Eignung. Große Kryptografieparameter überschreiten häufig die sichere Ganzzahlgrenze und benötigen spezialisierte Bibliotheken sowie eine Protokollprüfung.
Anwendungsfälle
Aufgaben zur Zahlentheorie prüfen
Prüfen Sie eine vorgeschlagene sichere Primzahl und zeigen Sie den zugehörigen Sophie-Germain-Kandidaten für eine vollständige Kontrolle der Definition an.
Erzeugte Testdaten validieren
Bestätigen Sie, dass eine von einem anderen deterministischen Generator gewählte Primzahl wirklich sicher ist, bevor sie in Protokoll- oder Algorithmustests gespeichert wird.
Primzahlen und sichere Primzahlen trennen
Ordnen Sie bereits geprüfte Primzahlen nach der Primalität ihres Halbkandidaten ein, ohne zusammengesetzte Eingaben mit gültigen negativen Ergebnissen zu verwechseln.
Häufige Fragen
Was kostet die Prüfung einer sicheren Primzahl?
Dieselbe deterministische Prüfung kann in der Browser-Oberfläche kostenlos ausgeführt werden.
Warum ist 23 eine sichere Primzahl?
23 ist prim und (23 − 1) / 2 ergibt 11, ebenfalls eine Primzahl.
Kann ich damit kryptografische sichere Primzahlen erzeugen?
Nein. Das Werkzeug prüft nur einen Wert im sicheren Ganzzahlbereich; es erzeugt keine Parameter und zertifiziert sie nicht für kryptografische Protokolle.
Warum ist 13 keine sichere Primzahl?
13 ist prim, aber (13 − 1)/2 ergibt 6, und 6 ist zusammengesetzt. Eine sichere Primzahl verlangt, dass beide Zahlen prim sind, daher lautet die Antwort Nein, obwohl die eingegebene Zahl prim ist.
Was passiert, wenn ich keine Primzahl eingebe?
Die Eingabe wird mit einer Meldung abgelehnt statt mit einem bloßen Nein, denn eine zusammengesetzte Zahl kann gar keine sichere Primzahl sein. Korrigieren Sie die Zahl, statt das als negatives Ergebnis zu lesen.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/numth/safe-prime \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"p":23}'const res = await fetch("https://api.kit.forhosting.com/numth/safe-prime", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"p": 23
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/safe-prime",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"p": 23
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/safe-prime", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"p":23}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"p":23}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/safe-prime", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"p": 23
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.safe_prime",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Das Ergebnis enthält p, das berechnete q und den eindeutigen Booleschen Wert safe_prime.
Was eine sichere Primzahl bedeutet
Die Antwort gibt p und q aus und setzt safe_prime auf wahr oder falsch; Sie müssen den Zwischenwert daher nicht an anderer Stelle rekonstruieren.
So arbeitet die deterministische Prüfung
Dieselbe Eingabe erzeugt stets dasselbe JSON-Ergebnis. Ist p zusammengesetzt, endet die Verarbeitung mit invalid_input und nennt damit die verletzte Voraussetzung; safe_prime wird nicht als falsch zurückgegeben, denn das würde eine zusammengesetzte Zahl fälschlich wie eine nicht sichere Primzahl erscheinen lassen.
Das Ergebnis beim Lernen und Entwickeln nutzen
Behandeln Sie invalid_input im Anwendungscode als Aufforderung zur Korrektur der Eingabe, nicht als negatives Ergebnis und nicht als vorübergehenden Fehler für einen erneuten Versuch. Eine erfolgreiche Antwort mit safe_prime gleich falsch bedeutet, dass p den Primzahltest bestanden hat, q jedoch nicht; wahr bedeutet, dass beide bestanden haben. Dieselbe Implementierung läuft kostenlos im Browser und automatisiert per API für $0.002 je Anfrage, jeweils mit identischen Ein- und Ausgaberegeln.
Technische Fragen
Was geschieht, wenn p zusammengesetzt ist?
Die Anfrage liefert invalid_input, weil sichere Primzahlen ein primes p voraussetzen. Für zusammengesetzte Eingaben wird safe_prime nicht als falsch ausgegeben.
Gilt 2 als sichere Primzahl?
Nein. Obwohl 2 prim ist, ergibt (2 − 1) / 2 den Wert 0.5; dieser ist keine ganze Primzahl, daher ist safe_prime falsch.