
स्टेग्नोग्राफिक भंडारण और फ़ाइल एन्क्रिप्शन उपकरण

tird & tirdFStird /tɪrd/ (यह "यह यादृच्छिक डेटा है" का संक्षिप्त रूप है) एक फ़ाइल एन्क्रिप्शन उपकरण है जो मेटाडेटा को न्यूनतम करता है और एन्क्रिप्टेड डेटा को छिपाता है।
tird के साथ, आप यह कर सकते हैं:
tirdFS) बनाएं। VeraCrypt और Shufflecake के विपरीत, tirdFS कंटेनरों में हेडर नहीं होते हैं; उपयोगकर्ता कंटेनर के अंदर डेटा स्थान निर्दिष्ट करता है और उन स्थानों को अलग रखने के लिए जिम्मेदार है। फ़ाइल या ब्लॉक डिवाइस का कोई भी यादृच्छिक दिखने वाला क्षेत्र कंटेनर के रूप में उपयोग किया जा सकता है।tird बिल्ट-इन प्रशंसनीय अस्वीकार्यता प्रदान करता है, भले ही एन्क्रिप्टेड फ़ाइलें कंटेनरों के बाहर संग्रहीत हों। यह जबरदस्ती कुंजी-प्रकटीकरण हमलों (रबर-होज़ क्रिप्टैनालिसिस, xkcd 538) का प्रतिरोध करने में भी मदद करता है।
[!WARNING]
tirdका उपयोग करने से पहले, कृपया "चेतावनियाँ" अनुभाग पढ़ें। सुरक्षा केवल उपकरण पर नहीं बल्कि आपके कार्यों पर निर्भर करती है: सुरक्षित कुंजी भंडारण, सुरक्षित वातावरण में काम करना, और वास्तविक डेटा के साथ डीबग मोड से बचना।
प्रारूप स्थिरीकरण और एक औपचारिक विनिर्देश v1.0.0 के लिए योजनाबद्ध हैं।
tird का उपयोग करने के लिए आपको कमांड-लाइन विकल्प याद रखने की आवश्यकता नहीं है। इस उपकरण में एक प्रॉम्प्ट-आधारित CLI है: बस इसे शुरू करें, एक मेनू विकल्प चुनें, और आगे आने वाले प्रश्नों के उत्तर दें।```
$ tird
MENU
———————————————————————————————————————————
0. Exit 1. Info & Warnings
2. Encrypt 3. Decrypt
4. Embed 5. Extract
6. Encrypt & Embed 7. Extract & Decrypt
8. Create w/ Random 9. Overwrite w/ Random
———————————————————————————————————————————
A0. SELECT AN OPTION [0-9]:
## इनपुट विकल्प
इनपुट विकल्पों के 4 समूह हैं: A (क्रिया), D (डेटा), K (कुंजियाँ), P (आगे बढ़ें)। विवरण में सुविधा के लिए इन्हें क्रमांकित किया गया है।```
+——————————————————————+————————————————————————+
| A0. SELECT AN OPTION | A. Select an action |
+——————————————————————+————————————————————————+
| D1. INPUT FILE PATH | |
| D2. COMMENTS | D. Enter data, |
| D3. OUTPUT FILE PATH | data location, |
| D4. OUTPUT FILE SIZE | data size |
| D5. START POSITION | |
| D6. END POSITION | |
+——————————————————————+————————————————————————+
| K1. KEYFILE PATH | K. Enter values |
| K2. PASSPHRASE | related to |
| K3. TIME COST | key derivation |
+——————————————————————+————————————————————————+
| P0. PROCEED? | P. Confirm to continue |
+——————————————————————+————————————————————————+
इन विकल्पों का विस्तृत विवरण उदाहरणों सहित यहाँ पाया जा सकता है।
क्रिप्टोब्लॉब निर्माण के दौरान एन्क्रिप्ट किया जाने वाला पेलोड निम्न से बना होता है:
UI में पेलोड निर्दिष्ट करना इस प्रकार दिखता है:``` D1. FILE TO ENCRYPT (OPT): files.zip I: path: 'files.zip'; size: 2,824,230,648 B (2.6 GiB) D2. COMMENTS (DEFAULT='files.zip'): The X-Files, zip (секретные материалы) I: comments will be shown as ['The X-Files, zip (секретные материалы)']
## इनपुट कुंजी सामग्री
`tird` कीफ़ाइलों की सामग्री और एक पासफ़्रेज़ का उपयोग करके एक-बार उपयोग कुंजियाँ प्राप्त करने का विकल्प प्रदान करता है।
- **कीफ़ाइलें (वैकल्पिक):** शून्य, एक, या एकाधिक कीफ़ाइल पथ; इनपुट के क्रम से कोई फर्क नहीं पड़ता। कीफ़ाइल पथ हो सकता है:
- एक <ins>सामान्य फ़ाइल</ins>। कीफ़ाइल की सामग्री हैश की जाएगी, और इसका डाइजेस्ट आगे कुंजी विस्तार और कुंजी व्युत्पत्ति के लिए उपयोग किया जाएगा।
- एक <ins>ब्लॉक डिवाइस</ins>। एक सामान्य कीफ़ाइल की तरह ही संभाला जाता है: सामग्री हैश की जाएगी।
- एक <ins>निर्देशिका</ins>। निर्देशिका के भीतर सभी फ़ाइलें हैश की जाएंगी और कीफ़ाइलों के रूप में उपयोग की जाएंगी।
- **पासफ़्रेज़ (वैकल्पिक):** यूनिकोड [सामान्यीकरण](https://www.unicode.org/reports/tr15/) (फॉर्म C) के बाद 2048 बाइट्स तक; छोड़ा जा सकता है।
UI में IKM निर्दिष्ट करना इस प्रकार दिखता है:```
K1. KEYFILE PATH (OPT): key
I: path: 'key'; size: 32 B
I: reading and hashing contents of 'key'
I: keyfile accepted
K1. KEYFILE PATH (OPT):
K2. PASSPHRASE (OPT):
K2. CONFIRM PASSPHRASE:
I: passphrase accepted
अधिक जानकारी के लिए, specification देखें।
जबकि एन्क्रिप्टेड संदेश की सामग्री सुरक्षित होती है, उसका आकार, उसकी उत्पत्ति, उसका गंतव्य... सुरक्षित नहीं होते। डेटा छिपा होता है, मेटाडेटा दिखाया जाता है। कभी-कभी, आपके दुश्मन को आपके रहस्यों को उजागर करने के लिए बस इतना ही चाहिए होता है।
हम लोगों को मेटाडेटा के आधार पर मारते हैं।
![]() Vs. ![]() |
|---|
tirdFS — उपयोगकर्ता-चालित स्टेग्नोग्राफ़िक फ़ाइल सिस्टमtird एक ऐसी तकनीक का उपयोग करता है जिसे वर्णित किया गया है:
एन्क्रिप्टेड डेटा या यादृच्छिक डेटा के भीतर डेटा छिपाना। छिपाए जाने वाले संदेश को एन्क्रिप्ट किया जाता है, फिर एन्क्रिप्टेड डेटा के एक बहुत बड़े ब्लॉक या यादृच्छिक डेटा के एक ब्लॉक के भाग को ओवरराइट करने के लिए उपयोग किया जाता है (एक अनब्रेकेबल सिफर जैसे वन-टाइम पैड प्राइवेट कुंजी के बिना पूरी तरह से यादृच्छिक दिखने वाले सिफरटेक्स्ट उत्पन्न करता है)।
आप फ़ाइलों को एन्क्रिप्ट कर सकते हैं और मनमाने स्थानों से शुरू करके कंटेनरों में क्रिप्टोब्लॉब्स एम्बेड कर सकते हैं। क्रिप्टोब्लॉब लिखने के बाद, आपको कंटेनर में इसका स्थान (शुरुआती और समाप्ति स्थान) याद रखना होगा, जिसका उपयोग बाद में क्रिप्टोब्लॉब्स निकालने के लिए किया जाएगा। इस प्रकार, आप एक कंटेनर के अंदर tirdFS — छिपा हुआ, हेडरलेस, उपयोगकर्ता-चालित फ़ाइल सिस्टम बना सकते हैं:
tirdFS आंतरिक मेटाडेटा संरचनाओं वाला माउंटेड फ़ाइल सिस्टम नहीं है। यह स्वतंत्र रूप से रखे गए क्रिप्टोब्लॉब्स से निर्मित एक उपयोगकर्ता-प्रबंधित छिपा हुआ भंडारण मॉडल है।
कोई भी फ़ाइल, डिस्क, या विभाजन जो न्यूनतम क्रिप्टोब्लॉब आकार (1160 B) से बड़ा है, एक मान्य कंटेनर हो सकता है। क्रिप्टोब्लॉब्स किसी भी क्षेत्र में एम्बेड किए जा सकते हैं।
मान्य कंटेनरों के उदाहरणों में शामिल हैं:
कंटेनर संरचना का उदाहरण:``` +—————————+—————————————+ <— Position 0 of the container | | | | | Random data | | | | | +—————————————+ <— Cryptoblob1 start position | Header- | | | less | Cryptoblob1 | | | | | Layer +—————————————+ <— Cryptoblob1 end position | | Random data | | Cake +—————————————+ <— Cryptoblob2 start position | | | | | Cryptoblob2 | | | | | +—————————————+ <— Cryptoblob2 end position | | Random data | +—————————+—————————————+
**उपयोगकर्ता-प्रबंधित शीर्षलेख**
पृथक उपयोगकर्ता-प्रबंधित `tirdFS` टेक्स्ट शीर्षलेख कुछ इस प्रकार दिख सकता है:```
[100000000:100345765] secret_video.mp4
[100345765:234765345] various_secrets.zip
[12654876456:14765345098] Epstein_files_part1.zip
That is, it should typically contain the location of each cryptoblob in the container plus a brief comment. However, the user is free to determine how to store positions and what to include in such a header.
The next image visualizes how hard it is to distinguish one random data entry from another and the process of embedding cryptoblobs in a container.
Empty container with random data:

One cryptoblob embedded in the container:

Two cryptoblobs embedded in the container:

Three cryptoblobs embedded in the container:

Animation: visualization of embedding:

Carry everywhere. It is your right.
Please look at the following screenshot.
It looks like this 16 GB volume contains only one 8.7 MiB file. Is it really true? Maybe yes, maybe no.
The file system tells us that there is only one file here. But is there really only one file on the volume? We cannot determine this using the file system. In fact, data may be located outside the file system and be undetectable by file system tools. The 15.2 GiB of space marked as free may be occupied by a hidden file system. This "free" space may be taken up by hidden encrypted data.
Can we disprove the existence of this data? Yes, for example, by examining the entropy level of this free space using binwalk. Low entropy indicates a likely absence of hidden data. High entropy does not by itself prove the presence of encrypted hidden data. Areas with high entropy can be either just residual data or hidden encrypted data.
If you are interested in hiding data outside the visible file system, then tird is at your service to provide an Invisibility Cloak for your files.
Time-lock encryption (TLE) can be used to prevent an adversary from quickly accessing plaintexts in the event of an IKM compromise (in case of user coercion, for example). In our implementation, it is actually a PoW-based time-lock key derivation. The "Time cost" input option specifies the number of Argon2 passes. If you specify a sufficiently high number of passes, it will take a significant amount of time to perform them. However, an attacker will require the same amount of time when using similar hardware. The execution of Argon2 cannot be accelerated through parallelization, so it is expected that the time spent by an attacker will be approximately the same as that spent by the defender.
This TLE implementation works offline, unlike tlock.
Set the desired TIME COST value:```
K3. TIME COST (DEFAULT=4): 1000000
I: time cost: 1,000,000
W: decryption will require the same "TIME COST" value!
**संभावित TLE:** प्रतिद्वंद्वी समय लागत के वास्तविक मान को नहीं जानता, इसलिए आप पासों की संख्या को संभावित रूप से गलत बता सकते हैं। जब तक वे निर्दिष्ट समय लागत मान का उपयोग करके क्रिप्टोब्लॉब को डिक्रिप्ट करने का प्रयास नहीं करते, तब तक प्रतिद्वंद्वी आपके दावे का खंडन नहीं कर सकता।
## कमांड-लाइन विकल्प
सामान्य उपयोग के लिए `tird` को किसी कमांड-लाइन विकल्प की आवश्यकता नहीं है।```
$ tird --help
tird v0.30.0
A tool for encrypting files and hiding encrypted data.
Homepage: https://github.com/hakavlad/tird
Usage:
tird [--unsafe-debug] [--unsafe-decrypt]
Start without options for normal usage.
Options:
--help print this help message and exit
--unsafe-debug enable unsafe debug mode
--unsafe-decrypt release plaintext even if MAC verification
failed (dangerous)
Examples:
$ tird
$ tird --unsafe-debug
[!चेतावनी] डीबग मोड उत्पादन में उपयोग के लिए अभिप्रेत नहीं है!
प्रोग्राम चलने के दौरान अंदर की जांच करने के लिए tird को --unsafe-debug विकल्प के साथ प्रारंभ करें।
डीबग मोड सक्षम करने पर अतिरिक्त रूप से दिखाया जाता है:
[!चेतावनी] इस मोड में लौटाया गया प्लेनटेक्स्ट किसी हमलावर द्वारा संशोधित या प्रतिस्थापित किया जा सकता है!
असुरक्षित डिक्रिप्ट मोड में tird प्रमाणीकरण विफल होने पर भी प्लेनटेक्स्ट जारी करेगा। इसका उपयोग केवल तभी करें जब आप अखंडता पर उपलब्धता को प्राथमिकता देते हैं, जब आप सामान्य मोड में क्रिप्टोब्लॉब को सफलतापूर्वक डिक्रिप्ट नहीं कर सकते।
tird समर्थन नहीं करता:
tird प्रदान नहीं करता:
tird एक पास में एक से अधिक फ़ाइलों को हैंडल (एन्क्रिप्ट/एम्बेड) नहीं कर सकता। निर्देशिकाओं और एकाधिक फ़ाइलों का एन्क्रिप्शन समर्थित नहीं है।tird फ़ाइलसिस्टम मेटाडेटा (atime, mtime, ctime) को सैनिटाइज़ नहीं करता।tird की एन्क्रिप्शन गति बहुत अधिक नहीं है (आधुनिक हार्डवेयर पर मेरे परीक्षणों में 730 MiB/s तक)।क्रिप्टो मदद कर सकता है, लेकिन यह आपको दुरुपयोग, कमजोरियों, सोशल इंजीनियरिंग या भौतिक खतरों से नहीं बचाएगा।
tird का मनुष्यों द्वारा स्वतंत्र रूप से सुरक्षा ऑडिट नहीं किया गया है।tird एक समझौता किए गए वातावरण में अप्रभावी है; ऐसे मामलों में इसे निष्पादित करने से विनाशकारी डेटा लीक हो सकती है।tird छोटी और अनुमानित कुंजियों के साथ उपयोग किए जाने पर प्रभावी होने की संभावना नहीं है।tird उपयोग के बाद अपने संवेदनशील डेटा को मेमोरी से मिटाता नहीं है; प्रोग्राम से बाहर निकलने के बाद कुंजियाँ मेमोरी में बनी रह सकती हैं।tird कीफ़ाइलों और पासफ़्रेज़ के डाइजेस्ट को स्थिर-समय में सॉर्ट नहीं करता।tird डेटा की रक्षा करता है, उपयोगकर्ता की नहीं; यह संदेह होने पर यातना को नहीं रोक सकता।HKDF और एक तेज़ ChaCha20 कार्यान्वयन)Argon2 और BLAKE2 के तेज़ कार्यान्वयन)tird(1) मैन पेजदस्तावेज़ीकरण में सुधार करें।
कृपया चर्चा अनुभाग में प्रश्न पूछने, प्रतिक्रिया देने या आलोचना प्रदान करने में संकोच न करें।