{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2508-20718","title":"Addressing Tokenization Inconsistency in Steganography and Watermarking Based on Large Language Models","arxiv_id":"2508.20718","date":"2025-08-28","proceeding":"EMNLP","authors":["Ruiyi Yan","Yugo Murawaki"],"abstract":"Large language models have significantly enhanced the capacities and efficiency of text generation. On the one hand, they have improved the quality of text-based steganography. On the other hand, they have also underscored the importance of watermarking as a safeguard against malicious misuse. In this study, we focus on tokenization inconsistency (TI) between Alice and Bob in steganography and watermarking, where TI can undermine robustness. Our investigation reveals that the problematic tokens responsible for TI exhibit two key characteristics: infrequency and temporariness. Based on these findings, we propose two tailored solutions for TI elimination: a stepwise verification method for steganography and a post-hoc rollback method for watermarking. Experiments show that (1) compared to traditional disambiguation methods in steganography, directly addressing TI leads to improvements in fluency, imperceptibility, and anti-steganalysis capacity; (2) for watermarking, addressing TI enhances detectability and robustness against attacks.","url_abs":"https://arxiv.org/abs/2508.20718","url_pdf":"https://arxiv.org/pdf/2508.20718","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2508.20718","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2508.20718"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/ryehr/Consistency","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":28},"by_repo_kind":{"found_in_text":{"samples":28,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"4641dca1ac6eb907","entry":"Attack","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"legacy/Attack_watermark.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/legacy/Attack_watermark.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4641dca1ac6eb907"}},{"code_sha256_prefix":"387c8b512864a0af","entry":"BFS_Forest","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"legacy/Steganography_AC.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/legacy/Steganography_AC.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"387c8b512864a0af"}},{"code_sha256_prefix":"b4056ca2c7273447","entry":"auroc","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/metrics.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/metrics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b4056ca2c7273447"}},{"code_sha256_prefix":"3dbcb9239a7c5714","entry":"bits_to_int","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/coding.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/coding.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3dbcb9239a7c5714"}},{"code_sha256_prefix":"095cfc085919059d","entry":"build_pool","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/pools.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/pools.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"095cfc085919059d"}},{"code_sha256_prefix":"eb377f276544ba23","entry":"build_scheme","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/watermark.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/watermark.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"eb377f276544ba23"}},{"code_sha256_prefix":"1e9caf3fe5683350","entry":"connected_components","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/pools.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/pools.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1e9caf3fe5683350"}},{"code_sha256_prefix":"f17126ea771603c1","entry":"detect_logits","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"legacy/Attack_watermark.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/legacy/Attack_watermark.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f17126ea771603c1"}},{"code_sha256_prefix":"60c2a54ff9a5f505","entry":"detect_sample","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"legacy/Attack_watermark.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/legacy/Attack_watermark.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"60c2a54ff9a5f505"}},{"code_sha256_prefix":"3e44617c05f9e47c","entry":"detokenize","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/tokenization.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/tokenization.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3e44617c05f9e47c"}},{"code_sha256_prefix":"8d89fac0921013bf","entry":"extract","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/steganography.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/steganography.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8d89fac0921013bf"}},{"code_sha256_prefix":"3ffd6721b8bfdc72","entry":"find_MWIS","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"legacy/Steganography_AC.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/legacy/Steganography_AC.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3ffd6721b8bfdc72"}},{"code_sha256_prefix":"732a129f77e46327","entry":"find_connected_components","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"legacy/Steganography_AC.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/legacy/Steganography_AC.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"732a129f77e46327"}},{"code_sha256_prefix":"4abde2ebde77264f","entry":"generate","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/watermark.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/watermark.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4abde2ebde77264f"}},{"code_sha256_prefix":"5ffb963b558d4020","entry":"int_to_bits","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/coding.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/coding.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5ffb963b558d4020"}},{"code_sha256_prefix":"977a377dfb7a62eb","entry":"investigate_sample","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/investigation.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/investigation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"977a377dfb7a62eb"}},{"code_sha256_prefix":"6b381d638094c710","entry":"is_consistent","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/tokenization.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/tokenization.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6b381d638094c710"}},{"code_sha256_prefix":"e037ac1be5c9f57f","entry":"load_model_and_tokenizer","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/models.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/models.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e037ac1be5c9f57f"}},{"code_sha256_prefix":"6ee52ae650174e0a","entry":"maximum_weight_independent_set","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/pools.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/pools.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6ee52ae650174e0a"}},{"code_sha256_prefix":"4ef553fc5d98847b","entry":"mean","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/metrics.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/metrics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4ef553fc5d98847b"}},{"code_sha256_prefix":"7052cf29d24fe56c","entry":"perplexity","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/metrics.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/metrics.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7052cf29d24fe56c"}},{"code_sha256_prefix":"3a5b6ac4ead1ed5d","entry":"random_replacement_attack","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/attacks.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/attacks.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3a5b6ac4ead1ed5d"}},{"code_sha256_prefix":"a90482521c45be59","entry":"recovery_distribution","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/investigation.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/investigation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a90482521c45be59"}},{"code_sha256_prefix":"5b46c539ade01f31","entry":"retokenize","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/tokenization.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/tokenization.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5b46c539ade01f31"}},{"code_sha256_prefix":"f1eb7814aeb2ccd0","entry":"score_tokens","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/watermark.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/watermark.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f1eb7814aeb2ccd0"}},{"code_sha256_prefix":"b4e26afc7a14e237","entry":"summarize","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/investigation.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/investigation.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b4e26afc7a14e237"}},{"code_sha256_prefix":"9c8e4cc94318e9f1","entry":"usable_vocab_size","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/models.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/models.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9c8e4cc94318e9f1"}},{"code_sha256_prefix":"7082b6ec7f7b94ef","entry":"write_run_metadata","repo":"ryehr/Consistency","repo_kind":"found_in_text","path":"src/tokenization_consistency/io_utils.py","file_url":"https://github.com/ryehr/Consistency/blob/HEAD/src/tokenization_consistency/io_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7082b6ec7f7b94ef"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.CL","source":"arxiv_api"},"syntology_extracted_results":null}