Select any text and click on the icon to listen!

लेखन :  एस. श्रीनिवासन
अनुवाद: मनीषा शर्मा                                                                                                   [Hindi PDF, 307 kB]

व्हॉट एन आइडिया सरजी!
हम जब बच्चे थे तब अपने मित्रों को लिखित गुप्त सन्देश भेजा करते थे, तब भी जब शिक्षक कक्षा में पढ़ा रहे होते थे। और राजा, दरबारी और जासूस भी यही किया करते थे। इस प्रकार के सभी प्रयासों को कूटलेखन (क्रिप्टोग्राफी) कहा जाता है - गुप्त सन्देश में लिखने का विज्ञान। ऐसी सांकेतिक कूटलिपि बनाने का मतलब आम तौर पर वर्णमाला के स्थान पर अंकों को रखने से होता था। इस प्रकार सन्देश ढेर सारे अंकों के रूप में भेजे जाते थे।

एक गुप्त संकेत लिखने के कारगर तत्व क्या हैं? यदि सन्ता कूटलिपि में लिखा कोई गुप्त सन्देश बन्ता को भेज रहा हो तो बन्ता को यह सुनिश्चित करना होगा कि सन्देश वास्तव में सन्ता के द्वारा ही भेजा गया है। साथ ही सबसे ज़रूरी है कि कोई और उस गुप्त संकेत को पढ़कर समझ न पाए, खासतौर से वह जासूस, खुफिया! और सन्ता और बन्ता के बीच उस कूटलिपि की कुंजी के आदान-प्रदान करने का एक तरीका पहले से ही तय होना चाहिए।

अंकों के रूप में भेजे गए किसी और के सन्देशों को खोल लेना, अर्थात उनकी कूटलिपि को पढ़ लेना आम तौर पर आसान होता है - जब हम कहते हैं कि आसान होता है, तो हमारा मतलब उन लोगों के लिए आसान जो ऐसी चीज़ों पर समय बर्बाद करने के लिए पर्याप्त रूप से सनकी हैं!

आइए हम एक बॉक्स के उदाहरण के ज़रिए रहस्यों का आदान-प्रदान करने के पारम्परिक तरीके को देखें। सन्ता और बन्ता दोनों के पास किसी बॉक्स की एक-एक चाबी है। सन्ता बॉक्स में अपना गुप्त सन्देश रखता है, उसमें ताला लगाता है और उसे बन्ता के पास भेज देता है। बन्ता बॉक्स को खोलने के लिए अपनी वैसी ही चाबी का इस्तेमाल करता है और सन्ता के सन्देश को पढ़ता है। यह इस पर निर्भर करता है कि सन्ता और बन्ता ने अतीत में बॉक्स की साझा चाबियाँ बनाई हों। इसे सूचना का समरूप कूटांकन (सिमिट्रिकल एनक्रिप्शन) कहा जाता है। बन्ता इसी तरीके से सन्ता को जवाब भेज सकता है। यह आपस में पहले से तय ऐसे संकेतों के रूप में सन्देश भेजने जैसा ही है, जिनकी चाबियाँ यानी सन्देश को कूटलिपि में बाँधने और उसे खोलने के आपसी रूप से तय तरीके - दोनों के पास हैं।

ऊपर दिए गए वर्णन से ऐसा मालूम होता है कि केवल वे लोग ही इस तरीके का इस्तेमाल कर सकते हैं जिनके पास पहले से किसी चाबी की एक-सी नकलें होती हैं। पर इस मजबूरी से बचने का एक रास्ता है। सन्ता अपना सन्देश बॉक्स में बन्द कर अपना ताला लगा कर बन्ता के पास भेजता है। बन्ता बॉक्स को प्राप्त करता है, अपना ताला उस पर लगाता है और उसे सन्ता के पास वापस भेज देता है। सन्ता अपने ताले को, जो उसने सबसे पहले लगाया था, खोल लेता है और बॉक्स फिर से बन्ता को भेज देता है। अब बन्ता बॉक्स को उस ताले की चाबी से खोलता है जो उसने खुद ही लगाया था। इस तरीके में सन्ता और बन्ता के बीच चाबियों का कोई आदान-प्रदान नहीं हुआ।

हालाँकि, कूटलिपि में लिखे सन्देश की स्थिति में यह जटिल हो जाता है। सन्ता अपने सन्देश को कूटलिपि में अंकित करता है, और बन्ता को भेज देता है। बन्ता उस पर आगे और कूटांकन करता है और सन्ता के पास वापस भेज देता है। सन्ता अपने कूटांकन को हटा लेता है और फिर से बन्ता के पास भेज देता है। और माना जा सकता है कि तब सन्ता के सन्देश को पढ़ने के लिए बन्ता अपना स्वयं का कूटांकन हटा लेता है। परन्तु क्या सन्ता वाकई में अपना स्वयं का कोड हटा सकता है?

मान लीजिए कि किसी सन्देश का कूटांकन करना वैसा है जैसा कि किसी गुड़िया के पैरों में मोज़े पहनाना। सन्ता के द्वारा पहनाए गए मोज़ों के ऊपर बन्ता एक जोड़ी जूते पहना देता है, और सन्ता के पास उसे वापस भेज देता है। परन्तु क्या सन्ता बन्ता द्वारा पहनाए गए जूतों को छेड़े बिना अपने द्वारा गुड़िया को पहनाए गए मोज़े निकाल सकता है? क्या आप अपनी शर्ट को हटाए बिना अपनी बनियान उतार सकते हैं? अमूमन आप ऐसा नहीं कर सकते और यह भी कि यदि वे सन्देश खुफिया के हाथों में पड़ जाते हैं तो खुफिया एक-दूसरे को भेजे गए गुप्त सन्देशों का मिलान कर सकता है और उपयुक्त जोड़ व घटाव के द्वारा सन्ता और बन्ता की गुप्त चाबियों को खोज कर सन्देश पढ़ सकता है।

सार्वजनिक कुंजी कूटलेखन
गुप्त सन्देशों को भेजने के ऊपर दिए गए सामान्य तरीकों से बेहतर एक तरीका और भी है। यह है एक सार्वजनिक कुंजी कूटलेखन का विचार फ़् और व्हॉट एन आइडिया! अब हम बिलकुल खुले तौर पर गुप्त सन्देशों को भेज सकते हैं!

गुप्त सन्देशों को भेजने के सार्वजनिक कुंजी तंत्र के ताले में तीन चाबियों के लिए तीन छेद होते हैं। चलिए हम इन्हें N E और D नाम दें। इस तंत्र में यदि ताले को N और क चाबियों के द्वारा बन्द किया जाता है, तो उसे सिर्फ N और D चाबियों द्वारा ही खोला जा सकता है। इस मामले में N और E बन्ता की सार्वजनिक चाबियाँ हैं जो सन्ता समेत हर किसी को उपलब्ध हैं जो बन्ता को गुप्त सन्देश भेजना चाहता है। पर इस सन्देश को सिर्फ बन्ता ही अपनी निजी चाबी D  द्वारा खोल सकता है, अर्थात उसका कूटानुवाद कर सकता है।

और यह एक क्रान्तिकारी बात है: बन्ता की सार्वजनिक कुंजियाँ और सन्ता से प्राप्त कूटांकित सन्देश सभी लोगों, यानी खुफिया समेत किसी भी अन्य जिज्ञासु व्यक्ति के लिए उपलब्ध हैं।

