سؤال

وأريد أن أجد (وليس توليد) سلاسل 2 نص مثل ذلك، بعد إزالة كافة غير حروف وucasing، سلسلة واحدة يمكن أن يترجم إلى أخرى عن طريق استبدال بسيط.

والدافع لهذا يأتي من مشروع عرفت من أن يختبر طرق لمهاجمة كيبهيرس عبر التوزيعات الاحتمالية. أود أن توصل إلى نص عادي متماسك كبير أن مشفرة مرة واحدة مع سايفر استبدال بسيطة، ويمكن فك شفرة إلى شيء آخر هو أيضا متماسكة.

وهذا ينتهي إلى 2 أجزاء، والعثور على أطول هذه السلاسل في الجسم، والحصول على هذا الجسم.


والجزء الأول يبدو لي أن يكون انيس إلى نوع من الهجوم من B-شجرة مرتبطا خارج السلسلة بعد إجراء تبديل أن يجعل تسلسل ظهوره الأول متتابعة.

HELLOWORLDTHISISIT
1233454637819a9b98

والتحسين قليلا على أساس معرفة القيمة القصوى وطول السلسلة على أساس كل عمق شجرة والباقي هو مجرد الترميز.


والجزء الآخر سيكون قليلا جدا أكثر المعنية؛ كيفية إنشاء الإحضار كبيرة من النص للبحث؟ سيكون نوعا من العنكبوت الانترنت يبدو أن النهج المثالي لأنه لديك الوصول إلى أكبر قدر من النص ولكن كيف لتجريدها لمجرد النص؟

والسؤال هو؛ أي أفكار بشأن كيفية القيام بذلك بشكل أفضل؟


وتحرير: والشفرات التي كانت تستخدم هو بجنون الأساسي الشفرات 26 حرف استبدال

وp.s. هذا هو أكثر تجربة فكرية ثم مشروع حقيقي محتمل بالنسبة لي.

هل كانت مفيدة؟

المحلول

وهناك 26! تعمية استبدال مختلفة. التي يعمل بها الى ما يزيد قليلا على 88 بت من خيار:

>>> math.log(factorial(26), 2)
88.381953327016262

ووالكون من النص الانكليزي هو شيء من هذا القبيل 2 بت لكل حرف على الأقل. لذلك يبدو لي لا يمكن أن نتوقع بشكل معقول لإيجاد ممرات لأكثر من 45-50 الأحرف التي تعادل تحت الاستبدال عن طريق الخطأ.

لللجسم كبير، وهناك مشروع غوتنبرغ ويكيبيديا، لتبدأ. يمكنك تحميل تفريغ جميع الملفات XML ويكيبيديا الإنجليزية من موقعه على الانترنت.

نصائح أخرى

وأعتقد أن كنت طالبا شيئا كثيرا لتوليد استبدال الذي هو أيضا "متماسكة". وهذا هو مشكلة AI لخوارزمية التشفير لمعرفة ما هو نص متماسك. أيضا، النص يعد الخاص بك هو أكثر تعقيدا وسيكون لخلق نتيجة "متماسكة" ... تقترب بسرعة إلى نقطة حيث كنت في حاجة الى "مفتاح" طالما أن النص الذي تشفير. وبالتالي هزيمة الغرض من تشفير على الإطلاق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top