Rather simple.
You start in reverse meaning instead of adding random public keys to the starting pubkey, you find the final key and then start working your way backwards by subtracting the pub key (of the private key you already have) from the starting public key (which you don't have the private key of).
A simple example would be like this:
The first public key is a pubkey from blockchain that we do NOT own its private key. Lets use the one posted by OP (called
pub1):
04d285c703648887f226137be3f3868a95ca562f70fa1654f19d530d134cbc00edf6f5827b367d9b358b4ea00f32486b19e630603f5f8708d068c2ba759dec9665
It can be converted to the following address: 1C7X4UWpSa4GteWHaRBm49fMCC2SNvJQF
Then we create a random private key. I used SHA256 hash of my username (SHA256("pooya87)) to show that it doesn't mean anything and it is truly random.
5KivUXF2GxYN4aY9ebpY9Yif4J7VJ3QXyPUB7ozA2HtRcNyTjwa
This key will be modified and will be the final key we use to sign a message and its public key (after we modify it) will be the result of adding all the intermediary pubkeys.
Call this
privX and pubXNow decide what dumb letter you want in your second address. Lets say it is "W" similar to OP.
I will use 3 keys in total to keep the computational cost to minimum since I don't want to waste my time but the idea is the same, you keep going backwards (t > h > g > i > r > W > C) you can add more to say "CW is a scammer and BSV is a shitcoin"
The letter we want are:
1. C (from origninal pubkey posted above).
2. W (what we want to get in the mid pubkey). Call this
pub23. Random letter that doesn't matter.
LOOP:
Compute pub2 = pubX - pub1
Compute address of pub2 and check if it starts with W
return if true
change privX to privX+1
END;
If you repeat the above loop 24 times you end up with the following mid public key:
04456541df8a1bd19f0ae85da3c73baa3812a537a8fa7b02f22d853828bb3053e4bad7b79fdfaf1f8136f2b052a89f55f0af5c248d5ea9c4d9d1094dc58b26299f
That has the following address starting with the dumb letter W:
1WMrgrfEpJ9HWkWU4azaj4iLSCq3gnyQ1
And you have the private key to the modified privX that is the original + 24 which you can use to sign a dumb message!
PrivateKey((SHA256("pooya87)) + 24) = 5KivUXF2GxYN4aY9ebpY9Yif4J7VJ3QXyPUB7ozA2HtRf9dm6bK
address = 1JvcCdiQFT7Fogx1ZPkKDqcAooqxi4hEs4
-----BEGIN BITCOIN SIGNED MESSAGE-----
Craig Wright is a scammer and BSV is a shitcoin.
-----BEGIN SIGNATURE-----
1JvcCdiQFT7Fogx1ZPkKDqcAooqxi4hEs4
AXJDSv4B2XWOmEoDB49evN4CYGl9o1jpXnLcUQ7SeXQyYv4EX+0jJcvW7CZGSlOmmRTd9MA569fuW7WBgj4ICzY=
-----END BITCOIN SIGNED MESSAGE-----
Wanting to acquire more intermediary pubkeys will add more computational complexity but the principle is the same.