कूटलेखन की सार्वजनिक कुंजी की तरकीब को, उसे खोजने वाले एम. आई. टी. गणितज्ञों - रोनाल्ड राइवेस्ट, अदि शमीर और लियोनॉर्ड एडलमैन - के नामों के शुरुआती अक्षरों के आधार पर, आर.एस.ए. विधि भी कहते हैं। हालाँकि आर.एस.ए. का मूल विचार कूटलेखन की दुनिया की एक अन्य मशहूर हस्ती विलियम डफी का था, लेकिन वे इस पर आगे अधिक काम नहीं कर सके। ब्रिटेन के गणितज्ञों ने एम.आई.टी. के गणितज्ञों से पहले ही आर.एस.ए. कूटलेखन को खोज लिया था लेकिन वे इसे सार्वजनिक नहीं कर पाए क्योंकि उनका काम सिर्फ ब्रिटिश सरकार के लिए था और इसलिए गोपनीय था!

यह कैसे काम करता है?
सबसे पहले बन्ता को बड़ी अभाज्य संख्याओं का एक युगल तय करना होता है, जैसे कि p और q । ये बन्ता की गुप्त संख्याएँ हैं। N,Pके लिए, सार्वजनिक रूप से घोषित कर देता है। लेकिन उसके pऔर q गुप्त रहते हैं, और वे किसी को भी नहीं बताए जाते।
हम छोटी संख्याओं वाला एक उदहारण लेते हैं। चलिए मान लें कि बन्ता का N = 85 है, जो 5 और 17 का गुणनफल है, यहाँ गौर करें कि ये दोनों अविभाज्य संख्याएँ हैं। इस मामले में उसका क मान लेते हैं कि 5 है (बाद में समझेंगे कि यह 5 संख्या कहां से आई)।

बन्ता को कोई सन्देश भेजने के लिए, सन्ता पहले उस सन्देश को संख्याओं में परिवर्तित करेगा। मान लीजिए सन्ता ‘बचाओ’ लिखना चाह रहा है, और कूट संख्या में मान लीजिए यह 10 बनता है। इस विधि में सन्ता को 10 को E=5 की घात तक बढ़ाना होगा, अर्थात वह 10x10x10 x10 x10 हो जाएगा। सन्ता को वास्तव में गुणनफल नहीं चाहिए, बल्कि सिर्फ उस गुणनफल को N से, जो कि 85 है, विभाजित करने पर बचा हुआ शेषफल चाहिए। गुणनफल 1,00,000 (एक लाख) है जिसे 85 से भाग देने पर शेषफल (जिसे भाग देने की लम्बी प्रक्रिया के बिना पता किया जा सकता है) 40 बचता है। इस तरह 40 वह कूट संख्या है जो सन्ता ई-मेल या फिर फोन से बन्ता को बता देता है, बिना इस बात की परवाह किए कि खुफिया या फिर कोई और उस ई-मेल को पढ़ लेगा, या फोन को बीच में ही सुन लेगा। सन्ता चाहे तो इसे अखबार में छपवा भी सकता है।

अब बन्ता यह सन्देश मिलने के बाद जिसमें 40 लिखा है अपना गुप्त नम्बर, जो कि इस मामले में D= 13 है, का इस्तेमाल करता है, और 40 की गणना 13 की घात में करता है (यह भी बाद में समझेंगे कि यह संख्या 13 कहां से आई)। यानी 40 x40 x40x40 x...13 बार। एक बार फिर बन्ता को गुणनफल की गणना करने की आवश्यकता नहीं है, उसे सिर्फ N = 85 से विभाजित करने के बाद शेषफल चाहिए। यह शेषफल 10 है। यह सीधी-सादी भाषा को संख्यात्मक रूप से बताने वाला वही अंक है, जिसका सन्ता ने कूटांकन किया है और जिसका अर्थ है ‘बचाओ’। है न अद्भुत!!

हम N, E और D तक कैसे पहुँचे?
जैसा कि ऊपर समझाया गया है, N किन्हीं बड़े अविभाज्य अंकों p और q का गुणनफल है, अर्थात N  = p x q 
परन्तु प्रक्रिया को समझने के लिए हम यहाँ सरल छोटे अविभाज्य अंक लेते हैं। हमारा p = 17 और q = 5 है और N =  p x q = 85 है। p और q में से 1-1 घटा कर संख्याएँ निकालें और उनका गुणनफल करें, फिर उसमें 1 जोड़ें। अर्थात 16 गुणित 4 करें, फिर उसमें 1 जोड़ने पर 65 हो जाता है। अब इस 65 को दो गुणनखण्डों में बाँटें -- यही हमारे E और D हैं। इस मामले में 65 = 5 x 13 है। सिर्फ यह सावधानी रखें कि गुणक क का 64, जो कि (P-1) x (q-1) है, के गुणकों में कोई साझा गुणक नहीं हो। इस तरह हमारा E= 5 और D = 13 है।।

अभाज्य संख्याएँ

यहाँ अभाज्य संख्याओं की कुछ विशिष्टताओं का वर्णन किया है जिनकी हमें इस लेख में आवश्यकता होगी।
सबसे पहले उन चिन्हों की परिभाषाएँ जिनका हम इस्तेमाल कर रहे हैं: 54 का मतलब है - 5 x 5  x 5 x 5। इसी प्रकार 73 का मतलब है 7 x 7 x 7; और 21100 का मतलब है 21 x  21 x 21 x…100 बार। जब आप इसे पूरी तरह लिखेंगे तो 21, सौ बार आएगा।

अभाज्य (Prime) संख्या क्या होती है? अभाज्य संख्या एक से बड़ी वह संख्या होती है जिसे एक या खुद उसी संख्या के अलावा किसी और धनात्मक संख्या से विभाजित नहीं किया जा सकता। इस तरह 13 एक अभाज्य संख्या है क्योंकि इसे सिर्फ 1 या 13 से ही विभाजित किया जा सकता है। लेकिन 20 अभाज्य संख्या नहीं है, क्योंकि यह 5 x 4 भी है। एक ऐसी संख्या जो अभाज्य नहीं है उसे संयुक्त (composite) संख्या कहा जाता है। हम 2 को अभाज्य मानते हैं, और 1 को न तो अभाज्य और न ही संयुक्त संख्या।
कितनी अभाज्य संख्याएँ हैं? इनकी संख्या अनगिनत है। यूक्लिड ने बहुत पहले इसे सिद्ध किया था।

अभाज्य गुणनखण्ड (Prime Factorisation): एक से बड़े प्रत्येक पूर्णांक को सिर्फ अभाज्य संख्याओं के उत्पाद के रूप में बाँटा जा सकता है। उदाहरण के लिए: 20 = 2x2x5, इसे 22 x 51 भी लिखा जा सकता है। और 72 = 2 x 2 x 2 x 3 x 3 जिसे 23 x32 भी लिखा जा सकता है।

सहअभाज्य (Coprimes): कोई भी दो धनात्मक पूर्णांक सहअभाज्य होते हैं (या सापेक्षिक अभाज्य होते हैं) अगर उनमें 1 के अलावा कोई और साझा गुणनखण्ड न हो। अर्थात उनका जी.सी.एम. 1 होता है। इस तरह 8 और 15 सहअभाज्य हैं हालाँकि अपने आप में वे अभाज्य नहीं हैं।

