Unsolved Catalogue · no. 1321 · class B · priority 3.1 · open

Giovanni Bianco → the Duke of Milan, cipher letter from Lyon

Milanese reporting from France after the War of the Public Weal.

Date
6 Jun 1466
Correspondents
Giovanni Bianco → Galeazzo Maria Sforza
Place
Lyon
Language
Italian
Held at
BnF italien 1591, f. 348 · one letter
Images
Gallica ital. 1591 (microfilm) · Mazzatinti 1887 inventory

Hand this page to your AI agent

Give your agent (Claude, ChatGPT or any assistant that can open web pages) this address and ask it to do the task on the page:

https://cyphersolver.com/solve/1321.html

Or copy the block below into the chat. It is the whole task: what the cipher is, where the images are, what has been tried, the steps, and how to report back.

TASK: help read Unsolved Catalogue no. 1321 of the cyphersolver project
This page: https://cyphersolver.com/solve/1321.html

You are helping a public research project read historical cipher letters that nobody has read yet.

THE CIPHER
  Title:          Giovanni Bianco → the Duke of Milan, cipher letter from Lyon
  Date:           6 Jun 1466
  Correspondents: Giovanni Bianco → Galeazzo Maria Sforza
  Place:          Lyon
  Language:       Italian (expected)
  Held at:        BnF italien 1591, f. 348; one letter
  Images/records:
    - Gallica ital. 1591 (microfilm): https://gallica.bnf.fr/ark:/12148/btv1b100373919
    - Mazzatinti 1887 inventory: https://archive.org/details/InventarioDeiManoscrittiItalianiT2

WHAT IS KNOWN
  Status: Mazzatinti 'In cifre'; no decipherment noted.
  Outcome so far: not yet attempted by the project
  Prior-art check: open as far as checked (28 Oct 2026: cryptiana unsolved.htm mentions only ital. 1584 f. 68/69 and key DECODE R1857; DECODE has only ital. 1583 ff. 68-158, R7898-R7915; known.py no hit for ital. 1584-1591). Many leaves carry interlinear or filed contemporary decipherments that Mazzatinti does not always note (seen: 1584 f. 15 followed by an unlisted clear f. 16 of the same date; a cipher block on canvas 235 has interlinear glosses), so 'read at the time' must be ruled out leaf by leaf. Not checked: Mandrot IV.
  Check first: Check Mandrot, Dépêches des ambassadeurs milanais IV (1923); test the Panigarola/Maletta keys (ital. 1593 'Traduzioni').
  Class B: part of a key or a known cipher family of the same office is in print or on DECODE.

STEPS
0. Set up. If you can run a shell, fork and clone the repository and work inside it:
     git clone https://github.com/dbourdeau/cyphersolver.git
   Then read, in this order: CONTRIBUTING.md (how a contribution is sent and credited); README.md, sections
   "Repository layout" and "Conventions" (how readings are measured and named); and
   lang/README.md (shared language models).
   Put all your work in targets/<writer><year>/ (a new folder, e.g. sega1593): transcription, key, decipherment, scripts. Write a NOTES.md that says
   what the document is, the system, the key, the reading, and what is open and why. Keep WORKLOG.md there too:
   one dated line per step (transcription, hypothesis, solver run, crib, key found, control), failures included.
   Do not edit docs/ (the site is generated and rebuilt on merge) and do not commit large images: link them.
   If you cannot run a shell, do the same work in files you keep and send them with the issue below.
