You make some good points, but I'm not sure that non-repeating and rhyming actually need to affect entropy at all. If you randomly generate a sufficiently large number, then break it up into smaller pieces (as the article suggests), and then apply some mapping algorithm that goes from those pieces to a poem, as long as every possible number would generate a distinct poem, you haven't lost any of your randomness. More specifically, constraints like "must rhyme" don't have to lose randomness, they just have to have an algorithm that can map every possible number to a distinct rhyming phrase, which can easily be done by adding words to the poem (e.g. if you have 300k possible words, don't use an 18-bit number to generate each word, use a smaller bit size and map the number to a subset of the dictionary. Now you can control which subset each number maps to, and the only penalty is adding a word or two to the poem.
The only real constraint here is every single number must map to a viable poem, and every single poem that can be generated must represent one and only one number. This means the poem is truly just an encoding scheme for the number, and as long as the number is sufficiently large and randomly generated, the poem should be just as secure as the original number was.
Comments
You make some good points, but I'm not sure that non-repeating and rhyming actually need to affect entropy at all. If you randomly generate a sufficiently large number, then break it up into smaller pieces (as the article suggests), and then apply some mapping algorithm that goes from those pieces to a poem, as long as every possible number would generate a distinct poem, you haven't lost any of your randomness. More specifically, constraints like "must rhyme" don't have to lose randomness, they just have to have an algorithm that can map every possible number to a distinct rhyming phrase, which can easily be done by adding words to the poem (e.g. if you have 300k possible words, don't use an 18-bit number to generate each word, use a smaller bit size and map the number to a subset of the dictionary. Now you can control which subset each number maps to, and the only penalty is adding a word or two to the poem.
The only real constraint here is every single number must map to a viable poem, and every single poem that can be generated must represent one and only one number. This means the poem is truly just an encoding scheme for the number, and as long as the number is sufficiently large and randomly generated, the poem should be just as secure as the original number was.