किसी संख्या में कितने सहअभाज्य हो सकते हैं? आइए एक अभाज्य संख्या जैसे 7 की बात करें। 7 से छोटे सभी धनात्मक पूर्णांक 7 के सहअभाज्य हैं। इस तरह 7 के 6 सहअभाज्य हैं। सामान्यत: किसी अभाज्य संख्या p के (p-1) सहअभाज्य होते हैं। उदाहरण के लिए अभाज्य 19 के 18 सहअभाज्य हैं; और अभाज्य संख्या 103 के 102 सहअभाज्य हैं।

जैसा कि हमने ज़िक्र किया 1 से बड़े किसी भी पूर्णांक को अभाज्यों के उत्पाद के रूप में लिखा जा सकता है। जैसे 77 = 7 x 11 ही लीजिए, यहाँ 7 और 11 दोनों अभाज्य हैं। तब 77 में (7-1) x (11-1) सहअभाज्य होंगे यानी 77 में 60 सहअभाज्य हैं। इसे करके देखिए।
यानी कि यदि कोई भी ऐसी संख्या N  हो, जो दो विभिन्न अभाज्यों, मान लें कि p और q का उत्पाद हो, तो उसमें (p-1) x (q-1) सहअभाज्य होंगे। उदाहरण के लिए, 94 = 2 x 47, इसलिए 94 में 1 x 46 यानी 46 सहअभाज्य हैं। हम इस संख्या को एक विशिष्ट ग्रीक संकेत Φ से पुकारेंगे; इसका उच्चारण है फाई (जैसे अँग्रेज़ी में हाई होता है)। इस प्रकार 94 के लिए Φ, 46 के बराबर होगा। जबकि 77 के लिये क़, 60 होगा।

अन्य उदाहरण
आपको यह विश्वास दिलाने के लिए कि हम चतुराई दिखाकर आपको मूर्ख बनाने की कोशिश नहीं कर रहे हैं, आइए एक और उदाहरण लें।
मान लीजिए N = p x q = 11 x 3 = 33 है। ध्यान दें कि 3 और 11 दोनों ही अभाज्य संख्याएँ हैं। अब हमारा गुणनफल (p-1) x (q-1) होगा 10 x 2 = 20, इसमें 1 जोड़ दें। हमें 21 मिलता है जो 7 x 3 का गुणफल है। यानी मेरा E  है 7 और D है 3। मैं अपने N  और E (यानी कि 33 और 7) सारी दुनिया को बता देता हूँ जैसे मैं अपना टेलीफोन नम्बर सबको बताता हूँ। लेकिन मैं D को गुप्त रखता हूँ और इसे किसी को भी नहीं बताता। अब मान लीजिए आप मुझे गुप्त रूप से कोई सन्देश भेजना चाहते हैं। चलिए कहें कि आप मुझे जो सन्देश भेजना चाहते हैं वह संख्या में परिवर्तित कर लिया गया है और यह अंक है 5। आप 5 पर मेरे E की घात चढ़ा देते हैं तो यह बन जाता है 57 यानी 5 x5 x 5 x 5 x 5 x 5 x 5 और इसमें अब आप N से भाग देते हैं जो कि आपके और सबके पास पहले से ही उपलब्ध है -57 = 78125 को 33 से भाग देने पर शेषफल 14 बचता है।

आप मुझे 14 कूट सन्देश के रूप में भेजते हैं। आप चाहें तो इसे सार्वजनिक रूप से भी भेज सकते हैं। जब मुझे 14 संख्या मिलती है तो मैं इस पर अपनी गुप्त संख्या 3 की घात लगा कर गणना करता हूँ, और मुझे 2744 प्राप्त होता है। इसमें 33 से भाग देने के बाद मुझे शेषफल 5 मिलता है।
यही 5 वह मूल सन्देश था जो आप मुझे भेजना चाहते थे। मुझे आपका सन्देश मिल गया! फिर से अद्भुत!!
ऊपर दिए गए दोनों उदहारणों में, शेषफल पाने के लिए आपको ‘वास्तव’ में पूरा लम्बा भाग देने की आवश्यकता नहीं है। बॉक्स देखें ‘लम्बे प्रचलित तरीके से भाग दिए बगैर शेषफल पाना।’

यह तरकीब क्यों काम करती है?
यह इसलिए काम करती है क्योंकि दो बहुत बड़ी संख्याओं का आपस में गुणा तो हर कोई कर सकता है लेकिन उस गुणा से प्राप्त संख्या के गुणनखण्ड करना इतना आसान नहीं है। यहाँ तक कि दो 200 अंकों वाली संख्याओं के गुणनफल के गुणनखण्ड निकालने में आज के सबसे बेहतरीन कंप्यूटर को उससे भी अधिक समय लग जाएगा जितनी हमारे ब्रह्माण्ड की उम्र है। इसलिए वास्तविक जीवन में होने वाले सार्वजनिक कुंजी कूटलेखन में केवल बहुत बड़ी संख्याओं का ही इस्तेमाल होता है। हकीकत तो यह है कि किसी को भी बड़ी संख्याओं का गुणनखण्ड करने की कोई आदर्श त्वरित प्रक्रिया के बारे में जानकारी नहीं है। अगर ऐसी कोई प्रक्रिया ढूँढ़ ली जाती है तो सार्वजनिक कुंजी कूटलेखन ध्वस्त हो जाएगा।

लम्बे प्रचलित तरीके से भाग दिए बगैर शेषफल प्राप्त करना

हम ऊपर यह कहते रहे कि 10 x 10 x 10 x 10 x 10 को 85 से भाग देने के बाद प्राप्त शेषफल हासिल करने के लिए सन्ता को वास्तव में गुणनफल की आवश्यकता नहीं है।
यह है इसकी तरकीब! इस तरीके में हम केवल शेषफलों का उपयोग करेंगे। यह तरीका बताने के लिए हम छोटी संख्याओं से शुरुआत करेंगे। सबसे पहले 10 में 7 से भाग देने को लेते हैं। इसमें शेषफल 3 बचता है।
कृपया ध्यान दीजिए कि आगे हमने संकेत ‘≡’ का इस्तेमाल ‘के बराबर है’ जैसे अर्थ में न करके इस अर्थ में किया है कि हमारे लिए दो अंक ‘समरूप’ हैं, अगर उनमें एक ही भाजक से भाग देने पर उनका शेषफल समान रहता है।
अब 100 = 10 x 10 को 7 से भाग देने पर शेषफल क्या रहता है? 7 x 14 = 98 है, और इस तरह 100-98 = 2 शेषफल है। लेकिन मान लीजिए कि मैं सिर्फ 10 को 7 से भाग देने पर मिले शेषफल पर ही काम करूँ तो इसमें शेषफल 3 होता है। आइए देखें कैसे:
100 = 10 x 10≡ 3 x 3 (10 को 7 से भाग देने पर शेषफल है 3)
=9≡2 (9 को 7 से भाग देने पर शेषफल है 2)।
इसी प्रकार 106 (दस लाख) में 7 से भाग देने को इसी तरीके से करने पर शेषफल होगा:
≡ 3 x 3 x 3 x 3 x 3 x 3 = 9 x 9 x 9 ≡ 2 x 2x2 =6 है न अद्भुत!
आप प्रभावित नहीं हुए? आइए हम 596 लें और इसे 57 से विभाजित करें।
इसी पद्धति को अपनाते हुए,
                                        596/57≡26/57=64/57≡शेषफल


