I am not sure if it would show my address or the factory contract's address (or both).
Blockchain contains enough information to find out whether particular contract was deployed by externally owned address or another smart contract. In the latter case one may also find out what externally owned address initiated the transaction. So the answer is: if you've created new smart contract by calling already deployed factory smart contract, then anyone may find out both: your address and factory contract address, having only blockchain data and the address of the contract you've deployed.
The transaction which creates the sub-contract will of course originate from your account. The transaction is sent to the factory contract with data to call a function inside the factory contract.
Once the transaction is executed (by a miner) the function execution issues an internal transaction to create the new contract. Here's an example of a contract creating a contract: https://etherscan.io/tx/0x1cb928b1b237252a975719c4a7a26d90fc7bdee7569882b918510aff64fc8686 .
I'm not sure what you mean with your question about the key. No private keys are of course exposed, only public addresses.
Contracts have no keys, but you will want the address.
There is no automatic way to see what happened other than interpreting the factory code, as all nodes do.
That's a little cruel for front-ends so
emit an event in the factory.
MyContract c = new MyContract(); emit LogNewContract(msg.sender, address(c));
That's how you make it easily observable.
Hope it helps.