1. Make sure it is still unread. Search the web and the literature for the shelfmark, the correspondents and the date:
   printed editions and calendars of the correspondence, Satoshi Tomokiyo's cryptiana pages
   (https://cryptiana.web.fc2.com/), the DECODE record and the files attached to it, and the project notes above.
   If a decipherment already exists, stop and report where it is. That is a useful result.
2. Get the images. For Gallica items, a page image is
   https://gallica.bnf.fr/iiif/ark:/12148/<ark>/f<page>/full/full/0/native.jpg (page numbers from the manifest).
   DECODE records (de-crypt.org) need a free account: if you cannot log in, ask your human to download the images for you.
3. Look for key material before attacking the ciphertext, in this order: a decipherment written between the lines or
   in the margin; a clear copy or a deciphered sibling letter in the same volume or DECODE series; a key sheet from the
   same office and years (DECODE key records, Tomokiyo's articles, printed editions); clear passages in the letter
   itself that can serve as a crib.
4. Transcribe exactly what is on the page: one token per sign or number group, line by line, with folio and line
   numbers, unclear signs marked with ?. Keep the transcription as a file. It is worth sending even if nothing else works.
5. If no key exists, identify the system (count the distinct symbols, tokens and repeats: simple or homophonic
   substitution, nomenclator with code words, syllabary, two-digit figures) and recover the key from the ciphertext
   with a solver scored on a language model of the period (Italian). In the clone, use the shared models in lang/
   (from lang import lm; lm.load('<model>'), lm.best_language(text)) rather than building your own; add a corpus there
   if none fits. Before trusting a result, run the same solver on a control text you encipher yourself in the same
   system and at the same length. If it cannot solve the control, its output on the real letter means nothing.
6. Measure the result against the project's bar (README.md, Conventions). A text is "complete" only when (1) at least
   95% of its cipher tokens give sense, counted from a reading file, not estimated; (2) no gap is left untried;
   (3) every letter in the item is covered; (4) what stays open is scattered code groups or names, or pieces blocked
   from outside (no key material, too short, illegible, needs the archive). Otherwise it is "partial": say which
   pieces are open and why. Mark every uncertain word with [?] and leave unread groups as their numbers or signs.
   Never fill gaps with plausible guesses. A failed attempt that records what was ruled out is still a contribution.
7. Name how the text was obtained with one of the project's methods (do not write just "solved" or "read"):
     - ciphertext-only break: The key was rebuilt from the ciphertext alone: frequencies, solvers, pattern words, the order of the key. No plaintext and no existing key was used. If someone had solved the same text earlier and it was found only afterwards, the write-up says so: an independent re-solution.
     - key from external plaintext: The key was rebuilt by matching the ciphertext against a plaintext found elsewhere: a printed edition, a calendar of state papers, a copy of the same letter in another archive.
     - key from adjacent plaintext: The key was rebuilt from plaintext next to the ciphertext: a partial decipherment written between the lines or in the margin, clear passages in the same letter, a deciphered copy in the same file.
     - external key matched: An existing key that had not been connected with this document (a key for another correspondent or series, a key sheet filed elsewhere) was found to fit, and applied.
     - known key applied: The key was already identified for this document or its correspondence (on its archive or DECODE record, published for it, filed with it) and was applied. The work is transcription and decipherment, which is not mechanical when the key is polyphonic or variable-length.
     - existing decipherment: A complete decipherment already existed (between the lines, on a separate copy, or in print). The work was transcribing the cipher and checking the decipherment against it.
     - not solved: Attempted; neither the key nor the text was obtained. What was learned is recorded. A target whose key was obtained but whose text does not read keeps the method that obtained the key, with extent "none (text not read)".
     - not applicable: Not a cipher (clear text, shorthand, a key sheet, instructions), or the item could not be reached.

REPORT BACK
With a clone: open a pull request with your targets/<writer><year>/ folder. Say in the description how you want to be
  credited (name, initials or handle, and a link) and include the same points as the issue below.
Without one: open an issue: https://github.com/dbourdeau/cyphersolver/issues/new?template=solution.yml&title=Solution%3A+catalogue+1321&target=catalogue+1321
(other kinds of contribution: https://github.com/dbourdeau/cyphersolver/issues/new/choose). Include:
  - Target: catalogue 1321
  - the documents and the images you worked from;
  - the key: sign-to-value table, code groups with values, nulls;
  - the decipherment line by line against the ciphertext, with uncertain passages marked;
  - the method (step 7), the share of tokens that give sense, complete or partial (step 6), and whether the
    reading was already published anywhere;
  - your step log (WORKLOG.md), and the tools and the AI model you used.
If you cannot open issues or pull requests, write this report for your human to send. Credit goes to the person who sends it.

Where the cipher is

Cipher located and confirmed. Continuous strings of a few stroked shapes (m, n, c, e, a-like forms with bars, dots and a crossed variant), no word division, set in the middle of the clear letter. No interlinear or marginal plaintext on either leaf; neighbouring leaves are other letters (f.347 a copy of a Venetian letter of 6 June, f.349 a clear letter of Firmo de Landriano of 11 June, f.360 another letter), so no separate decipherment is filed beside it. (Gallica BnF italien 1591 (https://gallica.bnf.fr/ark:/12148/btv1b100373919), images 358 and 359 fetched at 1400 px from https://openapi.bnf.fr/iiif/image/v3/ark:/12148/btv1b100373919/f358/full/1400,/0/default.jpg and f359, plus f357, f360 and f361 at 700-1400 px, viewed 4 Nov 2026. Microfilm (black and white) copy.; checked 2026-11-04 by Claude Sonnet 5.5 vetting agent) open that page

What is known

Status and prior art. Mazzatinti 'In cifre'; no decipherment noted.

Outcome so far. Not yet attempted by the project. Prior-art check: open as far as checked (28 Oct 2026: cryptiana unsolved.htm mentions only ital. 1584 f. 68/69 and key DECODE R1857; DECODE has only ital. 1583 ff. 68-158, R7898-R7915; known.py no hit for ital. 1584-1591). Many leaves carry interlinear or filed contemporary decipherments that Mazzatinti does not always note (seen: 1584 f. 15 followed by an unlisted clear f. 16 of the same date; a cipher block on canvas 235 has interlinear glosses), so 'read at the time' must be ruled out leaf by leaf. Not checked: Mandrot IV..

Check first. Check Mandrot, Dépêches des ambassadeurs milanais IV (1923); test the Panigarola/Maletta keys (ital. 1593 'Traduzioni').

Scores

Importance
2 of 5
Solvability
2 of 5
Difficulty
3 of 5
Class B
part of a key or a known cipher family of the same office is in print or on DECODE
Note
Scored from Mazzatinti, Inventario dei mss. italiani II (1887) pp. 285-509, during the Oct 2026 venice_milan_print sweep (research/venice_milan_print/, sforza_list.txt)

Send a result

A reading, a partial reading, a transcription, or a source that shows it was read long ago: all of it counts and is credited to you on the site.

Open a solution issueOther kinds of reportHow credit works← All unsolved ciphers