इसके पीछे का गणित है ऑयलर का प्रमेय (आप अगर अपने दिमाग को थोड़ी कसरत करवाना चाहते हैं तो बॉक्स देखें) जो कि फर्मेट के प्रमेय का सामान्यीकरण है। ये दोनों ही प्रमेय आधुनिक बीजगणित या अंक सिद्धान्त की किसी भी किताब के शुरुआती कुछ पन्नों में ही निपटा दिए जाते हैं।

सारांश
सन्ता सबसे पहले सन्देश को वर्णमाला के अक्षरों से संख्या में बदलता है। इस संख्या का कूटांकन करने के लिए सन्ता इस संख्या को घात E तक बढ़ाता है, और उससे प्राप्त संख्या में फिर एक दूसरी संख्या N से भाग देने के बाद शेषफल R हासिल करता है। (E तथा N, इन दोनों संख्यायों को बन्ता सार्वजनिक रूप से पहले ही घोषित कर चुका होता है।) सिर्फ यही शेषफल R बन्ता को मिलता है। इसे खोलने के लिए बन्ता शेषफल को घात D, जो सिर्फ उसे पता है, तक बढ़ाता है, और फिर N से भाग देने के बाद शेषफल प्राप्त करता है। आश्चर्य जनक रूप से बन्ता को वही संख्या मिल जाती है, जिसमें मूलत: सन्ता ने वास्तविक सन्देश को बदलकर फिर उसका कूटांकन किया था। अब बन्ता इस संख्या को फिर वर्णमाला में परिवर्तित कर सन्ता का मूल सन्देश पढ़ लेता है।

सन्ता और बन्ता की गणनाएँ

105 को 85 से भाग देने पर मिला शेषफल - सन्ता द्वारा शेषफल तरीके से काम करते हुए की गई गणना,


≡ शेषफल 40

बन्ता की गणना
अब बन्ता को 40 कूट सन्देश के रूप में मिलता है और निश्चित तौर पर हर कोई व्यक्ति इसे देख सकता है - इस बात से फर्क नहीं पड़ता। बन्ता अपनी गुप्त चाबी, जो कि 13 है, का इस्तेमाल उस मूल संख्या को प्राप्त करने के लिए करेगा जो सन्ता ने सन्देश के तौर पर भेजी है। बन्ता को वह शेषफल प्राप्त करना है जब 4013 को 85 से विभाजित किया जाता है। बिना गुणा करे ही बन्ता यह कर सकता है। शेषफल के तरीके से काम करते हुए और यह ध्यान रखते हुए कि विभाजक 85 है -

खुद करके देखेंगे तो आपकी भी इस तरीके में महारत हो जाएगी।

आंकिक हस्ताक्षर

ऑयलर का प्रमेय

हम दो अभाज्य संख्याएँ p और q लेते हैं। इनके गुणनफल p x p को ग़् के बराबर लिखते हैं। हम जानते हैं कि (बॉक्स देखें अभाज्य संख्याएँ) (p-1) x (q-1) = Φ को गुणनफल p x q के सहअभाज्यों की संख्या कह सकते हैं। इन सहअभाज्यों की संख्या में एक जोड़ दें, अर्थात Φ धन 1, यानी (Φ +1) ज्ञात कर लें।
N से छोटे किसी भी धनात्मक पूर्णांक को लें, और इसे T कहें।

अगर आप T  को खुद से (Φ + 1) बार गुणा करें, और गुणनफल को N  से भाग दें, तो शेषफल भी T रहेगा। यह ऑयलर के प्रमेय का निष्कर्ष है - बल्कि उनके कई प्रमेयों में से एक का।
उदाहरण: दो अभाज्य संख्याएँ 5 और 2 लें। इनका गुणनफल 10 है। 10 की सहअभाज्य संख्याएँ चार हैं, यानी वे संख्याएं जिनके व 10 के बीच में कोई साझा गुणनखण्ड न हो - 1, 3, 7, 9। यानी यह है Φ (10)= 4। हम इसे इस तरह भी कर सकते हैं:Φ (10) = Φ(5 x 2) = (5-1) x (2-1)= 4 x 1= 4 ।

10 से छोटा कोई भी सम पूर्णांक लें जैसे 6। अगर 6 को (Φ +1) बार गुणा किया जाता है (यह चार धन 1 है यानी कि 5) और इसे 10 से भाग दे दें तो ऑयलर की प्रमेय कहती है कि शेषफल भी 6 ही रहेगा।

अब इसे जाँच कर देखें। 6 x 6 x 6 x 6 x 6 = 7776 है जिसमें 10 से भाग देने के बाद 6 ही शेषफल रहता है। वाह!
अब N= 10 के लिए एक और उदाहरण देखें: 7 लीजिए जो N  = 10 से कम है। 75 = 16807 और 10 से भाग देने पर शेषफल है 7 और फिर से वाह!!

यह ऑयलर की प्रमेय का नतीजा है। अगर N एक धनात्मक पूर्णांक है, और अगर कहें कि इसमें क़ सहअभाज्य हैं। अब अगर A, N से छोटा कोई भी धनात्मक पूर्णांक है तब, आप जब A को खुद सेΦ +1 बार गुणा करके, नतीजे को N से भाग देते हैं, तो शेषफल A के अलावा कुछ और नहीं होता। कितना आश्चर्यजनक!
‘वास्तविक’ ऑयलर प्रमेय कहती है कि AΦ को N से विभाजित करने पर शेषफल 1 होता है, जहाँ Nऔर A सहअभाज्य हैं।

कूटांकन के हमारे सार्वजनिक कुंजी तंत्र में वास्तव में हमने यह किया कि (Φ+1) के गुणनखण्ड D x E के रूप में कर दिए। फिर हमने कोई ऐसा धनात्मक पूर्णांक Aलिया जो Nसे छोटा है। हमने सबसे पहले AE की गणना की, फिर उसे N से विभाजित करने के बाद शेषफल की गणना की। अगर इस शेषफल को R कहें, तो एक बार फिर से RDकी गणना की। अब इसे क से विभाजित करें, तो हमें वापस अपना शेषफल A मिल जाता है।

आपके ए.टी.एम. कार्ड के पिन नम्बर एवं आंकिक हस्ताक्षरों आदि के पीछे आर.एस.ए. सार्वजनिक कुंजी का कूटलेखन और उसके कुछ अन्य प्रकार ही होते हैं।
आइए देखें कि आंकिक हस्ताक्षर किस तरह काम करते हैं। चलिए हम अकबर और भीमराव की बात करें। इन दोनों के पास सार्वजनिक कुंजी की तरह के कूटांकन के तरीके Ea और Eb हैं, तथा इस कूटांकन को खोलने के तरीके Daऔर Dहैं। हम यह मान लेते हैं कि ऊपर दी गई विधि के समान ही, Ea और Ebऐसी सार्वजनिक कुंजी हैं जो सबको उपलब्ध हैं, जबकि Daऔर Dbनिजी कुंजी तरीके हैं जो क्रमश: सिर्फ अकबर और भीमराव को ही उपलब्ध हैं। मान लीजिए कि अकबर एक सन्देश M भीमराव को भेजना चाहता है। अकबर चाहता है कि सिर्फ भीमराव ही यह सन्देश पढ़ पाए, और साथ ही वह भीमराव को यह भरोसा भी दिलाना चाहता है कि यह सन्देश सिर्फ अकबर के पास से ही आया हो सकता है।

