I believe I understand what you mean by entity. I am fine with a private key representing multiple people. I was hoping someone had written software to readily do this on github etc.
A private key may not only be used by several people but a TX may also include several signatures by different private keys. This is might be the case when there are more than a single input, depending on their origin. This however does not let you conclude that these private keys are controlled by the same person/wallet or even by a number of people that know eachother. Not sure what you want to research here.
A simple list of all known addresses -or rather those that have been used at least once- however would be possible.
As an example of what Shorena is describing...
Imagine that I have an unspent output valued at 2 BTC and I want to send 1 BTC to a business.
Imagine that Shorena has an unspent output valued at 1 BTC and wants to send 0.5 BTC to another business.
It is possible for Shorena and I to agree to share a transaction. I can tell Shorena which output I intend to spend, what address I want the 1 BTC to go to, and what change address I want the 1 BTC of change to go to, without telling Shorena my private key at all.
Shorena can then create a single transaction that spends as inputs both his 1 BTC output and my 2 BTC output (providing a total of 3 BTC of value to the single transaction). Shorena can create 4 outputs in the transaction, 0.5 BTC to the business he wants to pay, 1 BTC to the business that I want to pay, 0.5 BTC to his change address, and 1 BTC to my change address.
Shorena can now sign the transaction with his private key, and send the partially signed transaction to me without telling me his private key at all.
I can look at the transaction and verify that it is spending the input that I want to spend and that it is both paying the correct amount to the business that I want to pay, and sending my change back to my address. I can then sign the transaction with my private key and broadcast it. Shorena doesn't need to worry about me modifying the transaction and stealing his bitcoins, because if I tried to do that then the signature he provided would no longer be valid.
Now, there is a single transaction that has 2 inputs. I am the only person in the world that knows the private key used for the signature on one of the inputs, and Shorena is the only person in the world that knows the private key used for the signature on the other input. Yet, the software you are describing will assume that Shorena's address and my address belong to the same wallet (or same person, or same entity). Furthermore, any other addresses that either Shorena or I have every used along with either of those two addresses will also be linked to that pair. Suddenly your software thinks that Shorena and I are both the same person (or wallet, or entity).
If I do the exact same thing again with some other person that Shorena has never mey and knows absolutely nothing about, Shorena's addresses will then be linked to that complete stranger's (to Shorena) addresses.