हम पहले इस बात पर गौर करें कि कूटांकन करने और खोलने की विधियाँ उपयोग के क्रम की दृष्टि से समरूप होती हैं - अर्थात किसी सन्देश पर Ea Dया Da Ea समान रूप से काम करते हैं, और इनका परिणाम भी समान ही होता है।

अकबर सबसे पहले अपनी खुद की कूटानुवाद खोलने की प्रक्रिया Daको सन्देश M  पर उपयोग करके, फिर उस पर भीमराव की सार्वजनिक रूप से उपलब्ध कूटांकन प्रक्रिया Eb को लागू करता है, और इस प्रकार प्राप्त परिणामी सन्देश को भीमराव को भेजता है। हम इसे प्रतीकों के रूप में ऐसे कहेंगे: Eb(Da(M)) - जिसे वह भीमराव को भेज देता है। यह मिलने पर भीमराव, अपनी कूटानुवाद खोलने की प्रक्रिया Db का उपयोग करता है - इससे सन्देश का Eb हिस्सा हट जाता है, और फिर वह अकबर की सार्वजनिक रूप से उपलब्ध कूटांकन प्रक्रिया Ea कोDa(M) पर इस्तेमाल करता है - इससे सन्देश पर लागू अकबर की कूटांकन खोलने की प्रक्रिया उलट जाती है।
इसे हम ऐसे लिख सकते हैं:

(EaDa)E(Da(M))

=(Ea(DbEb)(Da(M)))

=(Ea (Da(M))
=M
यहाँ ध्यान दीजिए कि पहला कदम, जो किDa(M) है, सिर्फ अकबर ही उठा सकता है - इस तरह भीमराव को यह भरोसा हो जाता है कि यह सन्देश अकबर का ही भेजा हो सकता है। अब आखिरी कदम, जो अकबर से पाए गए सन्देश पर प्रक्रिया (EaDb) को लागू करना है, सिर्फ भीमराव ही उठा सकता है - जिससे अकबर को भी भरोसा रहता है कि कोई और इस सन्देश का कूटानुवाद नहीं कर सकता।


एस. श्रीनिवासन: वडोदरा में सहज और लोकॉस्ट संस्थाओं की शुरुआत व संचालन में प्रमुख भूमिका। विज्ञान एवं गणित शिक्षण में विशेष रुचि।
अँग्रेज़ी से अनुवाद: मनीषा शर्मा: शिक्षा से चिकित्सक हैं। विज्ञान और शिक्षा में गहरी दिलचस्पी। अनुवाद करने का शौक है। दिल्ली में रहती हैं।

14.346MBMemory Usage236msRequest Duration
Joomla! Version4.4.5
PHP Version8.1.31
Identityguest
Response200
Templatej51_maya
Database
Server
mysql
Version
8.0.40
Collation
utf8mb4_0900_ai_ci
Conn Collation
utf8mb4_0900_ai_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:56 [ "USER" => "eklavyaco" "HOME" => "/home/eklavyaco" "PATH_TRANSLATED" => "/home/eklav...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1743813842 "last" => 1743813842...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:18 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (541.98KB) (5.4ms)
  • afterInitialise (1.31MB) (35.76ms)
  • afterRoute (3.17MB) (18.74ms)
  • beforeRenderComponent com_content (73.16KB) (3.5ms)
  • Before Access::preloadComponents (all components) (34.2KB) (914μs)
  • After Access::preloadComponents (all components) (119.27KB) (1.82ms)
  • Before Access::preloadPermissions (com_content) (4.16KB) (25μs)
  • After Access::preloadPermissions (com_content) (3.54MB) (11.21ms)
  • Before Access::getAssetRules (id:1283 name:com_content.article.1001) (258.8KB) (295μs)
  • After Access::getAssetRules (id:1283 name:com_content.article.1001) (8.47KB) (143μs)
  • afterRenderComponent com_content (779.77KB) (34.06ms)
  • afterDispatch (2.28KB) (282μs)
  • beforeRenderRawModule mod_menu () (1.99MB) (60.32ms)
  • afterRenderRawModule mod_menu () (1.13MB) (9.84ms)
  • beforeRenderModule mod_menu () (696B) (15μs)
  • afterRenderModule mod_menu () (26.88KB) (229μs)
  • beforeRenderRawModule mod_menu () (24.38KB) (59μs)
  • afterRenderRawModule mod_menu () (26.45KB) (2.55ms)
  • beforeRenderModule mod_menu () (696B) (11μs)
  • afterRenderModule mod_menu () (26.27KB) (118μs)
  • beforeRenderRawModule mod_menu () (24.48KB) (54μs)
  • afterRenderRawModule mod_menu () (65.22KB) (124μs)
  • beforeRenderModule mod_menu () (696B) (4μs)
  • afterRenderModule mod_menu () (1.64KB) (82μs)
  • beforeRenderRawModule mod_menu (More) (19.64KB) (1.01ms)
  • afterRenderRawModule mod_menu (More) (12.04KB) (369μs)
  • beforeRenderModule mod_menu (More) (704B) (5μs)
  • afterRenderModule mod_menu (More) (12.94KB) (1.71ms)
  • beforeRenderRawModule mod_menu (Gallery) (16B) (73μs)
  • afterRenderRawModule mod_menu (Gallery) (13.38KB) (367μs)
  • beforeRenderModule mod_menu (Gallery) (704B) (5μs)
  • afterRenderModule mod_menu (Gallery) (2.98KB) (98μs)
  • beforeRenderRawModule mod_menu (Magazine) (32B) (50μs)
  • afterRenderRawModule mod_menu (Magazine) (21.47KB) (300μs)
  • beforeRenderModule mod_menu (Magazine) (704B) (5μs)
  • afterRenderModule mod_menu (Magazine) (12.3KB) (619μs)
  • beforeRenderRawModule mod_menu (Books) (32B) (57μs)
  • afterRenderRawModule mod_menu (Books) (26.94KB) (503μs)
  • beforeRenderModule mod_menu (Books) (704B) (5μs)
  • afterRenderModule mod_menu (Books) (12.18KB) (581μs)
  • beforeRenderRawModule mod_menu (Eklavya) (32B) (53μs)
  • afterRenderRawModule mod_menu (Eklavya) (53.14KB) (518μs)
  • beforeRenderModule mod_menu (Eklavya) (704B) (6μs)
  • afterRenderModule mod_menu (Eklavya) (12.05KB) (573μs)
  • beforeRenderRawModule mod_related_items (Related Articles) (1.89KB) (114μs)
  • afterRenderRawModule mod_related_items (Related Articles) (16.7KB) (1.37ms)
  • beforeRenderModule mod_related_items (Related Articles) (704B) (7μs)
  • afterRenderModule mod_related_items (Related Articles) (8.75KB) (345μs)
  • beforeRenderRawModule mod_articles_category (Articles) (7.7KB) (37μs)
  • Before Access::getAssetRules (id:8 name:com_content) (54.08KB) (2.7ms)
  • After Access::getAssetRules (id:8 name:com_content) (6.95KB) (57μs)
  • afterRenderRawModule mod_articles_category (Articles) (26.88KB) (6.18ms)
  • beforeRenderModule mod_articles_category (Articles) (704B) (13μs)
  • afterRenderModule mod_articles_category (Articles) (26.03KB) (874μs)
  • beforeRenderRawModule mod_search (Search module) (8.53KB) (99μs)
  • afterRenderRawModule mod_search (Search module) (2.59KB) (113μs)
  • beforeRenderModule mod_search (Search module) (720B) (4μs)
  • afterRenderModule mod_search (Search module) (1.26KB) (76μs)
  • beforeRenderRawModule mod_breadcrumbs (Breadcrumb) (2.41KB) (196μs)
  • afterRenderRawModule mod_breadcrumbs (Breadcrumb) (14.77KB) (996μs)
  • beforeRenderModule mod_breadcrumbs (Breadcrumb) (704B) (8μs)
  • afterRenderModule mod_breadcrumbs (Breadcrumb) (1.21KB) (131μs)
  • beforeRenderRawModule mod_menu (Search test Menu in content top) (1.95KB) (27μs)
  • afterRenderRawModule mod_menu (Search test Menu in content top) (15.65KB) (415μs)
  • beforeRenderModule mod_menu (Search test Menu in content top) (736B) (6μs)
  • afterRenderModule mod_menu (Search test Menu in content top) (12.23KB) (111μs)
  • beforeRenderRawModule mod_finder (search 22) (352B) (23μs)
  • afterRenderRawModule mod_finder (search 22) (237.79KB) (5.46ms)
  • beforeRenderModule mod_finder (search 22) (720B) (14μs)
  • afterRenderModule mod_finder (search 22) (1.23KB) (217μs)
  • beforeRenderRawModule mod_jfilters_filters (JFilters Filters) (672B) (43μs)
  • afterRenderRawModule mod_jfilters_filters (JFilters Filters) (253.09KB) (14.65ms)
  • beforeRenderModule mod_jfilters_filters (JFilters Filters) (736B) (17μs)
  • afterRenderModule mod_jfilters_filters (JFilters Filters) (1.23KB) (247μs)
  • beforeRenderRawModule mod_search (Search (Top)) (56B) (105μs)
  • afterRenderRawModule mod_search (Search (Top)) (944B) (42μs)
  • beforeRenderModule mod_search (Search (Top)) (720B) (3μs)
  • afterRenderModule mod_search (Search (Top)) (1.23KB) (264μs)
  • afterRender (359.45KB) (7.5ms)
  • 1 x beforeRenderRawModule mod_menu () (1.99MB) (25.51%)
    60.32ms
    1 x afterInitialise (1.31MB) (15.12%)
    35.76ms
    1 x afterRenderComponent com_content (779.77KB) (14.4%)
    34.06ms
    1 x afterRoute (3.17MB) (7.92%)
    18.74ms
    1 x afterRenderRawModule mod_jfilters_filters (JFilters Filters) (253.09KB) (6.2%)
    14.65ms
    1 x After Access::preloadPermissions (com_content) (3.54MB) (4.74%)
    11.21ms
    1 x afterRenderRawModule mod_menu () (1.13MB) (4.16%)
    9.84ms
    1 x afterRender (359.45KB) (3.17%)
    7.50ms
    1 x afterRenderRawModule mod_articles_category (Articles) (26.88KB) (2.61%)
    6.18ms
    1 x afterRenderRawModule mod_finder (search 22) (237.79KB) (2.31%)
    5.46ms
    1 x afterLoad (541.98KB) (2.28%)
    5.40ms
    1 x beforeRenderComponent com_content (73.16KB) (1.48%)
    3.50ms
    1 x Before Access::getAssetRules (id:8 name:com_content) (54.08KB) (1.14%)
    2.70ms
    1 x afterRenderRawModule mod_menu () (26.45KB) (1.08%)
    2.55ms
    1 x After Access::preloadComponents (all components) (119.27KB) (0.77%)
    1.82ms
    1 x afterRenderModule mod_menu (More) (12.94KB) (0.72%)
    1.71ms
    1 x afterRenderRawModule mod_related_items (Related Articles) (16.7KB) (0.58%)
    1.37ms
    1 x beforeRenderRawModule mod_menu (More) (19.64KB) (0.43%)
    1.01ms
    1 x afterRenderRawModule mod_breadcrumbs (Breadcrumb) (14.77KB) (0.42%)
    996μs
    1 x Before Access::preloadComponents (all components) (34.2KB) (0.39%)
    914μs
    1 x afterRenderModule mod_articles_category (Articles) (26.03KB) (0.37%)
    874μs
    1 x afterRenderModule mod_menu (Magazine) (12.3KB) (0.26%)
    619μs
    1 x afterRenderModule mod_menu (Books) (12.18KB) (0.25%)
    581μs
    1 x afterRenderModule mod_menu (Eklavya) (12.05KB) (0.24%)
    573μs
    1 x afterRenderRawModule mod_menu (Eklavya) (53.14KB) (0.22%)
    518μs
    1 x afterRenderRawModule mod_menu (Books) (26.94KB) (0.21%)
    503μs
    1 x afterRenderRawModule mod_menu (Search test Menu in content top) (15.65KB) (0.18%)
    415μs
    1 x afterRenderRawModule mod_menu (More) (12.04KB) (0.16%)
    369μs
    1 x afterRenderRawModule mod_menu (Gallery) (13.38KB) (0.16%)
    367μs
    1 x afterRenderModule mod_related_items (Related Articles) (8.75KB) (0.15%)
    345μs
    1 x afterRenderRawModule mod_menu (Magazine) (21.47KB) (0.13%)
    300μs
    1 x Before Access::getAssetRules (id:1283 name:com_content.article.1001) (258.8KB) (0.12%)
    295μs
    1 x afterDispatch (2.28KB) (0.12%)
    282μs
    1 x afterRenderModule mod_search (Search (Top)) (1.23KB) (0.11%)
    264μs
    1 x afterRenderModule mod_jfilters_filters (JFilters Filters) (1.23KB) (0.1%)
    247μs
    1 x afterRenderModule mod_menu () (26.88KB) (0.1%)
    229μs
    1 x afterRenderModule mod_finder (search 22) (1.23KB) (0.09%)
    217μs
    1 x beforeRenderRawModule mod_breadcrumbs (Breadcrumb) (2.41KB) (0.08%)
    196μs
    1 x After Access::getAssetRules (id:1283 name:com_content.article.1001) (8.47KB) (0.06%)
    143μs
    1 x afterRenderModule mod_breadcrumbs (Breadcrumb) (1.21KB) (0.06%)
    131μs
    1 x afterRenderRawModule mod_menu () (65.22KB) (0.05%)
    124μs
    1 x afterRenderModule mod_menu () (26.27KB) (0.05%)
    118μs
    1 x beforeRenderRawModule mod_related_items (Related Articles) (1.89KB) (0.05%)
    114μs
    1 x afterRenderRawModule mod_search (Search module) (2.59KB) (0.05%)
    113μs
    1 x afterRenderModule mod_menu (Search test Menu in content top) (12.23KB) (0.05%)
    111μs
    1 x beforeRenderRawModule mod_search (Search (Top)) (56B) (0.04%)
    105μs
    1 x beforeRenderRawModule mod_search (Search module) (8.53KB) (0.04%)
    99μs
    1 x afterRenderModule mod_menu (Gallery) (2.98KB) (0.04%)
    98μs
    1 x afterRenderModule mod_menu () (1.64KB) (0.03%)
    82μs
    1 x afterRenderModule mod_search (Search module) (1.26KB) (0.03%)
    76μs
    1 x beforeRenderRawModule mod_menu (Gallery) (16B) (0.03%)
    73μs
    1 x beforeRenderRawModule mod_menu () (24.38KB) (0.03%)
    59μs
    1 x beforeRenderRawModule mod_menu (Books) (32B) (0.02%)
    57μs
    1 x After Access::getAssetRules (id:8 name:com_content) (6.95KB) (0.02%)
    57μs
    1 x beforeRenderRawModule mod_menu () (24.48KB) (0.02%)
    54μs
    1 x beforeRenderRawModule mod_menu (Eklavya) (32B) (0.02%)
    53μs
    1 x beforeRenderRawModule mod_menu (Magazine) (32B) (0.02%)
    50μs
    1 x beforeRenderRawModule mod_jfilters_filters (JFilters Filters) (672B) (0.02%)
    43μs
    1 x afterRenderRawModule mod_search (Search (Top)) (944B) (0.02%)
    42μs
    1 x beforeRenderRawModule mod_articles_category (Articles) (7.7KB) (0.02%)
    37μs
    3 x beforeRenderModule mod_menu () (696B) (0.01%)
    30μs
    1 x beforeRenderRawModule mod_menu (Search test Menu in content top) (1.95KB) (0.01%)
    27μs
    1 x Before Access::preloadPermissions (com_content) (4.16KB) (0.01%)
    25μs
    1 x beforeRenderRawModule mod_finder (search 22) (352B) (0.01%)
    23μs
    1 x beforeRenderModule mod_jfilters_filters (JFilters Filters) (736B) (0.01%)
    17μs
    1 x beforeRenderModule mod_finder (search 22) (720B) (0.01%)
    14μs
    1 x beforeRenderModule mod_articles_category (Articles) (704B) (0.01%)
    13μs
    1 x beforeRenderModule mod_breadcrumbs (Breadcrumb) (704B) (0%)
    8μs
    1 x beforeRenderModule mod_related_items (Related Articles) (704B) (0%)
    7μs
    1 x beforeRenderModule mod_menu (Search test Menu in content top) (736B) (0%)
    6μs
    1 x beforeRenderModule mod_menu (Eklavya) (704B) (0%)
    6μs
    1 x beforeRenderModule mod_menu (More) (704B) (0%)
    5μs
    1 x beforeRenderModule mod_menu (Gallery) (704B) (0%)
    5μs
    1 x beforeRenderModule mod_menu (Magazine) (704B) (0%)
    5μs
    1 x beforeRenderModule mod_menu (Books) (704B) (0%)
    5μs
    1 x beforeRenderModule mod_search (Search module) (720B) (0%)
    4μs
    1 x beforeRenderModule mod_search (Search (Top)) (720B) (0%)
    3μs
143 statements were executed, 3 of which were duplicates, 140 unique68.99ms3.55MB
  • SELECT @@SESSION.sql_mode;182μs1.57KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:334Copy
  • SELECT `data` FROM `j4_session` WHERE `session_id` = ?174μs1.61KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:261Copy
  • SELECT `session_id` FROM `j4_session` WHERE `session_id` = :session_id LIMIT 1313μs1.61KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `j4_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)634μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `j4_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 1757μs2.36KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `j4_viewlevels`563μs976B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `j4_usergroups` AS `a` LEFT JOIN `j4_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest607μs1.63KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `j4_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1) ORDER BY `ordering`1.41ms4.27KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SELECT * FROM j4_rsform_config194μs2.56KB/administrator/components/com_rsform/helpers/config.php:52Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `j4_menu` AS `m` LEFT JOIN `j4_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`2.02ms167.05KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `j4_categories` AS `s` INNER JOIN `j4_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`10.03ms2.15MBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT * FROM `j4_languages` WHERE `published` = 1 ORDER BY `ordering` ASC432μs2.22KB/libraries/src/Language/LanguageHelper.php:142Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `j4_template_styles` AS `s` LEFT JOIN `j4_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1585μs1.14KB/administrator/components/com_templates/src/Model/StyleModel.php:773Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `j4_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40,:preparedArray41,:preparedArray42,:preparedArray43,:preparedArray44,:preparedArray45,:preparedArray46,:preparedArray47)1.21ms8.12KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `j4_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 05.44ms345.8KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `j4_content`1.44ms2.39KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • UPDATE `j4_content` SET `hits` = (`hits` + 1) WHERE `id` = '1001'5.28ms2.55KB/libraries/src/Table/Table.php:1325Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `j4_content` AS `a` INNER JOIN `j4_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `j4_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `j4_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `j4_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `j4_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)884μs112.63KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `j4_categories` AS `s` INNER JOIN `j4_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`3.18ms21.19KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `j4_contentitem_tag_map` AS `m` INNER JOIN `j4_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1)459μs5.2KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `j4_categories` AS `s` INNER JOIN `j4_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`3.22ms21.19KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM j4_fields AS a LEFT JOIN `j4_languages` AS l ON l.lang_code = a.language LEFT JOIN j4_users AS uc ON uc.id=a.checked_out LEFT JOIN j4_viewlevels AS ag ON ag.id = a.access LEFT JOIN j4_users AS ua ON ua.id = a.created_user_id LEFT JOIN j4_fields_groups AS g ON g.id = a.group_id LEFT JOIN `j4_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5)) AND `a`.`access` IN (:preparedArray6)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray7)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC615μs6.06KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `j4_categories` AS `s` INNER JOIN `j4_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`3.01ms21.19KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT m.id, m.title, m.module, m.position, m.content, m.showtitle, m.params,am.params AS extra, 0 AS menuid, m.publish_up, m.publish_down FROM j4_modules AS m LEFT JOIN j4_extensions AS e ON e.element = m.module AND e.client_id = m.client_id LEFT JOIN j4_advancedmodules as am ON am.module_id = m.id WHERE m.published = 1 AND e.enabled = 1 AND m.client_id = 0 ORDER BY m.position, m.ordering1.17ms50.67KB/plugins/system/advancedmodules/src/Helper.php:191Copy
  • SELECT m.condition_id,m.item_id FROM j4_conditions_map as m LEFT JOIN j4_conditions as c ON c.id = m.condition_id WHERE `m`.`extension` = 'com_advancedmodules' AND `c`.`published` = 1488μs1.75KB/administrator/components/com_conditions/src/Model/ItemModel.php:821Copy
  • SHOW FULL COLUMNS FROM `j4_conditions`916μs2.08KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '14'214μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 14297μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 14212μs1.13KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 14 ORDER BY m.extension,m.item_id331μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT `id`,`title` AS `value` FROM `j4_modules`694μs3.38KB/administrator/components/com_conditions/src/Helper/Helper.php:184Copy
  • SHOW FULL COLUMNS FROM `j4_modules`1.3ms2.2KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:625Copy
  • SELECT `id`,`published` AS `value` FROM `j4_modules`345μs14.38KB/administrator/components/com_conditions/src/Helper/Helper.php:184Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '15'323μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 15408μs1008B/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 15 ORDER BY m.extension,m.item_id214μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '16'135μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 1694μs1008B/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 16 ORDER BY m.extension,m.item_id117μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '18'103μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 1898μs1008B/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 18 ORDER BY m.extension,m.item_id215μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '23'91μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 23100μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 19123μs1.13KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 23 ORDER BY m.extension,m.item_id112μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '24'147μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 24167μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 20145μs1.13KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 24 ORDER BY m.extension,m.item_id130μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '25'130μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 25120μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 2187μs1.13KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 25 ORDER BY m.extension,m.item_id135μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '53'126μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 53159μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 4593μs1.13KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 53 ORDER BY m.extension,m.item_id88μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '29'104μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 2994μs1008B/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 29 ORDER BY m.extension,m.item_id98μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '31'122μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 31108μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 4390μs1.13KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 31 ORDER BY m.extension,m.item_id135μs9.02KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '36'102μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 3687μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 31185μs1.14KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 36 ORDER BY m.extension,m.item_id91μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '10'128μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 10103μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 10110μs1.14KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 10 ORDER BY m.extension,m.item_id99μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '37'88μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 37112μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 3298μs1.14KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 37 ORDER BY m.extension,m.item_id162μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '35'98μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 3590μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 3095μs1.14KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 35 ORDER BY m.extension,m.item_id96μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '51'87μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 51168μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 41131μs1.16KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 51 ORDER BY m.extension,m.item_id131μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '54'120μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 5498μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 4686μs1.13KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 54 ORDER BY m.extension,m.item_id99μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '7'145μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 7119μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 797μs1.14KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 7 ORDER BY m.extension,m.item_id103μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '45'108μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 45111μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 39101μs1.16KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 45 ORDER BY m.extension,m.item_id113μs1.11KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '50'126μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 50200μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 40108μs1.16KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 50 ORDER BY m.extension,m.item_id95μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '11'137μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 1188μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 1190μs1.13KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 11 ORDER BY m.extension,m.item_id94μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '30'93μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 30114μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 2593μs1.13KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 30 ORDER BY m.extension,m.item_id86μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '5'102μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 5104μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 5302μs1.13KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 5 ORDER BY m.extension,m.item_id157μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '52'147μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 52157μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 42108μs1.13KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 52 ORDER BY m.extension,m.item_id123μs1.02KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '4'183μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 4105μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 490μs1.13KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 4 ORDER BY m.extension,m.item_id96μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '1'91μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 181μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 191μs1.14KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 1 ORDER BY m.extension,m.item_id117μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT * FROM `j4_conditions` WHERE `id` = '2'137μs2.06KB/libraries/src/Table/Table.php:755Copy
  • SELECT * FROM j4_conditions_groups as g WHERE g.condition_id = 2126μs1KB/administrator/components/com_conditions/src/Model/ItemModel.php:1034Copy
  • SELECT * FROM j4_conditions_rules as r WHERE r.group_id = 2148μs1.14KB/administrator/components/com_conditions/src/Model/GroupModel.php:108Copy
  • SELECT m.extension,m.item_id,m.table,m.name_column FROM j4_conditions_map as m WHERE m.condition_id = 2 ORDER BY m.extension,m.item_id144μs17KB/administrator/components/com_conditions/src/Model/ItemModel.php:907Copy
  • SELECT a.params FROM j4_advancedmodules AS a WHERE a.module_id = 191877μs840B/plugins/system/advancedmodules/src/Helper.php:151Copy
  • SELECT a.params FROM j4_advancedmodules AS a WHERE a.module_id = 189227μs840B/plugins/system/advancedmodules/src/Helper.php:151Copy
  • SELECT a.params FROM j4_advancedmodules AS a WHERE a.module_id = 188170μs840B/plugins/system/advancedmodules/src/Helper.php:151Copy
  • SELECT a.params FROM j4_advancedmodules AS a WHERE a.module_id = 185152μs840B/plugins/system/advancedmodules/src/Helper.php:151Copy
  • SELECT `metakey` FROM `j4_content` WHERE `id` = :id227μs1.63KBParams/modules/mod_related_items/src/Helper/RelatedItemsHelper.php:88Copy
  • SELECT a.params FROM j4_advancedmodules AS a WHERE a.module_id = 22398μs840B/plugins/system/advancedmodules/src/Helper.php:151Copy
  • SELECT `a`.`id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,CASE WHEN `a`.`publish_up` IS NULL THEN `a`.`created` ELSE `a`.`publish_up` END AS `publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`metadata`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`featured`,`a`.`language`,LENGTH(`a`.`fulltext`) AS `readmore`,`a`.`ordering`,`fp`.`featured_up`,`fp`.`featured_down`,CASE WHEN `c`.`published` = 2 AND `a`.`state` > 0 THEN 2 WHEN `c`.`published` != 1 THEN 0 ELSE `a`.`state` END AS `state`,`c`.`title` AS `category_title`,`c`.`path` AS `category_route`,`c`.`access` AS `category_access`,`c`.`alias` AS `category_alias`,`c`.`language` AS `category_language`,`c`.`published`,`c`.`published` AS `parents_published`,`c`.`lft`,CASE WHEN `a`.`created_by_alias` > ' ' THEN `a`.`created_by_alias` ELSE `ua`.`name` END AS `author`,`ua`.`email` AS `author_email`,`uam`.`name` AS `modified_by_name`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,COALESCE(NULLIF(ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1), 0), 0) AS `rating`,COALESCE(NULLIF(`v`.`rating_count`, 0), 0) AS `rating_count` FROM `j4_content` AS `a` LEFT JOIN `j4_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `j4_users` AS `ua` ON `ua`.`id` = `a`.`created_by` LEFT JOIN `j4_users` AS `uam` ON `uam`.`id` = `a`.`modified_by` LEFT JOIN `j4_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `j4_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `j4_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE `a`.`access` IN (:preparedArray1) AND `c`.`access` IN (:preparedArray2) AND `c`.`published` = 1 AND `a`.`state` = :condition AND `a`.`catid` IN (:preparedArray3) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) ORDER BY a.ordering ASC3.93ms456.94KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT a.params FROM j4_advancedmodules AS a WHERE a.module_id = 224176μs840B/plugins/system/advancedmodules/src/Helper.php:151Copy
  • SELECT `name`,`element` FROM `j4_extensions` WHERE `type` = 'plugin' AND `folder` = 'finder' AND `enabled` = 1329μs1KB/administrator/components/com_finder/src/Helper/LanguageHelper.php:135Copy
  • SELECT `title` FROM `j4_finder_taxonomy` WHERE `parent_id` = 1 AND `state` = 1 AND `access` IN (1)428μs936B/administrator/components/com_finder/src/Indexer/Taxonomy.php:314Copy
  • SELECT a.id, a.parent_id, a.config_name, a.name, a.context, a.label, a.alias, a.display, a.state, a.access, a.root, a.ordering, a.checked_out, a.checked_out_time, a.created_time, a.updated_time, a.language,`a`.`attribs` AS `attributes` FROM `j4_jfilters_filters` AS `a` WHERE `a`.`access` IN (:preparedArray1) AND `a`.`state` IN (:preparedArray2,:preparedArray3) ORDER BY a.ordering ASC725μs4.52KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:166Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `j4_scheduler_tasks` AS `a` WHERE `a`.`state` = 1563μs1.68KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:466Copy
  • SELECT `session_id` FROM `j4_session` WHERE `session_id` = ?216μs1.63KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:291Copy
  • UPDATE `j4_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?358μs912BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:318Copy
    Select and listen